Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Численные методы.doc
Скачиваний:
37
Добавлен:
14.08.2019
Размер:
4.24 Mб
Скачать

§ 6. Применение метода простой итерации к решению

уравнения f(x) = 0

Пусть задано уравнение f(x) = 0 на отрезке [; ]. Сводя задачу к уже решённой в предыдущем параграфе, достаточно представить это уравнение в виде h(x) = x со сжимающей функцией h : [; ] [; ]. Имеем f(x) = 0 (xA·f(x)) = x, где Aненулевая константа. Таким образом, можно считать, что h(x) = xA·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.

Теперь воспользуемся результатами предыдущего параграфа:

  1. Условие 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.

  1. коэффициент сжатия функции h(x) = xA·f(x). Предыдущие рас­смотрения гарантируют неравенство h(x) = 1 – A·f(x) 0. Далее, h(x) = –A·f(x) = –sgn f·|Af(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 на [; ]

  1. Вычисляем знаки f , f и f·f.

  2. Записываем f(x) = 0 уравнение в виде xA·f(x) = x, где A = , где M = |f()| при f·f 0 и M = |f()| при f·f 0.

  3. Коэффициент сжатия: с = 1 – при f·f 0, и с = 1 – , если f·f 0.

  4. Вычисляем начальное приближение x0 : x0 = , если f·f 0 (можно просто x0 = ), и x0 = (или x0 = ), если f·f 0.

  5. Выполняем итерации: xn+1 = xnA·f(xn) (n N).

  6. Останавливаем вычисления при n = или при одновременном выполнении условий |xn+1xn| , |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. Поэтому можно применить метод простой итерации.

  1. Ясно, что f < 0, f > 0, f·f < 0.

  2. Составляем уравнение h(x) = x, где h(x) = xA·(ex–1 – 2·x) и величина A = – –0,6127.

  1. Коэффициент сжатия: c = 0,3873.

  2. Выбираем начальное приближение x0 = 0 (без уточнения).

  3. Производим итерации xn+1 = xn + 0,6127·f(xn) (n N), пока либо |xn+1xn| > 0,001, либо |f(xn)| > 0,001:

Таким образом, приближённое значение корня 0,232.

Если применить уточнение корня, взяв x0 = –0,2254, то итераций потребуется меньше.

2. Уточнить корень уравнения sinxln x = 0 на отрезке [1,2; 1,5] с точностью до 0,001.

Имеем: f(x) = sin 2·x – ln x, f(x) = 2·cos 2·x – . Ввиду неравенств < 2,4 x 3 < величина cosx на [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·sinx + и sinx убывает на [1,2; 1,5]. При этом 0,5645 sin3 sinx sin2,4 2,7019 и 0,4444 0,6944. Значит, f < 0 и можно применить метод простой итерации для уточнения корня.

Ясно, что f < 0, f < 0, f·f > 0.

  1. Составляем уравнение h(x) = x, где h(x) = xA·(sinxln x), с коэффициентом – 0,3778.

  2. Вычисляем коэффициент сжатия

0,1279.

  1. Выбираем начальное приближение x0 = 1,5 (без уточнения).

  2. Производим итерации xn+1 = xn + 0,3778·f(xn) (n N), пока верно |xn+1xn| > 0,001 или |h(xn+1) – xn | > 0,001 :

Таким образом, приближённое значение корня 1,400.

Уточнив приближение x0 = 1,4001, и вычислив x1 = h(x0) 1,3994, получим |x1x0| = 0,0007 < 0,001, так что итераций не требуется.

Замечание: Можно показать, что методы хорд и касательных являются (в достаточно малой окрестности корня) частными случаями метода простой итерации: достаточно уравнение f(x) = 0 заменить уравнением x(xf(x) = x. Для метода касательных нужно взять (x) = , а для метода хорд (x) = .