Метод Ньютона (метод касательных)
Пусть найдено приближенное значение корня уравнения f (x) = 0, обозначим его xn. Расчетная формула метода Ньютона для определения очередного приближения xn +1 может быть получена двумя способами. Первый способ выражает геометрический смысл метода Ньютона и состоит в том, что вместо точки пересечения графика функции y = f (x) с осью OX, мы ищем точку пересечения с осью OX касательной, проведенной к графику функции в точке (xn, f (xn)) как показано на рис. 2.6. Уравнение касательной имеет вид Рис. 2.7. Метод Ньютона (касательных)
В точке пересечения касательной с осью OX переменная y = 0. Приравнивая y нулю, выразим x и получим формулу метода касательных:
Второй способ. Разложим функцию f (x) в ряд Тейлора в окрестности точки x = xn: Ограничимся линейными относительно (x – xn) слагаемыми, приравняем нулю f (x) и, выразив из полученного уравнения неизвестное x и обозначив его через xn +1, мы получим формулу (2.6). Приведем достаточные условия сходимости метода Ньютона. Теорема 2.3. Пусть на отрезке 1) функция 2) производные 3) Тогда существует отрезок Доказательство. Так как
Рис. 2.8. Достаточные условия сходимости метода Ньютона
Замечание. Отметим, что метод хорд как раз идет с противоположной стороны, и оба этих метода т.о. могут друг друга дополнять, а возможен и комбинированный метод хорд-касательных. Пример 2.7. Уточнить до 0,000001 методом Ньютона корень уравнения Решение. Найдем производную В программе Excel введем расчетные формулы: 1) Введем формулы и обозначения в ячейках диапазона A 1: D 3 и скопируем вниз маркером заполнения ячейки с формулами: B 3 — до B 5, Таблица 2.9
Результаты расчетов приведены в таблице 2.10. Получено значение корня – 0,726631609 ≈ – 0,726632 с погрешностью 0,000001. Таблица 2.10
Создадим функции в программе Excel для решения уравнения из примера 2.7 методом Ньютона:
Function f1(ByVal x) f1 = 5 * Cos(5 * x) + 2 * x End Function Function f(ByVal x) f = Sin(5 * x) + x ^ 2 - 1 End Function Function Newton(ByVal x0, eps, Kmax) k = 0 1 x1 = x0 - f(x0) / f1(x0) absErr = Abs(x1 - x0) If (absErr < eps) Or (k > Kmax) Then GoTo 5 x0 = x1 k = k + 1 GoTo 1 5 Newton = x1 End Function
Введем в произвольную ячейку формулу =Newton(0,2;0,0001;100), получим значение 0,24462. Решение в программе Mathcad:
Найденные корни совпадают с предыдущими результатами.
|