Метод Ньютона — Википедия
Метод Ньютона, алгоритм Ньютона (также известный как метод касательных) — это итерационный численный метод нахождения корня (нуля) заданной функции. Метод был впервые предложен английским физиком, математиком и астрономом Исааком Ньютоном (1643—1727). Поиск решения осуществляется путём построения последовательных приближений и основан на принципах простой итерации. Метод обладает квадратичной сходимостью. Модификацией метода является метод хорд и касательных. Также метод Ньютона может быть использован для решения задач оптимизации, в которых требуется определить ноль первой производной либо градиента в случае многомерного пространства.
Описание метода
[править | править код]Вывод
[править | править код]Чтобы численно решить уравнение методом простой итерации, его необходимо привести к эквивалентному уравнению: , где — сжимающее отображение.
Для наилучшей сходимости метода в точке очередного приближения должно выполняться условие . Решение данного уравнения ищут в виде , тогда:
В предположении, что точка приближения «достаточно близка» к корню и что заданная функция непрерывна , окончательная формула для такова:
С учётом этого функция определяется:
При некоторых условиях эта функция в окрестности корня осуществляет сжимающее отображение.
Пусть дана функция вещественного переменного дважды непрерывно дифференцируемая в своей области определения, производная которой нигде не обращается в нуль:
И необходимо доказать, что функция осуществляет сжимающее отображение вблизи корня уравнения .
В силу непрерывной дифференцируемости функции и неравенства нулю её первой производной непрерывна.
Производная равна:
В условиях, наложенных на , она также непрерывна. Пусть — искомый корень уравнения: , следовательно в его окрестности :
Тогда согласно теореме Лагранжа:
В силу того, что в этой же дельта окрестности выполняется:
Таким образом полученная функция в окрестности корня осуществляет сжимающее отображение.■
В этом случае алгоритм нахождения численного решения уравнения сводится к итерационной процедуре вычисления:
По теореме Банаха последовательность приближений стремится к корню уравнения .
![](http://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Newton_iteration.svg/300px-Newton_iteration.svg.png)
Геометрическая интерпретация
[править | править код]Основная идея метода заключается в следующем: задаётся начальное приближение вблизи предположительного корня, после чего строится касательная к графику исследуемой функции в точке приближения, для которой находится пересечение с осью абсцисс. Эта точка берётся в качестве следующего приближения. И так далее, пока не будет достигнута необходимая точность.
Пусть 1) вещественнозначная функция непрерывно дифференцируема на интервале ;
2) существует искомая точка : ;
3) существуют и такие, что
для
и для ;
4) точка такова, что .
Тогда формула итеративного приближения к может быть выведена из геометрического смысла касательной следующим образом:
где — угол наклона касательной прямой к графику в точке .
Следовательно (в уравнении касательной прямой полагаем ) искомое выражение для имеет вид :
Если , то это значение можно использовать в качестве следующего приближения к .
Если , то имеет место «перелёт» (корень лежит рядом с границей ). В этом случае надо (воспользовавшись идеей метода половинного деления) заменять на до тех пор, пока точка «не вернётся» в область поиска .
Замечания. 1) Наличие непрерывной производной даёт возможность строить непрерывно меняющуюся касательную на всей области поиска решения .
2) Случаи граничного (в точке или в точке ) расположения искомого решения рассматриваются аналогичным образом.
3) С геометрической точки зрения равенство означает, что касательная прямая к графику в точке - параллельна оси и при не пересекается с ней в конечной части.
4) Чем больше константа и чем меньше константа из пункта 3 условий, тем для пересечение касательной к графику и оси ближе к точке , то есть тем ближе значение к искомой .
Итерационный процесс начинается с некоторого начального приближения , причём между и искомой точкой не должно быть других нулей функции , то есть «чем ближе к искомому корню , тем лучше». Если предположения о нахождении отсутствуют, методом проб и ошибок можно сузить область возможных значений, применив теорему о промежуточных значениях.
Для предварительно заданных , итерационный процесс завершается если и .
В частности, для матрицы дисплея и могут быть рассчитаны, исходя из масштаба отображения графика , то есть если и попадают в один вертикальный, а и в один горизонтальный ряд.
Алгоритм
[править | править код]- Задается начальное приближение .
- Пока не выполнено условие остановки, в качестве которого следует взять , где выполняет роль абсолютной погрешности (так как метод Ньютона является частным случаем метода простой итерации[1]), вычисляют новое приближение: .
Пример
[править | править код]Иллюстрация применения метода Ньютона к функции с начальным приближением в точке . | |
---|---|
Согласно способу практического определения скорость сходимости может быть оценена как тангенс угла наклона графика сходимости, то есть в данном случае равна двум. |
Рассмотрим задачу о нахождении положительных , для которых . Эта задача может быть представлена как задача нахождения нуля функции . Имеем выражение для производной . Так как для всех и для , очевидно, что решение лежит между 0 и 1. Возьмём в качестве начального приближения значение , тогда:
Подчёркиванием отмечены верные значащие цифры. Видно, что их количество от шага к шагу растёт (приблизительно удваиваясь с каждым шагом): от 1 к 2, от 2 к 5, от 5 к 10, иллюстрируя квадратичную скорость сходимости.
Условия применения
[править | править код]Рассмотрим ряд примеров, указывающих на недостатки метода.
Контрпримеры
[править | править код]- Если начальное приближение недостаточно близко к решению, то метод может не сойтись.
Пусть
Тогда
Возьмём ноль в качестве начального приближения. Первая итерация даст в качестве приближения единицу. В свою очередь, вторая снова даст ноль. Метод зациклится и решение не будет найдено. В общем случае построение последовательности приближений может быть очень запутанным.
![](http://upload.wikimedia.org/wikipedia/ru/thumb/1/16/Newton_ex2.png/350px-Newton_ex2.png)
- Если производная не непрерывна в точке корня, то метод может расходиться в любой окрестности корня.
Рассмотрим функцию:
Тогда и всюду, кроме 0.
В окрестности корня производная меняет знак при приближении к нулю справа или слева. В то время, как для .
Таким образом не ограничено вблизи корня, и метод будет расходиться, хотя функция всюду дифференцируема, её производная не равна нулю в корне, бесконечно дифференцируема везде, кроме как в корне, а её производная ограничена в окрестности корня.
- Если не существует вторая производная в точке корня, то скорость сходимости метода может быть заметно снижена.
Рассмотрим пример:
Тогда и за исключением , где она не определена.
На очередном шаге имеем :
Скорость сходимости полученной последовательности составляет приблизительно 4/3. Это существенно меньше, нежели 2, необходимое для квадратичной сходимости, поэтому в данном случае можно говорить лишь о линейной сходимости, хотя функция всюду непрерывно дифференцируема, производная в корне не равна нулю, и бесконечно дифференцируема везде, кроме как в корне.
- Если производная в точке корня равна нулю, то скорость сходимости не будет квадратичной, а сам метод может преждевременно прекратить поиск, и дать неверное для заданной точности приближение.
Пусть
Тогда и следовательно . Таким образом сходимость метода не квадратичная, а линейная, хотя функция всюду бесконечно дифференцируема.
Ограничения
[править | править код]Пусть задано уравнение , где и надо найти его решение.
Ниже приведена формулировка основной теоремы, которая позволяет дать чёткие условия применимости. Она носит имя советского математика и экономиста Леонида Витальевича Канторовича (1912—1986).
Теорема Канторовича.
Если существуют такие константы , что:
- на , то есть существует и не равна нулю;
- на , то есть ограничена;
- на , и ;
Причём длина рассматриваемого отрезка . Тогда справедливы следующие утверждения:
- на существует корень уравнения ;
- если , то итерационная последовательность сходится к этому корню: ;
- погрешность может быть оценена по формуле .
Из последнего из утверждений теоремы в частности следует квадратичная сходимость метода:
Тогда ограничения на исходную функцию будут выглядеть так:
- функция должна быть ограничена;
- функция должна быть гладкой, дважды дифференцируемой;
- её первая производная равномерно отделена от нуля;
- её вторая производная должна быть равномерно ограничена.
Историческая справка
[править | править код]Метод был описан Исааком Ньютоном в рукописи «Об анализе уравнениями бесконечных рядов» (лат. «De analysi per aequationes numero terminorum infinitas»), адресованной в 1669 году Барроу, и в работе «Метод флюксий и бесконечные ряды» (лат. «De metodis fluxionum et serierum infinitarum») или «Аналитическая геометрия» (лат. «Geometria analytica») в собраниях трудов Ньютона, которая была написана в 1671 году. В своих работах Ньютон вводит такие понятия, как разложение функции в ряд, бесконечно малые и флюксии (производные в нынешнем понимании). Указанные работы были изданы значительно позднее: первая вышла в свет в 1711 году благодаря Уильяму Джонсону, вторая была издана Джоном Кользоном в 1736 году уже после смерти создателя. Однако описание метода существенно отличалось от его нынешнего изложения: Ньютон применял свой метод исключительно к полиномам. Он вычислял не последовательные приближения , а последовательность полиномов и в результате получал приближённое решение .
Этот же метод применён Ньютоном в его трактате "Математические начала" для решения уравнения Кеплера, где Ньютон предложил вполне современную аналитическую форму вычисления, записав последовательность приближений в виде переразлагаемого в каждой новой точке аналитического ряда:
ряд ... сходится настолько быстро, что едва ли когда-нибудь понадобится идти в нём далее второго члена ...
— [2]
Впервые метод был опубликован в трактате «Алгебра» Джона Валлиса в 1685 году, по просьбе которого он был кратко описан самим Ньютоном. В 1690 году Джозеф Рафсон опубликовал упрощённое описание в работе «Общий анализ уравнений» (лат. «Analysis aequationum universalis»). Рафсон рассматривал метод Ньютона как чисто алгебраический и ограничил его применение полиномами, однако при этом он описал метод на основе последовательных приближений вместо более трудной для понимания последовательности полиномов, использованной Ньютоном. Наконец, в 1740 году метод Ньютона был описан Томасом Симпсоном как итеративный метод первого порядка решения нелинейных уравнений с использованием производной в том виде, в котором он излагается здесь. В той же публикации Симпсон обобщил метод на случай системы из двух уравнений и отметил, что метод Ньютона также может быть применён для решения задач оптимизации путём нахождения нуля производной или градиента.
В 1879 году Артур Кэли в работе «Проблема комплексных чисел Ньютона — Фурье» (англ. «The Newton-Fourier imaginary problem») был первым, кто отметил трудности в обобщении метода Ньютона на случай мнимых корней полиномов степени выше второй и комплексных начальных приближений. Эта работа открыла путь к изучению теории фракталов.
Обобщения и модификации
[править | править код]Метод секущих
[править | править код]Родственный метод секущих является «приближённым» методом Ньютона и позволяет не вычислять производную. Значение производной в итерационной формуле заменяется её оценкой по двум предыдущим точкам итераций:
.
Таким образом, основная формула имеет вид
Этот метод схож с методом Ньютона, но имеет немного меньшую скорость сходимости. Порядок сходимости метода равен золотому сечению — 1,618…
Замечания. 1) Для начала итерационного процесса требуются два различных значения и .
2) В отличие от «настоящего метода Ньютона» (метода касательных), требующего хранить только (и в ходе вычислений — временно и ), для метода секущих требуется сохранение , , , .
3) Применяется, если вычисление затруднено (например, требует большого количества машинных ресурсов: времени и/или памяти).
Метод одной касательной
[править | править код]В целях уменьшения числа обращений к значениям производной функции применяют так называемый метод одной касательной.
Формула итераций этого метода имеет вид:
Суть метода заключается в том, чтобы вычислять производную лишь один раз, в точке начального приближения , а затем использовать это значение на каждой последующей итерации:
При таком выборе в точке выполнено равенство:
и если отрезок, на котором предполагается наличие корня и выбрано начальное приближение , достаточно мал, а производная непрерывна, то значение будет не сильно отличаться от и, следовательно, график пройдёт почти горизонтально, пересекая прямую , что в свою очередь обеспечит быструю сходимость последовательности точек приближений к корню.
Этот метод является частным случаем метода простой итерации. Он имеет линейный порядок сходимости.
Метод Ньютона-Фурье
[править | править код]Метод Ньютона-Фурье - это расширение метода Ньютона, выведенное Жозефом Фурье для получения оценок на абсолютную ошибку аппроксимации корня, в то же время обеспечивая квадратичную сходимость с обеих сторон.
Предположим, что f(x) дважды непрерывно дифференцируема на отрезке [a, b] и что f имеет корень на этом интервале. Дополнительно положим, что f′(x), f″(x) ≠ 0 на этом отрезке (например, это верно, если f(a) < 0, f(b) > 0, и f″(x) > 0 на этом отрезке). Это гарантирует наличие единственного корня на этом отрезке, обозначим его α. Эти рассуждения относятся к вогнутой вверх функции. Если она вогнута вниз, то заменим f(x) на −f(x), поскольку они имеют одни и те же корни.
Пусть x0 = b будет правым концом отрезка, на котором мы ищем корень, а z0 = a - левым концом того же отрезка. Если xn найдено, определим
которое выражает обычный метод Ньютона, как описано выше. Затем определим
где знаменатель равен f′(xn), а не f′(zn). Итерации xn будут строго убывающими к корню, а итерации zn - строго возрастающими к корню. Также выполняется следующее соотношение:
- ,
таким образом, расстояние между xn и zn уменьшается квадратичным образом.
Многомерный случай
[править | править код]Обобщим полученный результат на многомерный случай.
Пусть необходимо найти решение системы:
Выбирая некоторое начальное значение , последовательные приближения находят путём решения систем уравнений:
где .
Применительно к задачам оптимизации
[править | править код]Пусть необходимо найти минимум функции многих переменных . Эта задача равносильна задаче нахождения нуля градиента . Применим изложенный выше метод Ньютона:
где — гессиан функции .
В более удобном итеративном виде это выражение выглядит так:
В случае квадратичной функции метод Ньютона находит экстремум за одну итерацию.
Нахождение матрицы Гессе связано с большими вычислительными затратами, и зачастую не представляется возможным. В таких случаях альтернативой могут служить квазиньютоновские методы, в которых приближение матрицы Гессе строится в процессе накопления информации о кривизне функции.
Метод Ньютона — Рафсона
[править | править код]Метод Ньютона — Рафсона является улучшением метода Ньютона нахождения экстремума, описанного выше. Основное отличие заключается в том, что на очередной итерации каким-либо из методов одномерной оптимизации выбирается оптимальный шаг:
где Для оптимизации вычислений применяют следующее улучшение: вместо того, чтобы на каждой итерации заново вычислять гессиан целевой функции, ограничиваются начальным приближением и обновляют его лишь раз в шагов, либо не обновляют вовсе.
Применительно к задачам о наименьших квадратах
[править | править код]На практике часто встречаются задачи, в которых требуется произвести настройку свободных параметров объекта или подогнать математическую модель под реальные данные. В этих случаях появляются задачи о наименьших квадратах:
Эти задачи отличаются особым видом градиента и матрицы Гессе:
где — матрица Якоби вектор-функции , — матрица Гессе для её компоненты .
Тогда очередной шаг определяется из системы:
Метод Гаусса — Ньютона
[править | править код]Метод Гаусса — Ньютона строится на предположении о том, что слагаемое доминирует над . Это требование не соблюдается, если минимальные невязки велики, то есть если норма сравнима с максимальным собственным значением матрицы . В противном случае можно записать:
Таким образом, когда норма близка к нулю, а матрица имеет полный столбцевой ранг, шаг мало отличается от ньютоновского (с учётом ), и метод может достигать квадратичной скорости сходимости, хотя вторые производные и не учитываются. Улучшением метода является алгоритм Левенберга — Марквардта, основанный на эвристических соображениях.
Обобщение на комплексную плоскость
[править | править код]![](http://upload.wikimedia.org/wikipedia/commons/thumb/b/bf/Newtroot_1_0_0_0_0_m1.png/300px-Newtroot_1_0_0_0_0_m1.png)
До сих пор в описании метода использовались функции, осуществляющие отображения в пределах множества вещественных значений. Однако метод может быть применён и для нахождения нуля функции комплексной переменной. При этом процедура остаётся неизменной:
Особый интерес представляет выбор начального приближения . Ввиду того, что функция может иметь несколько нулей, в различных случаях метод может сходиться к различным значениям, и вполне естественно возникает желание выяснить, какие области обеспечат сходимость к тому или иному корню. Этот вопрос заинтересовал Артура Кэли ещё в 1879 году, однако разрешить его смогли лишь в 70-х годах двадцатого столетия с появлением вычислительной техники. Оказалось, что на пересечениях этих областей (их принято называть областями притяжения) образуются так называемые фракталы — бесконечные самоподобные геометрические фигуры.
Ввиду того, что Ньютон применял свой метод исключительно к полиномам, фракталы, образованные в результате такого применения, обрели название фракталов Ньютона или бассейнов Ньютона.
Реализация
[править | править код]Scala
[править | править код]object NewtonMethod { val accuracy = 1e-6 @tailrec def method(x0: Double, f: Double => Double, dfdx: Double => Double, e: Double): Double = { val x1 = x0 - f(x0) / dfdx(x0) if (abs(x1 - x0) < e) x1 else method(x1, f, dfdx, e) } def g(C: Double) = (x: Double) => x*x - C def dgdx(x: Double) = 2*x def sqrt(x: Double) = x match { case 0 => 0 case x if (x < 0) => Double.NaN case x if (x > 0) => method(x/2, g(x), dgdx, accuracy) } }
Python
[править | править код]from math import sin, cos from typing import Callable import unittest def newton(f: Callable[[float], float], f_prime: Callable[[float], float], x0: float, eps: float=1e-7, kmax: int=1e3) -> float: """ solves f(x) = 0 by Newton's method with precision eps :param f: f :param f_prime: f' :param x0: starting point :param eps: precision wanted :return: root of f(x) = 0 """ x, x_prev, i = x0, x0 + 2 * eps, 0 while abs(x - x_prev) >= eps and i < kmax: x, x_prev, i = x - f(x) / f_prime(x), x, i + 1 return x class TestNewton(unittest.TestCase): def test_0(self): def f(x: float) -> float: return x**2 - 20 * sin(x) def f_prime(x: float) -> float: return 2 * x - 20 * cos(x) x0, x_star = 2, 2.7529466338187049383 self.assertAlmostEqual(newton(f, f_prime, x0), x_star) if __name__ == '__main__': unittest.main()
PHP
[править | править код]<?php // PHP 5.4 function newtons_method( $a = -1, $b = 1, $f = function($x) { return pow($x, 4) - 1; }, $derivative_f = function($x) { return 4 * pow($x, 3); }, $eps = 1E-3) { $xa = $a; $xb = $b; $iteration = 0; while (abs($xb) > $eps) { $p1 = $f($xa); $q1 = $derivative_f($xa); $xa -= $p1 / $q1; $xb = $p1; ++$iteration; } return $xa; }
Octave
[править | править код]function res = nt() eps = 1e-7; x0_1 = [-0.5,0.5]; max_iter = 500; xopt = new(@resh, eps, max_iter); xopt endfunction function a = new(f, eps, max_iter) x=-1; p0=1; i=0; while (abs(p0)>=eps) [p1,q1]=f(x); x=x-p1/q1; p0=p1; i=i+1; end i a=x; endfunction function[p,q]= resh(x) % p= -5*x.^5+4*x.^4-12*x.^3+11*x.^2-2*x+1; p=-25*x.^4+16*x.^3-36*x.^2+22*x-2; q=-100*x.^3+48*x.^2-72*x+22; endfunction
Delphi
[править | править код]// вычисляемая функция function fx(x: Double): Double; begin Result := x * x - 17; end; // производная функция от f(x) function dfx(x: Double): Double; begin Result := 2 * x; end; function solve(fx, dfx: TFunc<Double, Double>; x0: Double): Double; const eps = 0.000001; var x1: Double; begin x1 := x0 - fx(x0) / dfx(x0); // первое приближение while (Abs(x1-x0) > eps) do begin // пока не достигнута точность 0.000001 x0 := x1; x1 := x1 - fx(x1) / dfx(x1); // последующие приближения end; Result := x1; end; // Вызов solve(fx, dfx,4));
C++
[править | править код]#include <stdio.h> #include <math.h> #define eps 0.000001 double fx(double x) { return x * x - 17;} // вычисляемая функция double dfx(double x) { return 2 * x;} // производная функции typedef double(*function)(double x); // задание типа function double solve(function fx, function dfx, double x0) { double x1 = x0 - fx(x0) / dfx(x0); // первое приближение while (fabs(x1 - x0) > eps) { // пока не достигнута точность 0.000001 x0 = x1; x1 = x0 - fx(x0) / dfx(x0); // последующие приближения } return x1; } int main () { printf("%f\n", solve(fx, dfx, 4)); // вывод на экран return 0; }
C
[править | править код]typedef double (*function)(double x); double TangentsMethod(function f, function df, double xn, double eps) { double x1 = xn - f(xn)/df(xn); double x0 = xn; while(abs(x0-x1) > eps) { x0 = x1; x1 = x1 - f(x1)/df(x1); } return x1; } //Выбор начального приближения xn = MyFunction(A)*My2Derivative(A) > 0 ? B : A; double MyFunction(double x) { return (pow(x, 5) - x - 0.2); } //Ваша функция double MyDerivative(double x) { return (5*pow(x, 4) - 1); } //Первая производная double My2Derivative(double x) { return (20*pow(x, 3)); } //Вторая производная //Пример вызова функции double x = TangentsMethod(MyFunction, MyDerivative, xn, 0.1)
import Data.List ( iterate' ) main :: IO () main = print $ solve (\ x -> x * x - 17) ( * 2) 4 -- Функция solve универсальна для всех вещественных типов значения которых можно сравнивать. solve = esolve 0.000001 esolve epsilon func deriv x0 = fst . head $ dropWhile pred pairs where pred (xn, xn1) = (abs $ xn - xn1) > epsilon -- Функция pred определяет достигнута ли необходимая точность. next xn = xn - func xn / deriv xn -- Функция next вычисляет новое приближение. iters = iterate' next x0 -- Бесконечный список итераций. pairs = zip iters (tail iters) -- Бесконечный список пар итераций вида: [(x0, x1), (x1, x2) ..].
! Main program REAL*8:: Xbeg, F, D1F, error ! Имена переменных в главной программе и подпрограмме могут отличаться INTEGER Niter, Ncalc ! Xbeg - начальное значение, F - функция, D1F - её производная, error - остаточная ошибка *** ! Niter - заданное число итераций, Ncalc - число выполненных итераций до достижения погрешности CALL NEWTON(Xbeg, Niter, F, D1F, Ncalc, error) *** C====================================================== SUBROUTINE NEWTON(X0, Nmax, Func, D1Func, Nevl, rer) ! Простейший вариант устойчиво работающей программы для нахождения корня без второй производной REAL*8:: X0, X1, XB, q, Func, D1Func, rer, eps ! Итог вычисления будет записан в переменную Х0 INTEGER Nmax, Nevl IF(Nmax*(1000-Nmax).LE.0) Nmax=1000 ! Защита от дурака Nevl=1; XB=X0 DO I=1, Nmax IF(Func(X0).EQ.0.) EXIT IF(D1Func(X0).EQ.0.) THEN Print *, 'Error from NEWTON: D1Func=', D1Func(X0), ' X=', X0, ' I=', I EXIT END IF X1=X0-Func(X0)/D1Func(X0) q=abs(D1Func(X0)); q=abs(1.-q)/q eps=MAX(rer, epsilon(X0)) ! epsilon(X0) - машинная точность; выбирается, если rer=0. IF(abs(X0-X1).LE.q*eps) EXIT X0=X1 END DO IF(abs(Func(X0)).GE.abs(Func(XB))) PAUSE 'Error from NEWTON: Change the X0!' If(I.ne.Nmax+1) Nevl=I If(I.eq.Nmax+1) Nevl=Nmax END SUBROUTINE
Литература
[править | править код]- Акулич И. Л. Математическое программирование в примерах и задачах : Учеб. пособие для студентов эконом. спец. вузов. — М. : Высшая школа, 1986. — 319 с. : ил. — ББК 22.1 А44. — УДК 517.8(G).
- Амосов А. А., Дубинский Ю. А., Копченова Н. П. Вычислительные методы для инженеров : Учеб. пособие. — М. : Высшая школа, 1994. — 544 с. : ил. — ББК 32.97 А62. — УДК 683.1(G). — ISBN 5-06-000625-5.
- Бахвалов Н. С., Жидков Н. П., Кобельков Г. Г. Численные методы. — 8-е изд. — М. : Лаборатория Базовых Знаний, 2000.
- Вавилов С. И. Исаак Ньютон. — М. : Изд. АН СССР, 1945.
- Волков Е. А. Численные методы. — М. : Физматлит, 2003.
- Гилл Ф., Мюррей У., Райт М. Практическая оптимизация. Пер. с англ. — М. : Мир, 1985.
- Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. — М. : Наука, 1970. — С. 575—576.
- Коршунов Ю. М., Коршунов Ю. М. Математические основы кибернетики. — Энергоатомиздат, 1972.
- Максимов Ю. А.,Филлиповская Е. А. Алгоритмы решения задач нелинейного программирования. — М. : МИФИ, 1982.
- Морозов А. Д. Введение в теорию фракталов. — МИФИ, 2002.
См. также
[править | править код]- Метод простой итерации
- Двоичный поиск
- Метод дихотомии
- Метод секущих
- Метод Мюллера
- Метод хорд
- Метод бисекции
- Фрактал
- Численное решение уравнений
- Целочисленный квадратный корень
- Быстрый обратный квадратный корень
Примечания
[править | править код]- ↑ Лукьяненко Д. В. - Численные методы - Лекция 1 . Дата обращения: 11 марта 2024. Архивировано 11 марта 2024 года.
- ↑ Исаак Ньютон. Книга I. О движении тел. Отдел VI. Об определении движения по заданным орбитам // Математические начала натуральной философии / перевод с латинского и комментарии А.Н. Крылова, под редакцией Л.С. Полака. — Москва: URSS, 2017. — С. 156-158. — ISBN 978-5-9710-4231-0.
Ссылки
[править | править код]- «Бассейны Ньютона» на сайте fractalworld.xaoc.ru
- «Исаак Ньютон» на сайте www.scottish-wetlands.org
- «Математические работы Канторовича» на сайте Института математики СО РАН
- Hazewinkel, Michiel, ed. (2001), "Newton method", Encyclopedia of Mathematics, Springer, ISBN 978-1-55608-010-4
- Weisstein, Eric W. Newton's Method (англ.) на сайте Wolfram MathWorld.
- Newton’s method, Citizendium.
- Mathews, J., The Accelerated and Modified Newton Methods, Course notes.
- Wu, X., Roots of Equations, Course notes.