Определение корня одномерного уравнения методом простой итерации

Основная расчетная формула метода простой итерации для определения корня уравнения

Определение корня одномерного уравнения методом простой итерации - student2.ru (14)
имеет вид:

Определение корня одномерного уравнения методом простой итерации - student2.ru (15)

где Определение корня одномерного уравнения методом простой итерации - student2.ru .

При использовании метода простой итерации корни уравнения Определение корня одномерного уравнения методом простой итерации - student2.ru располагаются в тех же точках, в которых пересекаются линейная функция Определение корня одномерного уравнения методом простой итерации - student2.ru , проходящая через начало координат и функция Определение корня одномерного уравнения методом простой итерации - student2.ru . Иными словами корни функции Определение корня одномерного уравнения методом простой итерации - student2.ru соответствуют корням системы уравнений:

Определение корня одномерного уравнения методом простой итерации - student2.ru (16)

Определение корня одномерного уравнения методом простой итерации - student2.ru

Рис.3 Иллюстрация сходящегося процесса метода простой итерации

На рисунке 3 проиллюстрирован процесс последовательного решения уравнения (1) методом простой итерации. Пересечение кривой Определение корня одномерного уравнения методом простой итерации - student2.ru и прямой Определение корня одномерного уравнения методом простой итерации - student2.ru (точка A) соответствует решению системы уравнений (16) и корню уравнения (14).

В окрестности корня задается начальное значение аргумента Определение корня одномерного уравнения методом простой итерации - student2.ru , затем по формуле (15) определяется значение Определение корня одномерного уравнения методом простой итерации - student2.ru – точка пересечения с кривой Определение корня одномерного уравнения методом простой итерации - student2.ru , затем, полученное значение Определение корня одномерного уравнения методом простой итерации - student2.ru также подставляется в формулу (15) и определяется следующее приближение к корню – Определение корня одномерного уравнения методом простой итерации - student2.ru . Процесс продолжается до тех пор, пока корень уравнения не будет найден с требуемой точностью T, то есть пока погрешность текущей итерации Определение корня одномерного уравнения методом простой итерации - student2.ru не станет меньше точности. Погрешность Определение корня одномерного уравнения методом простой итерации - student2.ru определения корня на шаге k может быть оценена, например, как разность текущего и предыдущего значения аргумента: Определение корня одномерного уравнения методом простой итерации - student2.ru . Таким образом, условие завершения итерационного процесса метода простой итерации можно записать следующим образом:

Определение корня одномерного уравнения методом простой итерации - student2.ru (17)
Алгоритм метода простой итерации выглядит следующим образом:

x1=начальное_значение

err = требуемая_точность

Начало цикла

x2=F(x1)

Если |x2-x1| < err тогда

Вывод на печать x2

Выход из программы

Иначе

x1=x2

Конец если

Конец цикла

Метод простой итерации находит корень не во всех случаях. На рисунке 4 приведен пример расходящегося процесса.

Определение корня одномерного уравнения методом простой итерации - student2.ru

Рис. 4 Пример расходящегося процесса метода простой итерации

Рассмотрим нестрогий вывод условия сходимости метода простой итерации.

В случае сходимости итерационного процесса ряд значений аргумента функции представляет собой сходящуюся последовательность, подобно приведенной на рисунке 5.

Определение корня одномерного уравнения методом простой итерации - student2.ru

Рис. 5 Сходящийся ряд значений xk

Если ряд Определение корня одномерного уравнения методом простой итерации - student2.ru сходится, то для него справедливо соотношение:

Определение корня одномерного уравнения методом простой итерации - student2.ru (18)
или для шага с номером k

Определение корня одномерного уравнения методом простой итерации - student2.ru (19)
Если правую часть неравенства (19), с учетом (15), представить в виде Определение корня одномерного уравнения методом простой итерации - student2.ru , тогда условие сходимости на шаге k принимает вид:

Определение корня одномерного уравнения методом простой итерации - student2.ru (20)

Условие сходимости метода простой итерации (20) представляет собой разностное представление производной функции Определение корня одномерного уравнения методом простой итерации - student2.ru , таким образом, из формулы (20) можно получить дифференциальную форму условия сходимости метода простой итерации:

Определение корня одномерного уравнения методом простой итерации - student2.ru (21)
для значений Определение корня одномерного уравнения методом простой итерации - student2.ru , принадлежащих окрестности искомого корня.

Формулу (21) можно использовать для предварительной оценки сходимости метода простой итерации. Так, для примера, приведенного на рис.3, производная функции Определение корня одномерного уравнения методом простой итерации - student2.ru в окрестности корня меньше единицы – процесс сходится, а для примера, приведенного на рис.4 производная функции Определение корня одномерного уравнения методом простой итерации - student2.ru в окрестности корня больше единицы и процесс расходится.

В некоторых случаях можно улучшить сходимость метода простой итерации. Рассмотрим модифицированный метод простой итерации. Корни уравнения Определение корня одномерного уравнения методом простой итерации - student2.ru не изменятся, если к правой и левой части добавить Определение корня одномерного уравнения методом простой итерации - student2.ru , где Определение корня одномерного уравнения методом простой итерации - student2.ru – параметр (в более общем случае к правой и левой части уравнения (14) можно добавить произвольную обратимую функцию Определение корня одномерного уравнения методом простой итерации - student2.ru ). Тогда уравнение (14) примет вид:

Определение корня одномерного уравнения методом простой итерации - student2.ru

выразив Определение корня одномерного уравнения методом простой итерации - student2.ru , получим новую усовершенствованную формулу для метода простой итерации:

Определение корня одномерного уравнения методом простой итерации - student2.ru

или

Определение корня одномерного уравнения методом простой итерации - student2.ru , где Определение корня одномерного уравнения методом простой итерации - student2.ru

Условие сходимости (20) для модифицированного метода простой итерации будет иметь вид следующего неравенства с параметром Определение корня одномерного уравнения методом простой итерации - student2.ru :

Определение корня одномерного уравнения методом простой итерации - student2.ru

или

Определение корня одномерного уравнения методом простой итерации - student2.ru (22)
Изменяя параметр Определение корня одномерного уравнения методом простой итерации - student2.ru в выражении (22) можно значительно улучшить сходимость метода простой итерации.

В качестве примера рассмотрим процесс определения корней уравнения Определение корня одномерного уравнения методом простой итерации - student2.ru .

Определение корня одномерного уравнения методом простой итерации - student2.ru

Рис. 6 Анализ функции Определение корня одномерного уравнения методом простой итерации - student2.ru для метода простой итерации

На рисунке 6 приведены графики функции Определение корня одномерного уравнения методом простой итерации - student2.ru – линия 1, Определение корня одномерного уравнения методом простой итерации - student2.ru – линия 2, Определение корня одномерного уравнения методом простой итерации - student2.ru – линия 3. Поскольку тангенс угла наклона линии 2 больше чем 1 в окрестности первого корня – этот корень неустойчив. Второй корень устойчив – тангенс угла наклона линии 2 в окрестности второго корня меньше единицы.

Описание алгоритма нахождения корня нелинейного одномерного уравнения методом простой итерации:

Задаем точность вычисления корня по оси абсцисс и по оси ординат: ex и ey.

Задаем максимальное количество итераций нахождения корня – maxi.

Задаем начальное значение x0.

Начало цикла по i от 1 до maxi.

В цикле вычисляем следующее приближение корня: x1=f(x0)+x0.

В цикле вычисляем изменение значений x и f(x) на данной итерации:

dx=|x1-x0|, df=|f(x1)-f(x0)|.

Проверяем условие сходимости алгоритма. Задаем ветвление: если dx<ex и df<ey, то корень найден, вывод на экран значения xi, f(xi)иномера итерации i. Выход из программы. Конец ветвления.

Копируем значение x1 в x0 для следующей итерации: x0=x1.

Конец цикла.

Вывод сообщения: ”Корень не найден за i итераций”

Конец программы.

Описание алгоритма нахождения корня уравнения Определение корня одномерного уравнения методом простой итерации - student2.ru методом простой итерации на естественном языке:

ex=точность_по_оси_X

ey=точность_по_оси_Y

maxi=максимальное_количество_итераций

x0=начальное_значение_х

Цикл по i от 1 до maxi

x1=f(x0)

dx=Модуль(x1-x0)

df=Модуль(f(x1)-f(x0))

Если dx<ex И df<ey Тогда

Печать " Корень найден за "+i+" итераций "

Печать " x= "+x1+" f(x)= "+f(x1)

Печать " Конец итераций "

Выход Из Программы

Конец Если

x0=x1

Конец Цикла

Печать "Решение не найдено за "+ maxi +"итераций "

Определение Функции f0

Параметры x

Возврат 3*x-EXP(x)

Конец Определения Функции

Определение Функции f

Параметры x

Возврат f0(x)+x

Конец Определения Функции

Пример реализации алгоритма нахождения корня одномерного нелинейного уравнения Определение корня одномерного уравнения методом простой итерации - student2.ru методом простой итерации на VFP:

CLEAR

ex=0.0001

ey=0.0001

maxi=100

x0=1

FOR i=1 TO maxi

x1=f(x0)

dx=ABS(x1-x0)

df=abs(f(x1)-f(x0))

IF dx<ex AND df<ey then

?" Корень найден за "+ALLTRIM(STR(i))+" итераций "

?" x= "+STR(x1)+" f(x)= "+STR(f(x1))

?

?" Конец итераций "

RETURN

ENDIF

x0=x1

endfor

? "Решение не найдено за", maxi, "итераций"

FUNCTION f0

PARAMETERS x

RETURN 3*x-EXP(x)

ENDFUNC

FUNCTION f

PARAMETERS x

RETURN f0(x)+x

ENDFUNC

Пример реализации алгоритма нахождения корня одномерного нелинейного уравнения Определение корня одномерного уравнения методом простой итерации - student2.ru методом простой итерации на VBA:

Sub Simple_Iteration()

ex = 0.0001

ey = 0.0001

maxi = 100

x0 = 1.1

For i = 1 To maxi

x1 = f(x0) + x0

df = Abs(f(x1) - f(x0))

Debug.Print "i=" & i & " x= " & x1 & " f(x)= " & f(x1)

If Abs(x1 - x0) < ex And df < ey Then

Debug.Print " Корень найден за " & i & " итераций"

Debug.Print " x= " & x1 & " f(x)= " & f(x1)

Debug.Print " Конец итераций"

Exit Sub

End If

x0 = x1

Next i

Debug.Print "Решение не найдено за", maxi, "итераций"

End Sub

Function f0(x)

f = 2*x - Exp(x)

End Function

Function f(x)

f = f0(x)+x

End Function

Результаты работы программы на VBA для функции Определение корня одномерного уравнения методом простой итерации - student2.ru , начального значения x0 = 1.1:

i=1 x= 1,39583397605357 f(x)= 0,149160879773209

i=2 x= 1,54499485582678 f(x)= -5,29629438655936E-02

i=3 x= 1,49203191196118 f(x)= 2,99752635717079E-02

i=4 x= 1,52200717553289 f(x)= -0,01539014343569

i=5 x= 1,5066170320972 f(x)= 8,40821312260687E-03

i=6 x= 1,51502524521981 f(x)= -4,46024377229914E-03

i=7 x= 1,51056500144751 f(x)= 2,40587791438962E-03

i=8 x= 1,5129708793619 f(x)= -1,28652386385397E-03

i=9 x= 1,51168435549804 f(x)= 6,91223382955464E-04

i=10 x= 1,512375578881 f(x)= -3,70446886386766E-04

i=11 x= 1,51200513199461 f(x)= 1,98802854120217E-04

i=12 x= 1,51220393484873 f(x)= -1,06611507514565E-04

i=13 x= 1,51209732334122 f(x)= 5,71945781615568E-05

i=14 x= 1,51215451791938 f(x)= -3,06771414297913E-05

Корень найден за 14 итераций

x= 1,51215451791938 f(x)= -3,06771414297913E-05

Контрольные вопросы

1. Что такое корень уравнения?

2. Что такое непрерывность и гладкость функции?

3. Дайте определение разрывной функции, приведите примеры разрывных и непрерывных функций.

4. Дайте определение монотонности функции, приведите примеры монотонности и немонотонности.

5. Приведите условие наличия корня монотонной функции на заданном отрезке.

6. Определите понятия точность и погрешность нахождения корней уравнения.

7. Как определяются точность и погрешность нахождения корней уравнения в методе деления отрезка пополам?

8. Приведите определение итерационной процедуры.

9. В чем заключается итерационная процедура метода деления отрезка пополам?

10. Приведите условие завершения итераций в методе деления отрезка пополам.

11. Приведите условие применимости метода секущих.

12. Как определяется точность и погрешность нахождения корней уравнения в методе секущих.

13. Дайте определение понятию «разностная производная».

14. Выведите основные формулы метода секущих.

15. Приведите алгоритм итерационной процедуры метода секущих.

16. В чем состоит условие завершения итераций в методе секущих?

17. При каких условиях применим метод простой итерации?

18. Как определяется точность и погрешность нахождения корней в методе простой итерации?

19. Приведите алгоритм итерационной процедуры метода простой итерации.

20. Выведите условие сходимости метода простой итерации.

21. Выведите модифицированную формулу метода простой итерации.

22. Опишите алгоритм модифицированного метода простой итерации.

Задания

Найти корни одного из следующих уравнений, используя методы: простой итерации, деления отрезка пополам, касательных и секущих.

1. ln x + (x + 1)3 = 0;

2. x×2x = 1;

3. x – cos x = 0;

4. 3x + cos x + 1 = 0;

5. x + lg x = 0,5;

6. 2 – x = ln x;

7. (2 – x)×ex = 0;

8. 2,2×x – 2x = 0;

9. x2 + 4 sin x = 0;

10. 2x – lg x = 7;

11. 5x – 8 ln x = 8;

12. 3×x – ex = 0;

13. x (x + 1)2 = 1;

14. x = (x + 1)3;

15. x2 = sin x;

16. x3 = sin x;

17. x2 = ln (x+1);

18. 2x + lg x = – 0,5;

19. 2x + cos x = 0,5;

20. sin 0,5x +1 = x2; x>0;

21. 0,5x + lg (x–1) = 0,5;

22. sin (0,5 + x) = 2x – 0,5;

23. lg (2 + x) +2x = 3;

24. lg (1 + 2x) = 2 – x;

25. 2 sin (x – 0,6) = 1,5 – x.

Наши рекомендации