Численное решение нелинейных алгебраических уравнений и систем
5.2. Метод Ньютона
Как и выше, необходимо найти решение уравнения f(u) = 0.
Пусть uk есть k приближение решения ( k итерация ). Следующее приближение ищем в виде разложив функцию f(u) в ряд Тейлора с точностью до членов первого порядка:
Пренебрегая членами получим линеаризованное уравнение для определения
:
![\begin{gather*}
f(u_k) + f_u^{\prime}(u_k)\Delta u_k = 0, \\
u_{{k + 1}} - u_k = \Delta u_k = - f_u^{- 1} (u_k)f(u_k ), \\
u_{{k + 1}} = u_k - f_u^{- 1} (u_k)f(u_k), u_0 = a.
\end{gather*}](/sites/default/files/tex_cache/7060ae5151461c974f893c3c9690ff48.png)
Это уже знакомая формула, полученная в результате оптимизации релаксационного варианта метода простой итерации.
Для системы уравнений матрица Якоби будет
![$
{\mathbf{A}} = \left\{{\frac{\partial f_i}{\partial x_j}}\right\} = \left( \begin{array}{ccc}
{\frac{\partial f_1}{\partial u_1}} & \ldots & {\frac{\partial f_1}{\partial u_n}} \\
\ldots & \ldots & \ldots \\
{\frac{\partial f_n}{\partial u_1}} & \ldots & {\frac{\partial f_n}{\partial u_n}} \\
\end{array} \right),](/sites/default/files/tex_cache/68138aa82934c245ccb90b52eb13287a.png)
а метод Ньютона выглядит следующим образом:
![\begin{gather*}
f_1^{k + 1} = f_1^{k} + (\frac{\partial f_1}{\partial u_1})^{k} \Delta u_1^{k} + \ldots + (\frac{\partial f_1}{\partial u_n}) \Delta u_n^{k}, \\
\ldots \\
f_n^{k + 1} = f_n^{k} + (\frac{\partial f_n}{\partial u_1})^{k} \Delta u_1^{k} + \ldots + (\frac{\partial f_n}{\partial u_n})^{k} \Delta u_n^{k},
\end{gather*}](/sites/default/files/tex_cache/7a597776a8d59aa6559492e3fa85f38c.png)
где fi = fi (u1, ..., un). Приходим к СЛАУ вида где
i = 1, ..., n, k = 0, 1, ....
Геометрический смысл метода Ньютона в одномерном случае проиллюстрирован на рис. 5.2. Заменим f(u) в точках uk — каждом приближении к корню — касательными. За следующее приближение по методу Ньютона примем значение u точки пересечения касательной с осью абсцисс. Метод Ньютона называют также методом линеаризации или методом касательных.
Теорема о квадратичной сходимости метода Ньютона [5.2], [5.4]
Сформулируем и докажем теорему для одномерного (скалярного) случая. Аналогичная теорема будет справедлива и для систем нелинейных уравнений.
Теорема. Пусть существуют первые две ограниченные производные f(u) и, кроме того, существует [f'u(u)] - 1 ; причем имеют место оценки (отображение f(u) равномерно невырождено), а начальное приближение выбирается из условия
![C_1^2 C_2 \left| f(u_0)\right| \le q < 1.](/sites/default/files/tex_cache/60d9deb36bc062f83d3d998fcb04cdae.png)
Тогда метод Ньютона сходится с квадратичной скоростью сходимости.
Доказательство.
Разложим f(uk + 1) в ряд Тейлора в окрестности f(uk), ограничившись квадратичными членами разложения:
![f(u_{k + 1}) = f(u_{k}) + f'_{u} (u_{k}) \Delta u_{k} + O(\Delta ^{2} u_{k}).](/sites/default/files/tex_cache/903ed47b41140b16c97ec379c148a923.png)
Здесь введено обозначение Переходя к абсолютной величине и учитывая, что для метода Ньютона
или
получим
![\left|{f(u_{k + 1})}\right| = O(\Delta ^2 u_k) \le C_2 \cdot \Delta ^2 u_k = C_2 \left|{[f^{\prime}_u (u)]^{- 1} f(u_k)}\right|^2 \le C_2 C_1^2 \left|{f(u_k)}\right|^2,](/sites/default/files/tex_cache/199de4516370ff1f8a63c599dada48ac.png)
так как | [f'u(u)]- 1 | < C1.
Введем в рассмотрение невязку как rk = | f(uk) | , получим где
Можно выписать цепочку соотношений и т.д., в результате для невязки на k итерации получается выражение
Неравенства и
являются определением квадратичной скорости сходимости.
Для сходимости итерационного процесса Ньютона достаточно, чтобы было
выполнено условие, следующее из последнего неравенства: Отсюда следуют ограничения на начальное приближение, в частности,
Теорема доказана.
Замечание. Несложно показать, что погрешность, определяемая, как или, в скалярном случае,
убывает квадратично. Для этого разложим f(uk + 1) в окрестности uk в ряд Тейлора до первого члена (или линеаризуем f(uk + 1))
![$ f(u_{k + 1}) \approx f(u_k) + f(u_k)(u_{{k + 1}} - u_k) + \frac{{f^{\prime\prime}}}{2}(u_{k + 1} - u_k)^2 . $](/sites/default/files/tex_cache/4e186ad8b7c9d701366f10c21633c973.png)
Так как в методе Ньютона приближения находятся достаточно близко к корню
уравнения и получим
![$ 0 = f(U) = f(u_k) + f^{\prime}(u_k)(U - u_k) + \frac{f^{\prime\prime}}{2}{\left[{(U - u_k)}\right]}^2 . $](/sites/default/files/tex_cache/5565f04ac04570c5c49c32538a53bd0d.png)
Разделив полученное равенство на f'u(uk), приходим к оценке
![$ U - \left[{u_k - \frac{f(u_k)}{f^{\prime}(u_k)}}\right] = \frac{{f^{\prime\prime}_u (\theta )}}{{2f^{\prime}_u (u_k)}}(U - u_k)^2 $,](/sites/default/files/tex_cache/fc6ec0b1b98e194d094700ba16614bff.png)
![$ \left| U - (u_k - \frac{f (u_k)}{{f^{\prime}}_u (u_k)})\right| \le \left| \frac{\max \left|f^{\prime\prime}_u(\Theta)\right|}{2f^{\prime}_u(u_k)}\right|
\left|U - u_k\right| ^2, u_k \in \Delta , k = 0, 1, \ldots $.](/sites/default/files/tex_cache/c39b5eb18e0ee736940fca1ce3ec43f2.png)
![\varepsilon _{k + 1} = | U - u_{k + 1} |.](/sites/default/files/tex_cache/5c4cbe33485e7021f49fe7a0228832bb.png)
![\varepsilon_{{k + 1}} \le \bar {C}\varepsilon
_k^2,](/sites/default/files/tex_cache/09af32b539fa7b0998122bd934a8f205.png)
![\bar{C} = \frac{{\max\limits_\Delta } {\left|{f^{\prime\prime}(\theta )}\right|}}{2\left|{f^{\prime}(u_k)}\right|},](/sites/default/files/tex_cache/132e38f5ab38514687874aa630cdb051.png)
Итерационные процессы, имеющие третий и четвертый порядок сходимости, представляются формулами
![\begin{gather*}
u_{k + 1} = u_k - \frac{f_k}{f_k^{\prime}} - \frac{f_k^{\prime\prime} \cdot f_k^2}{2(f_k^{\prime})^3}, \\
u_{k + 1} = u_k - \frac{f_k}{f_k^{\prime}} - \frac{f_k^{\prime\prime}f^2_k}{2(f^{\prime})^{3}_k} - \frac{(f^{\prime\prime}_k)^{2}f^{3}_k}{2(f^{\prime})^{5}_k} +
\frac{f_k^{(3)} f^{3}}{6(f^{\prime})^{7}_k}, \quad \mbox{где }\quad f_k = f(u_k).
\end{gather*}](/sites/default/files/tex_cache/6352321dbf955cb3931b8b7754c85a19.png)
Отметим, что итерационные методы высших порядков используются достаточно редко вследствие повышенных требований к гладкости функций и необходимости вычисления ее производных и обратных к ним величин.
Иногда для численного решения нелинейных алгебраических систем уравнений, чтобы не вычислять на каждой итерации обратную матрицу, используют упрощенный метод Ньютона
![{\mathbf{u}}_{{k + 1}} = {\mathbf{u}}_k - \left[{{\mathbf{f}}_{\mathbf{u}}^{- 1} ({\mathbf{u}}_0)}\right]^{- 1}{\mathbf{f}}({\mathbf{u}}_k), \mathbf{u}_0 = \mathbf{a}.](/sites/default/files/tex_cache/d2c9bdd30a3861f18365e2ffe51bf52b.png)
Этот метод оказывается приемлемым, поскольку начальное приближение в методе Ньютона обычно выбирается достаточно близким к корню уравнения.
Методом секущих (или разностным методом Ньютона ) называется итерационный метод, в котором вместо производной вычисляется разностное выражение
![$ f^{\prime}(u_k) \approx \frac{{f(u_k) - f(u_{k - 1})}}{{\tau_k}} $,](/sites/default/files/tex_cache/40475daa41f9b578f076a0bece90a579.png)
![$ u_{{k + 1}} = u_k - \frac{{f(u_k)\tau_k}}{{f(u_k) - f(u_{k - 1})}}, \tau_k = u_k - u_{k - 1} $.](/sites/default/files/tex_cache/b76a5f1f7b3b6a8ab97953d0e2fc6248.png)