Численные методы решения нелинейных уравнений, используемые в прикладных задачах. Нахождение корня уравнения методом простой итерации и методом хорд
Федеральное
агентство по образованию
ФГОУ СПО
«Уфимский авиационный техникум»
Курсовая
работа
Численные
методы решения нелинейных уравнений, используемые в прикладных задачах.
Нахождение корня уравнения методом простой итерации и методом хорд
по дисциплине
«Численные методы»
КР
080802.10.038.03 ПЗ
Студент А.Б.
Бобронников
Руководитель
работы Э.Р. Ахматсафина
Содержание
Введение
. Теоретическая часть
.1 Метод простой итерации
.2 Метод хорд
. Постановка и решение задачи
.1. Формулировка задачи
.2 Решение методом простых итераций
.3 Решение методом хорд
. Программная реализация
.1 Метод итераций
.1.1. Блок схема
.1.2 Программа
.1.3 Тестовый пример
.1.4 Решение задачи с помощью ЭВМ
.2 Метод хорд
.2.1 Блок схема
.2.2 Программа
.2.3 Тестовый пример
.2.4 Решение задачи с помощью ЭВМ
Заключение
Список используемой литературы
Введение
Прямые (или точные) методы, позволяют найти решение за определённое
количество шагов. Итерационные методы, основаны на использовании повторяющегося
процесса и позволяют получить решение в результате последовательных
приближений.
Метод хорд и метод простой итерации - два итерационных метода нахождения
корня уравнения.
В этой курсовой речь пойдёт о приближённом нахождении корней уравнения
. Дело в том, что решить уравнение
"точно", то есть выразить его корни
через известные постоянные (целые
числа, числа
,
и другие им подобные) с помощью элементарных функций от этих
постоянных, удаётся далеко не всегда. Результат же всё равно получится
приближённый, поскольку вычислять дроби и корни в решении придётся приближённо.
Цель: рассмотреть два метода нахождения приближенного корня уравнения и
применить их на практике:
метод хорд
метод простой итерации.
Состав курсовой работы:
Первая часть - Теоретическая:
В ней описывается теоретическая часть обоих методов.
Вторая часть - Практическая:
В ней реализована практическая реализация обоих методов.
Третья часть - Программная:
В ней реализованы методы с помощью программного языка ЭВМ.
1.
Теоретическая часть
.1 Метод
простой итерации
Предположим, что уравнение
при помощи некоторых тождественных
преобразований приведено к виду
.
Заметим, что такое преобразование можно вести разными способами, и при
этом будут получаться разные функции
в правой части уравнения. Уравнение
эквивалентно уравнению
при любой функции
. Таким образом, можно взять
и при этом выбрать функцию (или
постоянную)
так, чтобы функция
удовлетворяла тем свойствам, которые
понадобятся нам для обеспечения нахождения корня уравнения.
Для нахождения корня уравнения
выберем какое-либо начальное
приближение
(расположенное, по возможности, близко к корню
). Далее будем вычислять последующие
приближения
по формулам
то есть используя каждое вычисленное приближение к корню в качестве
аргумента функции
в очередном вычислении. Такие вычисления по одной и той же
формуле
, когда полученное на предыдущем шаге
значение используется на последующем шаге, называются итерациями. Итерациями
называют часто и сами значения
, полученные в этом процессе (то есть, в нашем случае,
последовательные приближения к корню).
Заметим: тот факт, что
- корень уравнения
, означает, что
есть абсцисса точки пересечения
графика
с прямой y=x. Если же при каком-либо
вычислено значение
и взято в качестве нового аргумента
функции, то это означает, что через точку графика
проводится горизонталь до прямой y=x,
а оттуда опускается перпендикуляр на ось
. Там и будет находиться новый
аргумент
.
Рисунок 1. Точка
- решение уравнения
. Построение точки x1 по точке x0
Проследим, как изменяются последовательные приближения xi при различных
вариантах взаимного расположения графика
и прямой y=x.
). График
расположен, по крайней мере в некоторой окрестности корня,
включающей начальное приближение x0, в некотором угле со сторонами, имеющими
наклон менее
к
горизонтали (то есть стороны угла - прямые
где
):

Рисунок 2. График пересекает прямую y=x под малым углом: варианты
расположения
Если предположить вдобавок, что функция
имеет производную
, то этот случай соответствует тому,
что выполнено неравенство
, при
, близких к корню
. Проследим в этом случае за
поведением последовательных приближений
Рисунок 3. Сходящиеся к корню приближения в случае
: два варианта
Мы видим, что каждое следующее приближение
будет в этом случае расположено ближе
к корню
, чем предыдущее приближение
. При этом, если график при
лежит ниже горизонтали
, а при
-- выше её (что, в случае наличия
производной, верно, если
), то приближения
ведут себя монотонно: если
, то последовательность
монотонно возрастает и стремится к
, а если
, то монотонно убывает и также
стремится к
. Если же график функции
лежит выше горизонтали
при
и ниже её при
(это так, если
), то последовательные приближения
ведут себя иначе: они
"скачут" вокруг корня
, с каждым скачком приближаясь к нему, но так же стремятся к
при
.
Заметим, что если функция
не монотонна в окрестности точки
, то последовательные приближения
могут вести себя нерегулярно (то есть не монотонно и не оказываясь попеременно
то левее, то правее корня, а делая скачки относительно корня при произвольных
номерах (см. следующий рисунок):
хорда
итерация приближение уравнение
Рисунок 4. В случае немонотонной функции
сходящиеся итерации могут вести себя
нерегулярно
). График
расположен, по крайней мере в некоторой окрестности корня,
вне некоторого угла со сторонами, имеющими наклон более
к горизонтали (то есть стороны угла -
прямые
, где
)
Рисунок 5. График пересекает прямую
под большим углом: варианты
расположения
Если функция
имеет производную
, то в этом случае при
, близких к корню
, выполнено неравенство
.
Рисунок 6. Числа
расходятся в случае
: два варианта
Каждая следующая итерация
будет в этом случае расположена дальше от корня
, чем предыдущая,
. При этом, в зависимости от того,
пересекает ли график прямую
"снизу вверх" или "сверху вниз" (см.
рисунок.6 ), последовательность
монотонно удаляется от корня
или же итерации удаляются от
, оказываясь попеременно то справа,
то слева от корня.
Ещё одно замечание: если не выполнено ни условие
, ни условие
, то итерации
могут зацикливаться. На чертеже ниже
приведён пример зацикливания, когда уравнение имеет вид
.
Рисунок 7. Пример зацикливания итераций
Мы видим, что для сходимости итераций к корню, вообще говоря, не
обязательно наличие производной у функции
. Однако метод итераций гораздо удобнее
формулировать в терминах, связанных со значениями производной. Именно так мы и
сформулируем наши наблюдения в виде теоремы.
Теорема Если функция
имеет производную в некоторой окрестности
корня
уравнения
, причём
при
, то последовательность итераций
, полученных при
, начиная с
, сходится к корню
.
При этом скорость сходимости задаётся неравенствами
где
-- длина окрестности
, а точность
-го приближения -- оценкой
Доказательство. Пусть
. По формуле конечных приращений, применённой к отрезку между
точками
и
, получаем
где
лежит между
и
. Значит,
то есть
(напомним, что
и
). Повторяя рассуждения для точек
вместо
, получаем

Так как
, последовательность
стремится к 0 при
. Значит,
при
.
Неравенство
очевидно, поскольку из того, что
и
лежат в окрестности
длины
, следует, что
.
Поскольку
мы имеем
так как
и
Определение Доказанные оценки показывают, что скорость сходимости
итераций к корню не меньше, чем у геометрической прогрессии со знаменателем
, где
-- величина, ограничивающая сверху
абсолютную величину производной. Тем самым, чем меньше
, тем быстрее сходятся итерации.
Наиболее быстро они будут сходиться, если график
пересекает прямую
, имея горизонтальную касательную, то
есть при
(и, разумеется, при выборе начального
приближения
достаточно близко к корню
, так чтобы на отрезке между
и
производная мало отличалась от 0).
Рисунок 8. Быстрая сходимость итераций при горизонтальной касательной к
графику
Выше мы отмечали, что привести уравнение
к виду
можно, выбирая
в виде
где
-- произвольная функция. При различных способах выбора
получаются разные модификации метода
итераций, которые имеют отличающиеся свойства: разную скорость сходимости (но
не меньшую той, что гарантирована теоремой) и разную потребность в вычислении
значений функции
или
, а также их производных.
1.2 Метод
хорд
Идея метода состоит в том, что по двум точкам
и
построить прямую
(то есть хорду, соединяющую две точки
графика
) и взять в качестве следующего
приближения
абсциссу точки пересечения этой прямой с осью
. Иными словами, приближённо заменить
на этом шаге функцию
её линейной интерполяцией, найденной по двум значениям
:
и
. (Линейной интерполяцией функции
назовём такую линейную функцию
, значения которой совпадают со
значениями
в двух фиксированных точках, в данном случае - в точках
и
)
В зависимости от того, лежат ли точки
и
по разные стороны от корня
или же по одну и ту же сторону,
получаем такие чертежи
Рисунок 9. Построение последовательного приближения по методу хорд: два
случая
Итак, очередное последовательное приближение будет зависеть от двух
предыдущих:
. Найдём выражение для функции
.
Интерполяционную линейную функцию
будем искать как функцию с угловым
коэффициентом, равным разностному отношению
построенному для отрезка между
и
, график которой проходит через точку
Решая уравнение
, находим
Заметим, что величина
может
рассматриваться как разностное приближение для производной
в точке
. Тем самым полученная формула (1) --
это разностный аналог итерационной формулы метода Ньютона.
Вычисление по формуле (1) гораздо предпочтительнее вычисления по другой
полученной нами формуле
хотя эти две формулы математически тождественны, поскольку при
использовании формулы (1) в случае вычислений с округлениями (например, на
компьютере) достигается меньшая потеря значащих цифр.
Вычисления ведутся непосредственно по формуле (1) при
, начиная с двух приближений
и
, взятых, по возможности, поближе к
корню
. При этом не предполагается, что
лежит между
и
(и что значения функции f в точках
и
имеют разные знаки). При этом не
гарантируется, что корень попадёт на отрезок между
и
на каком-либо следующем шаге (хотя
это и не исключено). В таком случае затруднительно дать оценку погрешности, с
которой
приближает истинное значение корня
, и поэтому довольствуются таким
эмпирическим правилом: вычисления прекращают, когда будет выполнено неравенство
, где
- желаемая точность нахождения
корня. При этом полагают приближённое значение корня равным
.
2. Постановка и решение задачи
.1
Формулировка задачи
Численные
методы решения нелинейных уравнений, используемые в прикладных задачах.
Нахождение корня уравнения методом простой итерации и методом хорд (на примере
уравнения
).
Решение:
Разделяем
уравнение на две составляющие:
Составляем
таблицу значений для обоих уравнений:
|
Y
|
-2,00
|
-1,00
|
0,00
|
1,00
|
2,00
|
3,00
|
|
X1
|
-8
|
-1
|
0
|
1
|
8
|
27
|
|
X2
|
13
|
6
|
3
|
4
|
9
|
18
|
Рисунок 10. График пересечения двух функций
Ответ: Корень находится на отрезке [2;3]
2.2 Решение
методом простой итерации
Уравнение: x3-2x2+x-3=0
Заменим уравнение на x=x-1/5(x3-2x2+x-3);
Погрешность E=0,0001;
Отрезок [2;3];
Найдем корень равнения с помощью последовательности итераций:
X0=2;
X1=2-1/5(23-2*22+2-3)=
2,2 2,2-2>0,0001
X2=2,2-1/5(2,23-2*2,22+2,2-3)=
2,1664 2,1664-2,2>0,00013=2,1664-1/5(2,16643-2*2,16642+2,1664-3)=
2,17693 2,17693-2,1664>0,00014=2,17693-1/5(2,176933-2*2,176932+2,17693-3)= 2,17385 2,17385-2,17693>0,00015=2,17385-1/5(2,173853-2*2,173852+2,17385-3)= 2,17477 2,17477-2,17385>0,00016=2,17477-1/5(2,174773-2*2,174772+2,17477-3)= 2,1745 2,1745-2,17477>0,0001=2,1745-1/5(2,17453-2*2,17452+2,1745-3)= 2,17458 2,17458-2,1745<0,0001
Рисунок 11. График пересечения функции с y=x
Ответ: Корень уравнения с точностью 0,0001 равен 2,1745;
2.3 Решение
методом хорд
Уравнение: x3-2x2+x-3=0
Формула для решения:
Погрешность: Е=0,00001;
X0=0;
X1=3;
Последовательность итераций:
X2=3-(f(3)*(3-0))/(f(3)-f(0))=
1,5;
|1,5-3|>0,00001 Продолжаем считать
X3=1,5-(f(1,5)*(1,5-3))/(f(1,5)-f(3))= 1,838709;
|1,838709-1,5|>0,00001 Продолжаем считать
X4=1,838709-(f(1,838709)*( 1,838709-1,5))/(f(1,838709)-f(1,5))= 2,46809;
|2,46809-1,838709|>0,00001 Продолжаем считать
X5=2,46809-(f(2,46809)*( 2,46809-1,838709))/(f(2,46809)-f(1,838709))= 2,10549;
|2,10549-2,468709|>0,00001 Продолжаем считать
X6=2,10549-(f(2,10549)*(2,10549-2,46809))/(f(2,10549)-f(2,46809))= 2,16185;
|2,16185-2,10549|>0,00001 Продолжаем считать
X7=2,16185-(f(2,16185)*( 2,16185-2,10549))/(f(2,16185)-f(2,10549))= 2,17519;
|2,17519-2,16185|>0,00001 Продолжаем считать
X8=2,17519-(f(2,17519)*( 2,17519-2,16185))/(f(2,17519)-f(2,16185))= 2,174553;
|2,174-2,175|>0,00001 Продолжаем считать
X9=2,174553-(f(2,174553)*( 2,174553-2,17519))/(f(2,174553)-f(2,17519))= 2,174559;
|2,174553-2,174559|<0,00001 Требуема точность была достигнута
Ответ: Корень уравнения, на отрезке [2;3], с точностью 0,00001, равен
2,174559.
3.
Программная реализация
.1 Метод
простой итерации
.1.1 Блок
схема
.1.2
Программа
unit Unit1;
interface
uses, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,, StdCtrls;= class(TForm): TEdit;: TEdit;: TButton;:
TEdit;Button1Click(Sender: TObject);
{ Private declarations }
{ Public declarations };
: TForm1;
{$R *.dfm}
TForm1.Button1Click(Sender:
TObject);x0,e,y:real;f(c:real):real;:=c*c*c-2*c*c+c-3;;:=strtofloat(edit1.text);:=strtofloat(edit2.text);:=x0-f(x0)/5;(abs(y-x0)>e)
do:=y;:=x0-f(x0)/5;;.text:=floattostrf(y,ffFixed, 20,5);;
end.
.1.3 Тестовый
пример
Для тестового примера возьмем уравнение х-3=0
Начальная точка: 0
Погрешность: Е=0,0001
Ответ: 3
3.1.4 Решение
задачи с помощью ЭВМ
3.2
Метод хорд
.2.1
Блок схема
.2.2
Программа
Unit1;
, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,, StdCtrls;= class(TForm): TEdit;: TEdit;: TLabel;: TLabel;: TLabel;:
TEdit;: TButton;: TEdit;Button1Click(Sender: TObject);
{ Private declarations }
{ Public declarations };
: TForm1;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);,x1,y,e:real;
k:integer;F(c:real):real;:=c*c*c-2*c*c+c-3;;:=strtofloat(edit1.Text);:=strtofloat(edit2.Text);:=strtofloat(edit3.Text);:=x1-(f(x1)*(x1-x0))/(f(x1)-f(x0));((abs(y-x1))<e)
then k:=1 else begin x0:=x1; x1:=y endk=1;.text:='Îòâåò:'+floattostrf(y,ffFixed,
20,6);
end;
3.2.3
Тестовый пример
В качестве тестового примера возьмем уравнение x-3=0
Отрезок: [0;2]
Погрешность: Е=0,00001
Ответ: 3
3.2.4 Решение
задачи с помощью ЭВМ
Заключение
В этой курсовой мы разобрали два итерационных метода нахождения корня
уравнения.
Мы выяснили, что в методе хорд на ось абсцисс опускаются хорды,
последовательно приближаясь к корню уравнения. А в методе простых итераций
уравнение заменяется на равносильное ему типа
, а дальше идет поиск точки
пересечения с прямой y=x.
В любом методе последовательных приближений корень уравнения ищут,
учитывая определенную погрешность, тем самым увеличивая точность значения
корня.
В итоге мы выяснили что метод простых итераций является более простым в
исполнении в отличии от метода хорд, тем самым выигрывая в этом тяжелом
сравнении.
Список
литературы
1. Каханер
Д., Моулер К., Нэш С. Численные методы и программное обеспечение (пер. с
англ.). М.: Мир, 2001, 575 c.