bilim.techО проекте

Метод Ньютона

Как найти уровень в цистерне по объему или трение в трубе, если формулы для ответа нет? Проводи касательные шаг за шагом и смотри, как число верных знаков удваивается.

01 Что это такое

Метод Ньютона находит корень уравнения, много раз заменяя кривую касательной.

Многие инженерные уравнения нельзя решить формулой: уровень в цистерне по объему, трение в трубе, орбита спутника. Но легко посчитать, сколько не хватает до нуля и как быстро меняется функция. Берем догадку, проводим в ней касательную (это производная) и смотрим, где касательная пересекает ось. Это новая догадка, намного точнее. Обычно хватает четырех-пяти шагов, и ответ верен до последней цифры калькулятора.

x₀ = 3x₁ = 1,8333x₂ = 1,4621√2 = 1,41421…y = x² − 2x₃ = 1,414998, ошибка всего 0,0008
Из x₀ = 3 касательная приводит в x₁ = 1,833, оттуда в x₂ = 1,462. Каждый шаг примерно удваивает число верных знаков.
xₙ
Приближение на шаге n. x₀ задаешь сам: оценка по опыту, по графику или по прошлому расчету.
f(xₙ)
Невязка. Сколько не хватает до нуля. Если f(xₙ) = 0, корень найден.
f′(xₙ)
Наклон касательной. Показывает, насколько сдвинуть x, чтобы убрать невязку. Если он около нуля, метод ломается.
02 Опыт
Делай шаги по одному. Смотри, как касательные сбегаются к корню, а верные знаки удваиваются. РАСЧЕТ В РЕАЛЬНОМ ВРЕМЕНИ
ЧИСЛЕННЫЕ МЕТОДЫ

Как найти корень за несколько касательных?

Рис. 8.1
УРАВНЕНИЕ
Приближение
Невязка |f(xₙ)|
Сделано шагов

ⓘ Точный корень для сравнения найден заранее делением отрезка пополам на 200 шагов. Цистерна горизонтальная, диаметр 2,4 м, длина 7 м, налито 12 м³. Труба: число Рейнольдса 100 000, относительная шероховатость 0,0001.

03 Формулы по буквам

Шаг Ньютона, касательная и остановка

Первая формула и есть весь метод: одна строка, которую повторяют. Вторая показывает, откуда она взялась. Третья отвечает, когда остановиться и почему сходимость такая быстрая. Под каждой формулой числа из опыта.

Как получить следующее приближение?

xₙ₊₁ = xₙ − f(xₙ)f′(xₙ)

Невязку делим на наклон и получаем, насколько сдвинуться. Если f(xₙ) больше нуля и функция растет, шаг идет влево, и наоборот. Чем круче функция, тем короче нужный шаг.

xₙ
текущее приближение
f(xₙ)
невязка: сколько осталось до нуля
f′(xₙ)
наклон в этой точке, не должен быть около нуля

Откуда эта формула?

y = f(xₙ) + f′(xₙ) · (x − xₙ) = 0

Рядом с xₙ кривая почти совпадает с касательной. Найти, где прямая пересекает ось, легко: приравняй y к нулю и вырази x. Получится ровно формула шага. Это ряд Тейлора, оборванный после первого слагаемого.

y
высота касательной над осью
x − xₙ
сдвиг от текущей точки, искомый шаг
= 0
ищем точку, где касательная пересекает ось x

Когда остановиться и почему так быстро?

|xₙ₊₁ − xₙ| < ε,  eₙ₊₁ ≈ C · eₙ²

Останавливаемся, когда шаг стал меньше нужной точности. Рядом с корнем ошибка на следующем шаге пропорциональна квадрату текущей: была 0,01, станет около 0,0001. Число верных знаков удваивается.

ε
требуемая точность, например 10⁻⁸
eₙ
ошибка на шаге n: |xₙ − x*|
C
постоянная, равная |f″/(2f′)| в корне

Откуда берутся формулы

Посмотри на рисунок справа. В точке xₙ график поднят над осью на f(xₙ). Касательная спускается к оси с наклоном f′(xₙ), то есть на каждую единицу по x она опускается на f′(xₙ). Чтобы опуститься на всю высоту f(xₙ), нужен шаг f(xₙ)/f′(xₙ). Из прямоугольного треугольника: наклон равен высоте, деленной на основание. Отсюда xₙ₊₁ = xₙ − f(xₙ)/f′(xₙ).

Почему ошибка возводится в квадрат? По ряду Тейлора f(x*) = f(xₙ) + f′(xₙ)(x* − xₙ) + f″/2 · (x* − xₙ)² = 0. Метод отбрасывает последнее слагаемое, поэтому ошибка нового шага порядка (x* − xₙ)². Отсюда и правила, когда метод ломается: если f′ около нуля, шаг огромный; если x₀ далеко, касательная плохо похожа на кривую.

x² = a
xₙ₊₁ = (xₙ + a/xₙ)/2: так считали корни еще в Вавилоне
f′(xₙ) ≈ 0
касательная почти горизонтальна, шаг улетает далеко
x₀ далеко
возможен перелет, расходимость или цикл
нет f′
берут наклон по двум точкам: метод секущих
|f(xₙ)| < ε
второй критерий: невязка уже мала
xₙxₙ₊₁кореньf(xₙ)f(xₙ) / f′(xₙ)наклон f′(xₙ)
Высота f(xₙ), наклон f′(xₙ). Значит, основание треугольника, то есть шаг до оси, равно f(xₙ)/f′(xₙ).
04 Где и зачем это применяют

Везде, где уравнение не решается формулой

Допущения модели+

Метод Ньютона требует, чтобы функция была гладкой и производную можно было посчитать. Квадратичная сходимость гарантирована только вблизи простого корня, где f′(x*) не равна нулю. У кратного корня, например у x² в нуле, сходимость становится медленной, линейной. Глобально метод может расходиться или зацикливаться, поэтому в программах его сочетают с более надежным делением отрезка пополам или ограничивают длину шага. В опыте число шагов ограничено 30, а расчет идет с точностью компьютера около 16 знаков, поэтому больше 15 верных знаков не бывает.

Еще в направлении «Математика»

Все темы направления «Математика» →