- •Вместо введения: о погрешностях при решении прикладных задач
- •Глава I. Численные методы решения уравнений
- •§ 1. Задача локализации корней
- •Ограничение корней
- •Локализация корней
- •Простейший (грубейший) алгоритм локализации корней:
- •§ 2. Понятие об итерационных методах уточнения корней
- •Метод деления пополам (метод вилки)
- •§ 3. Методы хорд и касательных
- •Метод хорд для монотонных выпукло-вогнутых функций
- •Метод касательных для монотонных выпукло-вогнутых функций
- •§ 4. Метрические и банаховы пространства. Теорема о неподвижной точке
- •Матричные нормы
- •§ 5. Метод простой итерации
- •§ 6. Применение метода простой итерации к решению
- •Условие h([; ]) [; ] :
- •Глава II. Вычисления в линейной алгебре
- •§ 1. Метод Гаусса и его улучшения для повышения точности решения
- •§ 2. Метод простой итерации и метод Зейделя
- •§ 3. Подготовка к применению метода простой итерации
- •§ 4. Проблема собственных значений
- •Глава III. Численное интегрирование
- •§ 1. Метод прямоугольников
- •§ 2. Метод трапеций
- •§ 3. Метод Симпсона (параболическое интерполирование)
- •Глава IV. Некоторые методы аппроксимации функций
- •§ 1. Интерполяционный многочлен Лагранжа
- •§ 2. Интерполяционный многочлен Ньютона
- •§ 3. Метод наименьших квадратов
- •Глава V. Некоторые методы численного решения дифференциальных уравнений
- •Приложение: Сводка характеристик численных методов
- •Характеристики метода:
- •Характеристики метода:
- •Характеристики метода:
- •Характеристики метода:
- •Характеристики метода:
§ 6. Применение метода простой итерации к решению
уравнения f(x) = 0
Пусть задано уравнение f(x) = 0 на отрезке [; ]. Сводя задачу к уже решённой в предыдущем параграфе, достаточно представить это уравнение в виде h(x) = x со сжимающей функцией h : [; ] [; ]. Имеем f(x) = 0 (x – A·f(x)) = x, где A – ненулевая константа. Таким образом, можно считать, что h(x) = x – A·f(x) и нужно теперь так подобрать постоянную A, чтобы выполнялось условие сжимаемости отображения h.
Для простоты будем предполагать, что функция f дважды непрерывно дифференцируема на [ ; ] и для неё выполнена локализация корня так, что f монотонна и неизменно выпукла на [ ; ], причём f()·f() < 0. Будем пользоваться выводами предыдущего параграфа, формулируя их в терминах функции f.
Вначале подберём
константу A
так, чтобы
функция h
стала
неубывающей: h(x)
= 1 – A·f(x)
0
A·f(x)
1. Если f
возрастает,
то f(x)
> 0 и A
при любом x
[
; ],
т.е. A
. Если же f
убывает,
то f(x)
< 0, А
при любом x
[
; ],
т.е. A
. Величина
|f(x)|
в условиях
неизменной выпуклости функции f
на отрезке
[
; ]
вычисляется легко:
|f(x)|
= max{|f()|,
|f()|},
причём |f()|
получается
при f·f
< 0, а
|f()|
– при f·f
> 0.
Теперь воспользуемся результатами предыдущего параграфа:
Условие h([; ]) [; ] :
(h([; ]) [; ]) (h() и h() )
( – A·f() и – A·f() ) (A·f() 0 и A·f() 0).
В случае возрастающей
функции f
имеем f()
< 0 < f(),
так что с учётом предыдущих ограничений
0 < A
. Для убывающей
функции f
будет f()
> 0 > f(),
и получаем
A
< 0. Отметим,
что знак А
совпадает
со знаком sgn
f
производной
функции f.
коэффициент сжатия функции h(x) = x – A·f(x). Предыдущие рассмотрения гарантируют неравенство h(x) = 1 – A·f(x) 0. Далее, h(x) = –A·f(x) = –sgn f·|A|·f(x). Таким образом, знак h(x) постоянен на отрезке [; ] и противоположен знаку f·f . Поэтому, как следует из результатов предыдущего параграфа, условие сжимаемости отображения h будет выглядеть так:
если f·f 0, то c = h() = 1 – A·f() < 1;
если f·f 0, то c = h() = 1 – A·f() < 1.
Оба эти условия
выполнены, т.к. A·f
> 0.
Минимальный коэффициент сжатия
получается, при |A|
=
, т.е. при
A
=
.
Таким образом, окончательно получаем:
если f·f
0, то c
= 1 –
;
если f·f
0, то c
= 1 –
.
Поскольку величина A = зависит от знака производной, то формулы итерационного процесса тоже будут различны:
при f·f
> 0 : xn+1
= xn
–
,
при f·f
< 0 : xn+1
= xn
–
,
(n N), x0 [; ].
Как и в предыдущем
параграфе, можно улучшить начальное
приближение, беря x0
=
при h·h
> 0 и x0
=
, если h·h
< 0. Поскольку
h
0, а знак
h
противоположен
знаку f·f,
окончательно имеем:
если f·f
> 0, то x0
=
,
если f·f
< 0, то x0
=
.
Подытожим полученные выводы для решения уравнения f(x) = 0 методом простой итерации в предположении, что функция f дважды непрерывно дифференцируема и имеет знакопостоянные на [; ] производные f и f .
Метод простой итерации для уравнения f(x) = 0 на [; ]
Вычисляем знаки f , f и f·f.
Записываем f(x) = 0 уравнение в виде x – A·f(x) = x, где A =
, где M
= |f()|
при f·f
0 и M
= |f()|
при f·f
0.
Коэффициент сжатия: с = 1 –
при f·f
0, и с = 1 –
, если f·f
0.Вычисляем начальное приближение x0 : x0 =
, если f·f
0 (можно просто x0
= ),
и x0
=
(или x0
= ),
если f·f
0.Выполняем итерации: xn+1 = xn – A·f(xn) (n N).
Останавливаем вычисления при n =
или при
одновременном выполнении условий
|xn+1
– xn|
,
|f(xn)|
, где
– заданная погрешность.
Замечание: Если для выхода не вычисляется величина n, то коэффициент сжатия c вычислять нет необходимости. Это можно сделать в модельных примерах для контроля правильности вычислений.
Полученные выводы о методе простой итерации для уравнения f(x) = 0 систематизированы в приложении (таблица III).
Примеры: 1. Уточнить методом простой итерации корень уравнения ex–1 – 2·x = 0 на отрезке [0; 0,9] с точностью до 0,001.
Здесь f(x) = ex–1 – 2·x имеет корень на [0; 9], т.к. f(0) = e–1 > 0, f(0,9) = e–0,1 – 1,8 < 0. Производная f(x) = ex–1 – 2 отрицательна на отрезке [0; 0,9], т.к. f(0,9) = e–0,1 – 2 < 0 и f(x) возрастает: f(x) = ex–1 > 0. Поэтому можно применить метод простой итерации.
Ясно, что f < 0, f > 0, f·f < 0.
Составляем уравнение h(x) = x, где h(x) = x – A·(ex–1 – 2·x) и величина A = –
–0,6127.
Коэффициент сжатия: c =
0,3873.Выбираем начальное приближение x0 = 0 (без уточнения).
Производим итерации xn+1 = xn + 0,6127·f(xn) (n N), пока либо |xn+1 – xn| > 0,001, либо |f(xn)| > 0,001:
Таким образом, приближённое значение корня 0,232.
Если применить
уточнение корня, взяв x0
=
–0,2254, то
итераций потребуется меньше.
2. Уточнить корень уравнения sin 2·x – ln x = 0 на отрезке [1,2; 1,5] с точностью до 0,001.
Имеем:
f(x)
= sin 2·x – ln x, f(x)
= 2·cos 2·x –
.
Ввиду
неравенств
< 2,4
2·x
3 <
величина cos
2·x
на [1,2;
1,5] отрицательна,
значит f
< 0,
f
убывает на
[1,2; 1,5].
Кроме того, f(1,2)
0,675 – 0,082 > 0, f(1,5)
0,141 – 0,405 < 0,
так что f
имеет на
рассматриваемом отрезке единственный
корень.
Далее, f(x)
= –4·sin
2·x
+
и sin
2·x
убывает на
[1,2; 1,5].
При этом
0,5645
4·sin3
4·sin2·x
4·sin2,4
2,7019 и
0,4444
0,6944. Значит,
f
< 0 и можно
применить метод простой итерации для
уточнения корня.
Ясно, что f < 0, f < 0, f·f > 0.
Составляем уравнение h(x) = x, где h(x) = x – A·(sin 2·x – ln x), с коэффициентом
– 0,3778.Вычисляем коэффициент сжатия
0,1279.
Выбираем начальное приближение x0 = 1,5 (без уточнения).
Производим итерации xn+1 = xn + 0,3778·f(xn) (n N), пока верно |xn+1 – xn| > 0,001 или |h(xn+1) – xn | > 0,001 :
Таким образом, приближённое значение корня 1,400.
Уточнив приближение
x0
=
1,4001, и
вычислив x1
= h(x0)
1,3994,
получим |x1
– x0|
= 0,0007 < 0,001,
так что итераций не требуется.
Замечание:
Можно показать, что методы
хорд и касательных являются
(в достаточно малой окрестности корня)
частными
случаями метода простой итерации:
достаточно уравнение f(x)
= 0 заменить
уравнением x
– (x)·f(x)
= x.
Для метода касательных нужно взять
(x)
=
, а для
метода хорд (x)
=
.
