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