В численном анализе метод Ньютона -Рафсона , также известный просто как метод Ньютона , названный в честь Исаака Ньютона и Джозефа Рафсона , представляет собой алгоритм поиска корней , который производит последовательно лучшие приближения к корням (или нулям) действительной функции . Самая базовая версия начинается с действительной функции f , ее производной f ′ и начального предположения x 0 для корня f . Если f удовлетворяет определенным предположениям и начальное предположение близко, то
является лучшим приближением корня, чем x 0 . Геометрически, ( x 1 , 0) является точкой пересечения с осью x касательной графика функции f в точке ( x 0 , f ( x 0 )) : то есть улучшенное предположение x 1 является единственным корнем линейного приближения функции f в исходном предположении x 0 . Процесс повторяется как
пока не будет достигнуто достаточно точное значение. Количество правильных цифр примерно удваивается с каждым шагом. Этот алгоритм является первым в классе методов Хаусхолдера , и ему на смену пришел метод Галлея . Метод также может быть распространен на комплексные функции и системы уравнений .
Идея состоит в том, чтобы начать с начальной догадки, затем приблизить функцию ее касательной и, наконец, вычислить точку пересечения x этой касательной. Эта точка пересечения x обычно будет лучшим приближением к корню исходной функции, чем первая догадка, и метод можно итерировать .
Если касательная к кривой f ( x ) в точке x = x n пересекает ось x в точке x n +1 , то наклон равен
Решение для x n +1 дает
Мы начинаем процесс с некоторого произвольного начального значения x 0 . (Чем ближе к нулю, тем лучше. Но при отсутствии какой-либо интуиции о том, где может находиться ноль, метод «угадай и проверь» может сузить возможности до достаточно малого интервала, апеллируя к теореме о промежуточном значении .) Метод обычно сходится, при условии, что это начальное предположение достаточно близко к неизвестному нулю, и что f ′ ( x 0 ) ≠ 0 . Более того, для нуля кратности 1 сходимость является по крайней мере квадратичной (см. Скорость сходимости ) в окрестности нуля, что интуитивно означает, что количество правильных цифр примерно удваивается на каждом шаге. Более подробную информацию можно найти в § Анализ ниже.
Методы Хаусхолдера похожи, но имеют более высокий порядок для еще более быстрой сходимости. Однако дополнительные вычисления, необходимые для каждого шага, могут замедлить общую производительность по сравнению с методом Ньютона, особенно если f или ее производные требуют больших вычислительных затрат для оценки.
Название «метод Ньютона» происходит от описания Исааком Ньютоном особого случая метода в De analysi per aequationes numero terminorum infinitas (написано в 1669 году, опубликовано в 1711 году Уильямом Джонсом ) и в De metodis fluxionum et serierum infinitarum (написано в 1671 году, переведено и опубликовано как Method of Fluxions в 1736 году Джоном Колсоном ). Однако его метод существенно отличается от современного метода, приведенного выше. Ньютон применял метод только к многочленам, начиная с начальной оценки корня и извлекая последовательность исправлений ошибок. Он использовал каждую коррекцию, чтобы переписать многочлен в терминах оставшейся ошибки, а затем решал для новой коррекции, пренебрегая членами более высокой степени. Он явно не связывал метод с производными или не представлял общую формулу. Ньютон применял этот метод как к числовым, так и к алгебраическим задачам, создавая ряды Тейлора в последнем случае.
Ньютон, возможно, вывел свой метод из похожего, менее точного метода Виета . Суть метода Виета можно найти в работе персидского математика Шарафа ад-Дина ат-Туси , в то время как его преемник Джамшид аль-Каши использовал форму метода Ньютона для решения x P − N = 0, чтобы найти корни N (Ypma 1995). Частный случай метода Ньютона для вычисления квадратных корней был известен с древних времен и часто называется вавилонским методом .
Метод Ньютона использовался японским математиком XVII века Сэки Кова для решения уравнений с одной переменной, хотя связь с исчислением отсутствовала. [1]
Метод Ньютона был впервые опубликован в 1685 году в «Трактате об исторической и практической алгебре» Джона Уоллиса . [2] В 1690 году Джозеф Рафсон опубликовал упрощенное описание в «Анализе aequationum universalis» . [3] Рафсон также применил метод только к многочленам, но он избежал утомительного процесса переписывания Ньютона, извлекая каждую последующую поправку из исходного многочлена. Это позволило ему вывести повторно используемое итеративное выражение для каждой задачи. Наконец, в 1740 году Томас Симпсон описал метод Ньютона как итеративный метод для решения общих нелинейных уравнений с использованием исчисления, по сути дав описание выше. В той же публикации Симпсон также дает обобщение на системы из двух уравнений и отмечает, что метод Ньютона можно использовать для решения задач оптимизации, установив градиент равным нулю.
Артур Кэли в 1879 году в работе «Мнимая задача Ньютона–Фурье» первым заметил трудности обобщения метода Ньютона на комплексные корни многочленов степени выше 2 и комплексные начальные значения. Это открыло путь к изучению теории итераций рациональных функций.
Метод Ньютона — мощный метод, в общем случае сходимость квадратичная: поскольку метод сходится к корню, разница между корнем и приближением возводится в квадрат (количество точных цифр примерно удваивается) на каждом шаге. Однако с этим методом есть некоторые трудности.
Метод Ньютона требует, чтобы производная могла быть вычислена напрямую. Аналитическое выражение для производной может быть нелегко получить или может быть дорогим для оценки. В таких ситуациях может быть целесообразно аппроксимировать производную, используя наклон прямой, проходящей через две близлежащие точки функции. Использование этого приближения приведет к чему-то вроде метода секущих , сходимость которого медленнее, чем у метода Ньютона.
Важно пересмотреть доказательство квадратичной сходимости метода Ньютона перед его реализацией. В частности, следует пересмотреть предположения, сделанные в доказательстве. Ситуации, когда метод не сходится, связаны с тем, что предположения, сделанные в этом доказательстве, не выполняются.
Например, в некоторых случаях, если первая производная плохо себя ведет в окрестности определенного корня, то возможно, что метод Ньютона не будет сходиться независимо от того, где установлена инициализация. В некоторых случаях метод Ньютона можно стабилизировать, используя последовательную сверхрелаксацию , или можно увеличить скорость сходимости, используя тот же метод.
При надежной реализации метода Ньютона принято накладывать ограничения на количество итераций, ограничивать решение интервалом, который, как известно, содержит корень, и комбинировать этот метод с более надежным методом нахождения корня.
Если искомый корень имеет кратность больше единицы, скорость сходимости будет просто линейной (ошибки уменьшаются на постоянный множитель на каждом шаге), если не предпринимаются специальные шаги. Когда есть два или более корней, которые находятся близко друг к другу, то может потребоваться много итераций, прежде чем итерации приблизятся достаточно близко к одному из них, чтобы квадратичная сходимость стала очевидной. Однако, если кратность m корня известна, следующий модифицированный алгоритм сохраняет скорость квадратичной сходимости: [4]
Это эквивалентно использованию последовательной сверхрелаксации . С другой стороны, если кратность корня m неизвестна, можно оценить m после выполнения одной или двух итераций, а затем использовать это значение для увеличения скорости сходимости.
Если кратность корня m конечна, то g ( x ) = ж ( х )/ф ′ ( х ) будет иметь корень в том же месте с кратностью 1. Применение метода Ньютона для нахождения корня g ( x ) восстанавливает квадратичную сходимость во многих случаях, хотя обычно это включает вторую производную f ( x ) . В особенно простом случае, если f ( x ) = x m , то g ( x ) = х/м и метод Ньютона находит корень за одну итерацию с
Предположим, что функция f имеет ноль в точке α , т. е. f ( α ) = 0 , и f дифференцируема в окрестности точки α .
Если f непрерывно дифференцируема и ее производная не равна нулю в точке α , то существует окрестность точки α такая, что для всех начальных значений x 0 в этой окрестности последовательность ( x n ) будет сходиться к α . [5]
Если f непрерывно дифференцируема, ее производная не равна нулю в точке α и имеет вторую производную в точке α , то сходимость квадратичная или быстрее. Если вторая производная не равна 0 в точке α , то сходимость просто квадратичная. Если третья производная существует и ограничена в окрестности точки α , то:
где
Если производная равна 0 в точке α , то сходимость обычно только линейная. В частности, если f дважды непрерывно дифференцируема, f ′ ( α ) = 0 и f ″ ( α ) ≠ 0 , то существует окрестность точки α такая, что для всех начальных значений x 0 в этой окрестности последовательность итераций сходится линейно со скоростью 1/2 . [6] Альтернативно, если f ′ ( α ) = 0 и f ′ ( x ) ≠ 0 для x ≠ α , x в окрестности U точки α , где α является нулем кратности r , и если f ∈ C r ( U ) , то существует окрестность точки α такая, что для всех начальных значений x 0 в этой окрестности последовательность итераций сходится линейно.
Однако даже линейная сходимость не гарантируется в патологических ситуациях.
На практике эти результаты локальны, и окрестность сходимости заранее неизвестна. Но есть также некоторые результаты о глобальной сходимости: например, если задана правая окрестность U + точки α , если f дважды дифференцируема в U + и если f ′ ≠ 0 , f · f ″ > 0 в U + , то для каждого x 0 в U + последовательность x k монотонно убывает к α .
Согласно теореме Тейлора , любая функция f ( x ), имеющая непрерывную вторую производную, может быть представлена в виде разложения около точки, близкой к корню f ( x ) . Предположим, что этот корень равен α . Тогда разложение f ( α ) около x n равно:
где форма Лагранжа остатка разложения в ряд Тейлора равна
где ξ n находится между x n и α .
Поскольку α является корнем, ( 1 ) становится:
Разделив уравнение ( 2 ) на f ′ ( x n ) и переставив, получаем
Помня, что x n + 1 определяется как
можно обнаружить, что
То есть,
Взяв абсолютное значение обеих сторон, получаем
Уравнение ( 6 ) показывает, что порядок сходимости является по крайней мере квадратичным, если выполняются следующие условия:
где M определяется как
Если эти условия выполняются,
Предположим, что f ( x ) — вогнутая функция на интервале, которая строго возрастает . Если она отрицательна в левой конечной точке и положительна в правой конечной точке, теорема о промежуточном значении гарантирует, что где-то в интервале есть нуль ζ функции f . Из геометрических принципов можно видеть, что итерация Ньютона x i , начинающаяся в левой конечной точке, монотонно возрастает и сходится, обязательно к ζ . [7]
Жозеф Фурье представил модификацию метода Ньютона, начинающуюся с правой конечной точки:
Эта последовательность монотонно убывает и сходится. Переходя к пределу в этом определении, можно увидеть, что предел y i также должен быть нулем ζ . [7]
Итак, в случае вогнутой возрастающей функции с нулем инициализация в значительной степени не имеет значения. Итерация Ньютона, начинающаяся где-либо слева от нуля, будет сходиться, как и модифицированная итерация Ньютона Фурье, начинающаяся где-либо справа от нуля. Точность на любом шаге итерации может быть определена непосредственно из разницы между положением итерации слева и положением итерации справа. Если f дважды непрерывно дифференцируема, то можно доказать с помощью теоремы Тейлора , что
показывая, что эта разница в местоположениях квадратично сходится к нулю. [7]
Все вышесказанное может быть распространено на системы уравнений с несколькими переменными, хотя в этом контексте соответствующие концепции монотонности и вогнутости более тонко формулируются. [8] В случае отдельных уравнений с одной переменной указанная выше монотонная сходимость метода Ньютона также может быть обобщена для замены вогнутости условиями положительности или отрицательности на произвольной производной более высокого порядка от f . Однако в этом обобщении итерация Ньютона модифицируется таким образом, чтобы основываться на полиномах Тейлора, а не на касательной линии . В случае вогнутости эта модификация совпадает со стандартным методом Ньютона. [9]
Метод Ньютона — один из многих известных методов вычисления квадратных корней . При наличии положительного числа a задача нахождения числа x такого, что x 2 = a, эквивалентна нахождению корня функции f ( x ) = x 2 − a . Итерация Ньютона, определяемая этой функцией, задается как
Это совпадает с «вавилонским» методом нахождения квадратных корней , который заключается в замене приблизительного корня x n на среднее арифметическое x n и a ⁄ x n . Выполняя эту итерацию, можно вычислить квадратный корень с любой желаемой точностью, используя только основные арифметические операции .
В следующих трех таблицах показаны примеры результата этого вычисления для нахождения квадратного корня из 612, с итерацией, инициализированной при значениях 1, 10 и −20. Каждая строка в столбце " x n " получается путем применения предыдущей формулы к записи над ней, например
Правильные цифры подчеркнуты. Видно, что всего за несколько итераций можно получить решение с точностью до многих знаков после запятой. Первая таблица показывает, что это верно, даже если итерация Ньютона была инициализирована очень неточным предположением 1 .
При вычислении любого ненулевого квадратного корня первая производная f должна быть ненулевой в корне, и что f является гладкой функцией. Таким образом, даже до любого вычисления известно, что любая сходящаяся итерация Ньютона имеет квадратичную скорость сходимости. Это отражено в приведенных выше таблицах тем фактом, что как только итерация Ньютона приближается к корню, количество правильных цифр примерно удваивается с каждой итерацией.
Рассмотрим задачу нахождения положительного числа x с cos x = x 3 . Мы можем перефразировать это как нахождение нуля f ( x ) = cos( x ) − x 3 . Мы имеем f ′ ( x ) = −sin( x ) − 3 x 2 . Поскольку cos( x ) ≤ 1 для всех x и x 3 > 1 для x > 1 , мы знаем, что наше решение лежит между 0 и 1.
Начальное значение 0 приведет к неопределенному результату, что иллюстрирует важность использования начальной точки, близкой к решению. Например, при начальной догадке x 0 = 0,5 последовательность, заданная методом Ньютона, выглядит следующим образом:
Правильные цифры подчеркнуты в приведенном выше примере. В частности, x 6 верно до 12 знаков после запятой. Мы видим, что количество правильных цифр после запятой увеличивается с 2 (для x 3 ) до 5 и 10, что иллюстрирует квадратичную сходимость.
Функция f ( x ) = x 2 имеет корень в 0. [10] Поскольку f непрерывно дифференцируема в своем корне, теория гарантирует, что метод Ньютона, инициализированный достаточно близко к корню, будет сходиться. Однако, поскольку производная f ′ равна нулю в корне, квадратичная сходимость не гарантируется теорией. В этом конкретном примере итерация Ньютона задается как
Из этого видно, что метод Ньютона может быть инициализирован где угодно и сходиться к нулю, но только с линейной скоростью. Если инициализировать с 1, потребуются десятки итераций, прежде чем будет достигнута точность в десять цифр.
Функция f ( x ) = x + x 4/3 также имеет корень в 0, где она непрерывно дифференцируема. Хотя первая производная f ′ не равна нулю в корне, вторая производная f ′′ там не существует, так что квадратичная сходимость не может быть гарантирована. Фактически итерация Ньютона задается как
Из этого можно увидеть, что скорость сходимости сверхлинейна, но субквадратична. Это можно увидеть в следующих таблицах, левая часть которых показывает метод Ньютона, примененный к указанной выше f ( x ) = x + x 4/3 , а правая часть показывает метод Ньютона, примененный к f ( x ) = x + x 2 . Квадратичная сходимость в итерации, показанная справа, иллюстрируется порядками величины в расстоянии от итерации до истинного корня (0,1,2,3,5,10,20,39,...), которые приблизительно удваиваются от строки к строке. В то время как сходимость слева сверхлинейна, порядок величины умножается только примерно на 4/3 от строки к строке (0,1,2,4,5,7,10,13,...).
Скорость сходимости отличается от количества итераций, необходимых для достижения заданной точности. Например, функция f ( x ) = x 20 − 1 имеет корень в 1. Поскольку f ′(1) ≠ 0 и f является гладкой, известно, что любая итерация Ньютона, сходящаяся к 1, будет сходиться квадратично. Однако, если инициализировать ее при 0,5, первые несколько итераций метода Ньютона составляют приблизительно 26214, 24904, 23658, 22476, медленно уменьшаясь, и только 200-я итерация составляет 1,0371. Следующие итерации составляют 1,0103, 1,00093, 1,0000082 и 1,00000000065, иллюстрируя квадратичную сходимость. Это подчеркивает, что квадратичная сходимость итерации Ньютона не означает, что требуется лишь несколько итераций; это применимо только тогда, когда последовательность итераций достаточно близка к корню. [11]
Функция f ( x ) = x (1 + x 2 ) −1/2 имеет корень в 0. Итерация Ньютона задается формулой
Из этого можно увидеть, что для итерации Ньютона возможны три явления. Если инициализировано строго между ±1 , итерация Ньютона будет сходиться (супер-)квадратично к 0; если инициализировано точно в 1 или −1 , итерация Ньютона будет бесконечно колебаться между ±1 ; если инициализировано где-либо еще, итерация Ньютона будет расходиться. [12] Такая же трихотомия имеет место для f ( x ) = arctan x . [10]
В случаях, когда рассматриваемая функция имеет несколько корней, может быть сложно контролировать с помощью выбора инициализации, какой корень (если таковой имеется) идентифицируется методом Ньютона. Например, функция f ( x ) = x ( x 2 − 1)( x − 3)e −( x − 1) 2 /2 имеет корни в точках −1, 0, 1 и 3. [13] При инициализации в точке −1,488 итерация Ньютона сходится к 0; при инициализации в точке −1,487 она расходится к ∞ ; при инициализации в точке −1,486 она сходится к −1; при инициализации в точке −1,485 она расходится к −∞ ; при инициализации в точке −1,4843 она сходится к 3; если инициализировано при −1,484, оно сходится к 1. Этот вид тонкой зависимости от инициализации не является чем-то необычным; он часто изучается в комплексной плоскости в форме фрактала Ньютона .
Рассмотрим задачу нахождения корня f ( x ) = x 1/3 . Итерация Ньютона - это
Если метод Ньютона не инициализирован в точном корне 0, то видно, что последовательность итераций не будет сходиться. Например, даже если инициализирована в достаточно точном предположении 0,001, первые несколько итераций будут −0,002, 0,004, −0,008, 0,016, достигая 1048,58, −2097,15, ... к 20-й итерации. Эта неудача сходимости не противоречит аналитической теории, поскольку в этом случае f не дифференцируема в своем корне.
В приведенном выше примере отсутствие сходимости отражается в неспособности f ( x n ) приблизиться к нулю по мере увеличения n , а также в том факте, что последовательные итерации все дальше и дальше друг от друга. Однако функция f ( x ) = x 1/3 e − x 2 также имеет корень в 0. Итерация Ньютона задается как
В этом примере, где f снова не дифференцируема в корне, любая итерация Ньютона, не начинающаяся точно с корня, будет расходиться, но при этом x n + 1 − x n и f ( x n ) будут сходиться к нулю. [14] Это видно из следующей таблицы, показывающей итерации с инициализацией 1:
Хотя сходимость x n + 1 − x n в этом случае не очень быстрая, ее можно доказать с помощью формулы итерации. Этот пример подчеркивает возможность того, что критерий остановки метода Ньютона, основанный только на малости x n + 1 − x n и f ( x n ), может ложно идентифицировать корень.
Легко найти ситуации, для которых метод Ньютона бесконечно колеблется между двумя различными значениями. Например, для того, чтобы метод Ньютона, примененный к функции f , колебался между 0 и 1, необходимо только, чтобы касательная к f в точке 0 пересекала ось x в точке 1, а касательная к f в точке 1 пересекала ось x в точке 0. [14] Это имеет место, например, если f ( x ) = x 3 − 2 x + 2 . Для этой функции даже имеет место тот случай, когда итерация Ньютона, инициализированная достаточно близко к 0 или 1, будет асимптотически колебаться между этими значениями. Например, метод Ньютона, инициализированный при 0,99, дает итерации 0,99, −0,06317, 1,00628, 0,03651, 1,00196, 0,01162, 1,00020, 0,00120, 1,000002 и т. д. Такое поведение присутствует, несмотря на наличие корня f, приблизительно равного −1,76929.
В некоторых случаях даже невозможно выполнить итерацию Ньютона. Например, если f ( x ) = x 2 − 1 , то итерация Ньютона определяется как
Таким образом, метод Ньютона не может быть инициализирован в 0, поскольку это сделало бы x 1 неопределенным. Геометрически это происходит потому, что касательная к f в 0 горизонтальна (т.е. f ′(0) = 0 ), никогда не пересекая ось x .
Даже если инициализация выбрана таким образом, что итерация Ньютона может начаться, то же самое явление может помешать итерации продолжаться бесконечно.
Если f имеет неполную область определения, метод Ньютона может отправить итерации за пределы области определения, так что продолжить итерацию будет невозможно. [14] Например, функция натурального логарифма f ( x ) = ln x имеет корень в 1 и определена только для положительных x . Итерация Ньютона в этом случае задается как
Так что если итерация инициализируется в e , то следующая итерация будет 0; если итерация инициализируется в значении больше e , то следующая итерация будет отрицательной. В любом случае метод не может быть продолжен.
Можно также использовать метод Ньютона для решения систем из k уравнений, что сводится к нахождению (одновременных) нулей k непрерывно дифференцируемых функций. Это эквивалентно нахождению нулей одной векторной функции. В приведенной выше формулировке скаляры x n заменяются векторами x n и вместо деления функции f ( x n ) на ее производную f ′ ( x n ) вместо этого нужно умножить слева функцию F ( x n ) на обратную ее матрицу Якоби J F ( x n ) размером k × k . [15] [16] [17] Это приводит к выражению
или, решая систему линейных уравнений
для неизвестного x n + 1 − x n . [18]
K - мерный вариант метода Ньютона может быть использован для решения систем уравнений, содержащих более k (нелинейных), если алгоритм использует обобщенную обратную неквадратную матрицу Якоби J + = ( J T J ) −1 J T вместо обратной матрицы J . Если нелинейная система не имеет решения, метод пытается найти решение в нелинейном смысле наименьших квадратов. Для получения дополнительной информации см . Алгоритм Гаусса–Ньютона .
Например, необходимо решить следующую систему уравнений для вектора точек, если задан вектор известных значений [19]
вектор функций и матрица Якоби для итерации k, а также вектор известных значений определены ниже.
Обратите внимание, что можно было бы переписать, чтобы поглотить и, таким образом, исключить из уравнений. Уравнение для решения для каждой итерации:
и
Итерации следует повторять до тех пор, пока не будет найдено значение, достаточно малое для удовлетворения требований приложения.
Если вектор изначально выбран равным , а и выбран равным 1,10−3 , то пример сходится после четырех итераций к значению
В ходе решения были сделаны следующие итерации.
При работе со сложными функциями метод Ньютона может быть непосредственно применен для нахождения их нулей. [20] Каждый ноль имеет область притяжения в комплексной плоскости, множество всех начальных значений, которые заставляют метод сходиться к этому конкретному нулю. Эти множества могут быть отображены, как на показанном изображении. Для многих сложных функций границы областей притяжения являются фракталами .
В некоторых случаях в комплексной плоскости есть области, которые не находятся ни в одной из этих областей притяжения, что означает, что итерации не сходятся. Например, [21] если использовать действительное начальное условие для поиска корня x 2 + 1 , все последующие итерации будут действительными числами, и поэтому итерации не могут сойтись ни к одному из корней, поскольку оба корня недействительны. В этом случае почти все действительные начальные условия приводят к хаотическому поведению , в то время как некоторые начальные условия итерируются либо до бесконечности, либо до повторяющихся циклов любой конечной длины.
Курт МакМаллен показал, что для любого возможного чисто итерационного алгоритма, похожего на метод Ньютона, алгоритм будет расходиться на некоторых открытых областях комплексной плоскости, если его применить к некоторому полиному степени 4 или выше. Однако МакМаллен дал в целом сходящийся алгоритм для полиномов степени 3. [22] Также для любого полинома Хаббард, Шлейхер и Сазерленд дали метод выбора набора начальных точек таким образом, что метод Ньютона обязательно сойдется хотя бы в одной из них. [23]
Другим обобщением является метод Ньютона для нахождения корня функционала F, определенного в банаховом пространстве . В этом случае формулировка имеет вид
где F ′ ( X n ) — производная Фреше, вычисленная в точке X n . Для применимости метода необходимо, чтобы производная Фреше была ограниченно обратима в каждой точке X n . Условие существования и сходимости к корню задается теоремой Ньютона–Канторовича . [24]
В 1950-х годах Джон Нэш разработал версию метода Ньютона для применения к проблеме построения изометрических вложений общих римановых многообразий в евклидово пространство . Проблема потери производных , присутствующая в этом контексте, сделала стандартную итерацию Ньютона неприменимой, поскольку она не могла продолжаться бесконечно (не говоря уже о сходимости). Решение Нэша включало введение сглаживающих операторов в итерацию. Он смог доказать сходимость своего сглаженного метода Ньютона с целью доказательства теоремы о неявной функции для изометрических вложений. В 1960-х годах Юрген Мозер показал, что методы Нэша были достаточно гибкими, чтобы применяться к проблемам за пределами изометрического вложения, особенно в небесной механике . С тех пор ряд математиков, включая Михаила Громова и Ричарда Гамильтона , нашли обобщенные абстрактные версии теории Нэша–Мозера. [25] [26] В формулировке Гамильтона теорема Нэша–Мозера образует обобщение метода Ньютона в банаховом пространстве, которое имеет место в некоторых пространствах Фреше .
Когда якобиан недоступен или его вычисление на каждой итерации слишком затратно, можно использовать квазиньютоновский метод .
В p -адическом анализе стандартным методом, показывающим, что полиномиальное уравнение с одной переменной имеет p -адический корень, является лемма Гензеля , которая использует рекурсию из метода Ньютона на p -адических числах. Из-за более стабильного поведения сложения и умножения в p -адических числах по сравнению с действительными числами (в частности, единичный шар в p -адике является кольцом), сходимость в лемме Гензеля может быть гарантирована при гораздо более простых гипотезах, чем в классическом методе Ньютона на действительной прямой.
Метод Ньютона можно обобщить с помощью q -аналога обычной производной. [27]
Нелинейное уравнение имеет несколько решений в общем случае. Но если начальное значение не подходит, метод Ньютона может не сходиться к желаемому решению или может сходиться к тому же решению, которое было найдено ранее. Когда мы уже нашли N решений , то следующий корень можно найти, применив метод Ньютона к следующему уравнению: [28] [29]
Этот метод применяется для получения нулей функции Бесселя второго рода. [30]
Модифицированный метод Ньютона Хирано представляет собой модификацию, сохраняющую сходимость метода Ньютона и избегающую нестабильности. [31] Он разработан для решения сложных полиномов.
Объединение метода Ньютона с интервальной арифметикой очень полезно в некоторых контекстах. Это обеспечивает критерий остановки, который более надежен, чем обычные (которые являются малым значением функции или малым изменением переменной между последовательными итерациями). Кроме того, это может обнаружить случаи, когда метод Ньютона сходится теоретически, но расходится численно из-за недостаточной точности с плавающей точкой (это обычно имеет место для полиномов большой степени, где очень небольшое изменение переменной может кардинально изменить значение функции; см. полином Уилкинсона ). [32] [33]
Рассмотрим f → C 1 ( X ) , где X — действительный интервал, и предположим, что у нас есть расширение интервала F ′ функции f ′ , то есть F ′ принимает в качестве входных данных интервал Y ⊆ X и выводит интервал F ′ ( Y ) такой, что:
Мы также предполагаем, что 0 ∉ F ′ ( X ) , так что, в частности, f имеет не более одного корня в X . Затем мы определяем интервальный оператор Ньютона следующим образом:
где m ∈ Y . Обратите внимание, что гипотеза о F ′ подразумевает, что N ( Y ) хорошо определено и является интервалом (см. интервальную арифметику для получения более подробной информации об интервальных операциях). Это естественным образом приводит к следующей последовательности:
Теорема о среднем значении гарантирует, что если есть корень f в X k , то он также есть в X k + 1. Более того, гипотеза о F′ гарантирует, что X k + 1 не больше половины размера X k , когда m является средней точкой Y , поэтому эта последовательность сходится к [ x* , x* ] , где x* — корень f в X .
Если F ′ ( X ) строго содержит 0, то использование расширенного интервального деления приводит к объединению двух интервалов для N ( X ) ; таким образом, множественные корни автоматически разделяются и ограничиваются.
Метод Ньютона может быть использован для нахождения минимума или максимума функции f ( x ) . Производная равна нулю в минимуме или максимуме, поэтому локальные минимумы и максимумы могут быть найдены путем применения метода Ньютона к производной. [34] Итерация становится:
Важным приложением является деление Ньютона-Рафсона , которое можно использовать для быстрого нахождения обратной величины числа a , используя только умножение и вычитание, то есть числа x, такого, что 1/х = a . Мы можем перефразировать это как нахождение нуля f ( x ) = 1/х − a . Имеем f ′ ( x ) = − 1/х 2 .
Итерация Ньютона - это
Таким образом, итерация Ньютона требует только двух умножений и одного вычитания.
Этот метод также очень эффективен для вычисления мультипликативной обратной величины степенного ряда .
Многие трансцендентные уравнения можно решить с произвольной точностью, используя метод Ньютона. Например, нахождение функции плотности кумулятивной вероятности , такой как нормальное распределение, для подгонки известной вероятности, как правило, включает интегральные функции без известных средств решения в замкнутой форме. Однако вычисление производных, необходимых для их численного решения методом Ньютона, общеизвестно, что делает возможными численные решения. Например, см. численное решение обратного нормального кумулятивного распределения .
Численная проверка решений нелинейных уравнений была установлена путем многократного использования метода Ньютона и формирования набора кандидатов на решение. [ необходима ссылка ]
Ниже приведен пример возможной реализации метода Ньютона на языке программирования Python (версия 3.x) для нахождения корня функции f
, имеющей производную f_prime
.
Первоначальное предположение будет x 0 = 1 , а функция будет f ( x ) = x 2 − 2, так что f ′ ( x ) = 2 x .
Каждая новая итерация метода Ньютона будет обозначаться как x1
. Мы будем проверять во время вычислений, не станет ли знаменатель ( yprime
) слишком малым (меньше epsilon
), что имело бы место, если бы f ′ ( x n ) ≈ 0 , поскольку в противном случае может быть внесено большое количество ошибок.
определение f ( x ): вернуть x ** 2 - 2 # f(x) = x^2 - 2определение f_prime ( x ):вернуть 2 * x # f'(x) = 2xdef newtons_method ( x0 , f , f_prime , допуск , эпсилон , max_iterations ): """Метод Ньютона Аргументы: x0: Первоначальная догадка f: Функция, корень которой мы пытаемся найти f_prime: Производная функции допуск: Остановитесь, когда итерации изменятся меньше, чем на это значение эпсилон: Не делить на число меньше этого max_iterations: максимальное количество итераций для вычисления """ для _ в диапазоне ( max_iterations ): у = f ( х0 ) yprime = f_prime ( x0 ) если abs ( yprime ) < epsilon : # Отказаться, если знаменатель слишком мал перерыв x1 = x0 - y / yprime # Выполнить вычисления Ньютона если abs ( x1 - x0 ) <= допуск : # Остановиться, когда результат окажется в пределах желаемого допуска return x1 # x1 — это решение в пределах допуска и максимального числа итераций x0 = x1 # Обновите x0, чтобы начать процесс заново return None # Метод Ньютона не сошёлся