Метод секущих

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
м (Геометрическая интерпретация: Номер формулы)
Текущая версия (16:05, 12 февраля 2015) (править) (отменить)
м (Числовой пример: Ссылка на формулу)
 
Строка 28: Строка 28:
[[Изображение:kasatex.jpg|thumb|200px|График функции]]
[[Изображение:kasatex.jpg|thumb|200px|График функции]]
-
Рассмотрим функцию <tex>f(x)= cos(x)-x+1.</tex> С помощью метода {{eqref|1}} найдем корень уравнения <tex>f(x)=0.</tex> Исходный код программы, ищущей корень уравнения методом секущих, выложен в разделе «'''Файлы'''».
+
Рассмотрим функцию <tex>f(x)= cos(x)-x+1.</tex> С помощью метода {{eqref|2}} найдем корень уравнения <tex>f(x)=0.</tex> Исходный код программы, ищущей корень уравнения методом секущих, выложен в разделе «'''Файлы'''».
Возьмём в качестве начальных приближений <tex>x^0=4, \; x^1=3</tex> и точность <tex>\eps=10^{-6}.</tex> В итоге за 8 итераций получим корень <tex>x* \approx 1.283429.</tex>
Возьмём в качестве начальных приближений <tex>x^0=4, \; x^1=3</tex> и точность <tex>\eps=10^{-6}.</tex> В итоге за 8 итераций получим корень <tex>x* \approx 1.283429.</tex>

Текущая версия

Содержание

Введение

Пусть задана функция f(x) действительного переменного. Требуется найти корни уравнения

(1)
f(x)=0.

Задача нахождения корней уравнения (1) обычно решается в 2 этапа. На первом этапе проводится отделение корней, то есть выделение отрезков, содержащих только один корень. На втором этапе, используя начальное приближение, строится итерационный процесс, позволяющий уточнить значение отыскиваемого корня.

Изложение метода

Метод секущих получается из метода касательных заменой f'(x^k) разностным приближением:

f'(x^k) \approx \frac{f(x^k)-f(x^{k-1})}{x^k-x^{k-1}}.

В результате получим формулу итерационного процесса:

(2)
x^{k+1}=x^k-\frac{x^k-x^{k-1}}{f(x^k)-f(x^{k-1})}f(x^k), \;k=1,2,\ldots

Метод секущих является двухшаговым, то есть новое приближение x^{k+1} определяется двумя предыдущими итерациями x^k и x^{k-1}. В методе (1) необходимо задавать два начальных приближения x^0 и x^1.

Скорость сходимости метода будет линейной: |x^{k+1}-x*|=O(k^k-x*).

Геометрическая интерпретация

Метод секущих
Метод секущих

Заметим, что уравнение для секущей, проходящей через точки M'(x^{k-1},f(x^{k-1})) и M''(x^k, f(x^k)), будет выглядть так:

\frac{y-f(x^k)}{x-x^k}=\frac{f(x^k)-f(x^{k-1})}{x^k-x^{k-1}}.

Положив y=0 и x=x^{k+1}, можно получить формулу (2). Это означает, что x^{k+1} — это абсцисса точки пересечения нашей секущей с осью ОХ. Иначе говоря, на отрезке [x^{k-1},x^k] функция f(x) интерполируется многочленом первой степени и за очередное приближение x^{k+1} принимается корень этого многочлена.

Числовой пример

График функции
График функции

Рассмотрим функцию f(x)= cos(x)-x+1. С помощью метода (2) найдем корень уравнения f(x)=0. Исходный код программы, ищущей корень уравнения методом секущих, выложен в разделе «Файлы».

Возьмём в качестве начальных приближений x^0=4, \; x^1=3 и точность \eps=10^{-6}. В итоге за 8 итераций получим корень x* \approx 1.283429.

Рекомендации программисту

Критерий останова

Как правило, берут один из следующих критериев останова:

  1. f(x^k)< \eps — значение функции на данной итерации стало меньше заданого ε.
  2. \left|x^k-x^{k-1}\right| < \eps — изменение хk в результате итерации стало меньше заданого ε.

Ошибки округления

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

Файлы

sekush.zip

Ссылки

Список литературы

Личные инструменты