Участник:Александр Двойнев/песочница
Материал из MachineLearning.
(→Заключение) |
|||
Строка 1: | Строка 1: | ||
== Введение == | == Введение == | ||
- | Пусть задана функция <tex>f(x)</tex> действительного переменного. Требуется найти корни уравнения | + | Пусть задана функция <tex>f(x)</tex> действительного переменного. Требуется найти корни уравнения |
{{eqno|1}} | {{eqno|1}} | ||
- | ::<tex>f(x)=0.</tex> | + | :: <tex>f(x)=0.</tex> |
- | Задача нахождения корней уравнения {{eqref|1}} обычно решается в 2 этапа. На первом этапе проводится отделение корней, | + | Задача нахождения корней уравнения {{eqref|1}} обычно решается в 2 этапа. На первом этапе проводится отделение корней, то есть выделение отрезков, содержащих только один корень. На втором этапе, используя начальное приближение, строится итерационный процесс, позволяющий уточнить значение отыскиваемого корня. |
== Изложение метода == | == Изложение метода == | ||
- | + | Метод секущих получается из [[Метод касательных (Ньютона-Рафсона)|метода касательных]] заменой <tex>f'(x^k)</tex> разностным приближением: | |
+ | :: <tex>f'(x^k) \approx \frac{f(x^k)-f(x^{k-1})}{x^k-x^{k-1}}.</tex> | ||
+ | В результате получим формулу итерационного процесса: | ||
+ | {{eqno|1}} | ||
+ | :: <tex>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</tex> | ||
- | + | Метод секущих является ''двухшаговым'', то есть новое приближение <tex>x^{k+1}</tex> определяется двумя предыдущими итерациями <tex>x^k</tex> и <tex>x^{k-1}.</tex> В методе {{eqref|1}} необходимо задавать ''два'' начальных приближения <tex>x^0</tex> и <tex>x^1.</tex> | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | Скорость сходимости метода будет ''линейной'': <tex>|x^{k+1}-x*|=O(k^k-x*).</tex> | |
- | + | === Геометрическая интерпретация === | |
- | + | [[Изображение:sekush.JPG|thumb|200px|Метод секущих]] | |
- | + | Заметим, что уравнение для секущей, проходящей через точки <tex>M'(x^{k-1},f(x^{k-1}))</tex> и <tex>M''(x^k, f(x^k))</tex>, будет выглядть так: | |
- | + | :: <tex>\frac{y-f(x^k)}{x-x^k}=\frac{f(x^k)-f(x^{k-1})}{x^k-x^{k-1}}.</tex> | |
- | + | Положив <tex>y=0</tex> и <tex>x=x^{k+1},</tex> можно получить формулу {{eqref|1}}. Это означает, что <tex>x^{k+1}</tex> — это абсцисса точки пересечения нашей секущей с осью ОХ. Иначе говоря, на отрезке <tex>[x^{k-1},x^k]</tex> функция <tex>f(x)</tex> интерполируется многочленом первой степени и за очередное приближение <tex>x^{k+1}</tex> принимается корень этого многочлена. | |
- | + | ||
- | + | ||
- | + | ||
- | === Геометрическая интерпретация=== | + | |
- | + | ||
- | [[Изображение: | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | ::<tex> | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
== Числовой пример == | == Числовой пример == | ||
[[Изображение:kasatex.jpg|thumb|200px|График функции]] | [[Изображение:kasatex.jpg|thumb|200px|График функции]] | ||
- | Рассмотрим функцию <tex>f(x)= cos(x)-x+1.</tex> С помощью метода {{eqref| | + | Рассмотрим функцию <tex>f(x)= cos(x)-x+1.</tex> С помощью метода {{eqref|1}} найдем корень уравнения <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> |
== Рекомендации программисту == | == Рекомендации программисту == | ||
Строка 78: | Строка 37: | ||
Как правило, берут один из следующих критериев останова: | Как правило, берут один из следующих критериев останова: | ||
- | #<tex>f(x^k)< \eps</tex> | + | # <tex>f(x^k)< \eps</tex> — значение функции на данной итерации стало меньше заданого ε. |
- | #<tex>\left|x^k-x^{k-1}\right| < \eps</tex> | + | # <tex>\left|x^k-x^{k-1}\right| < \eps</tex> — изменение х<sup>k</sup> в результате итерации стало меньше заданого ε. |
=== Ошибки округления === | === Ошибки округления === | ||
- | В методе | + | В методе секущих, как и в других итерационных методах решения уравнений, ошибка округления ''не накапливается''. Общая ошибка округления равна ошибке, возникшей в последней итерации, и не зависит от арифметических операций, выполнявшихся в предыдущих итерациях. |
== Заключение == | == Заключение == | ||
- | |||
== Файлы == | == Файлы == | ||
- | [[ | + | |
+ | [[Медиа:Sekush.zip | sekush.zip]] | ||
+ | |||
== Ссылки == | == Ссылки == | ||
* [[Практикум ММП ВМК, 4й курс, осень 2008|Практикум ММП ВМК, 4й курс, осень 2008]] | * [[Практикум ММП ВМК, 4й курс, осень 2008|Практикум ММП ВМК, 4й курс, осень 2008]] | ||
- | * [[Метод | + | * [[Метод касательных (Ньютона-Рафсона)]] |
+ | |||
== Список литературы == | == Список литературы == | ||
- | *[http://mmphome.1gb.ru/index.php?pid=show&id=79 Н. | + | * [http://mmphome.1gb.ru/index.php?pid=show&id=79 Н. В. Соснин. Численные методы. Конспект лекций (сост. Д. В. Ховратович, Е. А. Попов)] |
- | *Самаский А.А., Гулин А. | + | * Самаский А. А., Гулин А. В. Численные Методы. Учеб. пособие для вузов. — М.:Наука, 1989. |
- | + | ||
- | <!--{{Stub|}}--> | + | <!-- {{Stub|}} --> |
Версия 14:35, 5 декабря 2008
Содержание |
Введение
Пусть задана функция действительного переменного. Требуется найти корни уравнения
Задача нахождения корней уравнения (1) обычно решается в 2 этапа. На первом этапе проводится отделение корней, то есть выделение отрезков, содержащих только один корень. На втором этапе, используя начальное приближение, строится итерационный процесс, позволяющий уточнить значение отыскиваемого корня.
Изложение метода
Метод секущих получается из метода касательных заменой разностным приближением:
В результате получим формулу итерационного процесса:
Метод секущих является двухшаговым, то есть новое приближение определяется двумя предыдущими итерациями и В методе (1) необходимо задавать два начальных приближения и
Скорость сходимости метода будет линейной:
Геометрическая интерпретация
Заметим, что уравнение для секущей, проходящей через точки и , будет выглядть так:
Положив и можно получить формулу (1). Это означает, что — это абсцисса точки пересечения нашей секущей с осью ОХ. Иначе говоря, на отрезке функция интерполируется многочленом первой степени и за очередное приближение принимается корень этого многочлена.
Числовой пример
Рассмотрим функцию С помощью метода (1) найдем корень уравнения Исходный код программы, ищущей корень уравнения методом секущих, выложен в разделе «Файлы».
Возьмём в качестве начальных приближений и точность В итоге за 8 итераций получим корень
Рекомендации программисту
Критерий останова
Как правило, берут один из следующих критериев останова:
- — значение функции на данной итерации стало меньше заданого ε.
- — изменение хk в результате итерации стало меньше заданого ε.
Ошибки округления
В методе секущих, как и в других итерационных методах решения уравнений, ошибка округления не накапливается. Общая ошибка округления равна ошибке, возникшей в последней итерации, и не зависит от арифметических операций, выполнявшихся в предыдущих итерациях.
Заключение
Файлы
Ссылки
Список литературы
- Н. В. Соснин. Численные методы. Конспект лекций (сост. Д. В. Ховратович, Е. А. Попов)
- Самаский А. А., Гулин А. В. Численные Методы. Учеб. пособие для вузов. — М.:Наука, 1989.