Дискуссионный математический форумМатематический форум

Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 4 часа [ Летнее время ]
MathHelpPlanet.com RSS-лента Математического форума

Часовой пояс: UTC + 4 часа [ Летнее время ]


Численные методы решения нелинейных уравнений

Численные методы решения нелинейных уравнений


Корни нелинейных уравнений


Пусть дано нелинейное уравнение

[math]f(x)=0,\qquad \mathsf{(3.1)}[/math]

где [math]f(x)[/math] — функция, определенная и непрерывная на некотором промежутке. В некоторых случаях на функцию [math]f(x)[/math] могут быть наложены дополнительные ограничения, например, непрерывность первой и второй производных, что специально оговаривается. Функция [math]f(x)[/math] может быть задана в виде алгебраического многочлена или трансцендентной функции (тогда ей соответствует алгебраическое или трансцендентное уравнение).


Требуется найти корни нелинейного уравнения (3.1), т.е. числа [math]x_{\ast1},x_{\ast2},\ldots[/math] которые путем подстановки их в (3.1) превращают уравнение в верное числовое равенство. Числа [math]x_{\ast1},x_{\ast2},\ldots[/math] называются также нулями функции [math]f(x)[/math].


На практике часто бывает выгодно уравнение (3.1) заменить равносильным ему уравнением (уравнения равносильны, если имеют одинаковые корни):


[math]f_1(x)-f_2(x)=0,[/math]
(3.2)

где функции [math]f_1(x),\,f_2(x)[/math] — более простые, чем функция [math]f(x)[/math]. Тогда при задании уравнения в виде (3.1) нулями функции [math]f(x)[/math] являются точки пересечения [math]f(x)[/math] с осью [math]Ox[/math] (рис. 3.1,д), а при задании в виде (3.2) — абсциссы точек пересечения функций [math]f_1(x)[/math] и [math]f_2(x)[/math] (рис. 3.1,б).


Точки пересечения функции с осью абсцисс

Замечания


1. Если [math]f(x)=a_nx^n+a_{n-1}x^{n-1}+\ldots+a_0=P_n(x)[/math] — алгебраический многочлен, то уравнение (3.1) называется также алгебраическим n-й степени:


[math]P_n(x)\equiv a_nx^n+a_{n-1}x^{n-1}+\ldots+a_0=0,[/math]
(3.3)

где [math]a_n,\ldots,a_0[/math] — действительные числа, коэффициенты уравнения.


График сеточной функции

2. На практике встречаются задачи нахождения корней уравнения [math]f(x_i)=0[/math], левая часть которого задана сеточной функцией [math]y_i=f(x_i),~i=1,2,\ldots,N[/math] (рис. 3.2).


Число [math]x_{\ast}[/math] есть корень уравнения (3.1) кратности [math]k[/math], если при [math]x=x_{\ast}[/math] вместе с функцией [math]f(x)[/math] обращаются в нуль ее производные до (k-1)-го порядка включительно, т.е. [math]f(x_{\ast})= f'(x_{\ast})= \ldots= f^{(k-1)}(x_{\ast})=0[/math], а [math]f^{(k)}(x_{\ast})\ne0[/math]. Корень кратности к = 1 называется простым. На рис 3.1,с простыми корнями являются [math]x_{\ast1},x_{\ast2},x_{\ast3}[/math], a корни [math]x_{\ast4},x_{\ast5}[/math] — кратные.


В соответствии с классическим результатом Галуа алгебраическое уравнение (3.1) при [math]n\geqslant5[/math] не имеет решения в замкнутом (формульном) виде. Сеточные уравнения вообще не имеют формульных решений. Поэтому корни алгебраических [math](n>2)[/math], трансцендентных и сеточных уравнений, как правило, определяются приближенно с заданной точностью.


Решение осуществляется в два этапа:


Первый этап. Находятся отрезки [math][a_i,b_i][/math], внутри каждого из которых содержится один простой или кратный корень [math](x_{\ast i}\in[a_i,b_i])[/math] (см. рис. 3.1). Этот этап называется процедурой отделения корней. По сути на нем осуществляется грубое нахождение корней [math]x_{\ast i}[/math].


Второй этап. Грубое значение каждого корня [math]x_{\ast i}[/math] уточняется до заданной точности одним из численных методов, в которых реализуются последовательные приближения. Порядок (скорость) сходимости метода определяется так же, как в методе простых итераций.




Отделение корней уравнения


Для отделения действительных корней полезно определять заранее число корней, а также верхнюю и нижнюю границы их расположения. Для этого используется ряд теорем.


Теорема 3.1 (о числе корней алгебраического уравнения (3.3)). Алгебраическое уравнение (3.3) n-й степени имеет ровно [math]n[/math] корней, действительных или комплексных, при условии, что каждый корень считается столько раз, какова его кратность.


Теорема 3.2 (о свойстве парной сопряженности комплексных корней уравнения (3.3)). Если [math]x_{\ast i}=\alpha+\beta i[/math] — корень алгебраического уравнения (3.3) кратности [math]k[/math], то число [math]\overline{x_{\ast i}}=\alpha-\beta i[/math] также является корнем той же кратности.


Следствие. Алгебраическое уравнение нечетной степени имеет по крайней мере один действительный корень.


Теорема 3.3 (об оценке модулей корней уравнения (3.3)). Пусть


[math]A=\max \bigl\{|a_{n-1}|,\ldots,|a_0|\bigr\},\qquad B=\max \bigl\{|a_n|,|a_{n-1}|,\ldots, |a_1|\bigr\},[/math]

где [math]a_k,~k=\overline{0,n}[/math] — коэффициенты уравнения [math]a_nx^n+a_{n-1}x^{n-1}+ \ldots+ a_{1}x+a_0=0[/math]. Тогда модули всех корней [math]x_{\ast i}~(i=1,2,\ldots,n)[/math] уравнения удовлетворяют неравенству


[math]\frac{1}{1+\dfrac{B}{|a_0|}}<|x_{\ast i}| \leqslant 1+\frac{A}{|a_n|},\quad i=1,2,\ldots,n,[/math]
(3.4)

т.е. корни уравнения расположены в кольце.


Следствие. Числа [math]r=\frac{1}{1+\dfrac{B}{|a_0|}}[/math] и [math]R=1+ \frac{A}{|a_n|}[/math] являются соответственно нижней и верхней границами положительных корней алгебраического уравнения: [math]r<x_{\ast i}^{+}<R[/math]. Аналогично числа [math]-R[/math] и [math]-r[/math] служат нижней и верхней границами отрицательных корней уравнения: [math]-R<x_{\ast i}^{-}<-r[/math].


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


Теорема 3.4 (теорема Лагранжа о верхней границе положительных корней уравнения (3.3)). Пусть [math]a_n>0[/math] и [math]a_i[/math] — первый отрицательный коэффициент в последовательности [math]a_n,a_{n-1},a_{n-2},\ldots,a_1,a_0;~C[/math] — наибольшая из абсолютных величин отрицательных коэффициентов. Тогда за верхнюю границу положительных корней уравнения (3.3) может быть принято число


[math]R=1+\sqrt[n-i]{\frac{C}{a_n}}\,.[/math]
(3.5)

Теорема 3.5 (о нижних и верхних границах положительных и отрицательных корней алгебраического уравнения). Пусть [math]R[/math] — верхняя граница положительных корней уравнения [math]P_n(x)=0[/math],

[math]R_1[/math] — верхняя граница положительных корней уравнения [math]P^1(x)= x^nP_n\! \left(\frac{1}{x}\right)=0[/math],
[math]R_2[/math] — верхняя граница положительных корней уравнения [math]P^2(x)= P_n(-x)=0[/math],
[math]R_3[/math] — верхняя граница положительных корней уравнения [math]P^3(x)= x^nP_n\! \left(-\frac{1}{x}\right)=0[/math].

Тогда положительные корни [math]x_{\ast i}^{+}[/math] и отрицательные корни [math]x_{\ast i}^{-}[/math] уравнения (3.3) удовлетворяют неравенствам


[math]\frac{1}{R_1}\leqslant x_{\ast i}^{+}\leqslant R,\qquad-R_2 \leqslant x_{\ast i}^{-}\leqslant-\frac{1}{R_3}\,.[/math]
(3.6)

Теорема 3.6 (теорема Декарта о количестве действительных корней алгебраических уравнений). Число [math]S_1[/math] положительных корней (с учетом их кратностей) алгебраического уравнения [math]P_n(x)=0[/math] равно числу перемен знаков в последовательности коэффициентов [math]a_n,a_{n-1},\ldots,a_0[/math] (коэффициенты, равные нулю, не учитываются) многочлена [math]P_n(x)[/math] или меньше этого числа на четное число. Число [math]S_2[/math] отрицательных корней (с учетом их кратностей) алгебраического уравнения [math]P_n(x)=0[/math] равно числу перемен знаков в последовательности [math]a_n,a_{n-1},\ldots,a_0[/math] многочлена [math]P_n(-x)[/math] или меньше этого числа на четное число.


Теорема 3.7 (теорема Гюа о необходимом условии действительности всех корней алгебраического уравнения). Если алгебраическое уравнение (3.3) имеет все действительные корни, то квадрат каждого некрайнего коэффициента больше произведения двух его соседних коэффициентов.


Следствие. Если при каком-нибудь [math]k[/math] выполнено неравенство [math]a_k^2 \leqslant a_{k-1}a_{k+1}[/math], то уравнение (3.3) имеет по крайней мере одну пару комплексных корней.


Для отделения корней применяется следующая теорема.


Теорема 3.8. Если функция [math]f(x)[/math], определяющая уравнение [math]f(x)=0[/math], на концах отрезка [math][a_i,b_i][/math] принимает значения разных знаков, т.е. [math]f(a_i)\cdot f(b_i)<0[/math], то на этом отрезке содержится по крайней мере один корень уравнения. Если же [math]f(x)[/math] непрерывна и дифференцируема и ее первая производная сохраняет знак внутри отрезка [math][a_i,b_i][/math] [math]\Bigl(\mathop{\operatorname{sign}}\limits_{x\in[a_i,b_i]} f'(x)=\text{const}\Bigr)[/math], то на [math][a_i,b_i][/math] находится только один корень уравнения.




Способы отделения корней


В вычислительной практике обычно используются следующие способы отделения корней:


1) средствами машинной графики: функция [math]f(x)[/math] представляется на дисплее и приближенно определяются отрезки, которым принадлежат точки [math]x_{\ast i}[/math];

2) средствами математического анализа с помощью исследования функций и построения графиков (см. рис. 3.1,д);

3) формированием простых функций [math]f_1(x)[/math] и [math]f_2(x)[/math] таких, что получается равносильное уравнение в виде (3.2), и дальнейшим построением графиков этих функций (см. рис. 3.1,б).


▼ Примеры 3.1-3.3

Пример 3.1. Определить число положительных и отрицательных корней, а также их границы для уравнения

[math]P_5(x)= x^5+2x^4-5x^3+8x^2-7x-3=0.[/math]

▼ Решение

В данной задаче [math]n=5,~ a_5=1,~ a_4=2,~ a_3=-5,~ a_2=8,~ a_1=-7,~ a_0=-3[/math]. Согласно теореме 3.1 уравнение имеет пять корней. Поскольку [math]n=5[/math], то по следствию из теоремы 3.2 уравнение имеет по крайней мере один действительный корень.


Оценим модули корней по теореме 3.3. Так как


[math]A=\max \bigl\{|2|,|-5|,|8|,|-7|,|-3|\bigr\}=8,\qquad B=\max \bigl\{|1|,|2|,|-5|, |8|,|-7|\bigr\}=8,[/math]

то [math]\frac{1}{1+\frac{8}{|-3|}}<|x_{\ast i}|<1+\frac{8}{|1|}[/math] или [math]\frac{3}{11}<|x_{\ast i}|<9[/math], т.е. все корни лежат внутри данного кольца. По следствию из теоремы 3.3 это означает, что положительные корни удовлетворяют неравенству [math]\frac{3}{11}<x_{\ast i}^{+}<9[/math], а отрицательные — неравенству [math]-9<x_{\ast i}^{-}<-\frac{3}{11}[/math].


Применим теоремы 3.4 и 3.5 для уточнения приведенных результатов. Найдем верхнюю границу положительных корней. Так как [math]a_3=-5[/math] — первый отрицательный коэффициент в последовательности [math]1,2,-5,8,-7,-3[/math], то [math]i=3[/math], а [math]C=\max \bigl\{|-5|,|-7|,|-3|\bigr\}=7[/math] — наибольшая из абсолютных величин отрицательных коэффициентов. Следовательно, [math]R=1+\sqrt[(5-3)]{\frac{7}{1}}= 1+\sqrt{7}\cong3,\!646[/math].


Найдем нижнюю границу положительных корней. Составим уравнение:


[math]\begin{aligned}P^{1}(x)&= x^nP_n\! \left(\frac{1}{x}\right)= x^5P_5\!\left(\frac{1}{x} \right)= x^5\! \left(\frac{1}{x^5}+ \frac{2}{x^4}-\frac{5}{x^3}+\frac{8}{x^2}-\frac{7}{x}-3\right)=\\ &=-3x^5-7x^4+8x^3-5x^2+2x+1=0.\end{aligned}[/math]

или [math]3x^5+7x^4-8x^3+5x^2-2x-1=0[/math] (старший коэффициент должен быть положительным). Для этого уравнения [math]i=3,~ C=\max \bigl\{|-8|,|-2|,|-1|\bigr\}=8[/math], поэтому [math]R_1=1+\sqrt[(5-3)]{\frac{8}{3}}=1+\sqrt{\frac{8}{3}}\cong2,\!632[/math]. Отсюда [math]\frac{1}{R_1}=0,\!38 \leqslant x_{\ast i}^{+}\leqslant R=3,\!646[/math].


Уточним границы отрицательных корней. Составим уравнение:


[math]P^2(x)=P_5(-x)=[/math] или [math]x^5-2x^4-5x^3-8x^2-7x+3=0[/math].

Для этого уравнения [math]i=4,~ C=\max\bigl\{|-2|,|-5|,|-8|,|-7|\bigr\}=8[/math], поэтому [math]R_2=1+ \sqrt[5-4]{\frac{8}{1}}=9[/math]. Составим уравнение


[math]\begin{aligned}P^3(x)&= x^nP_n\! \left(-\frac{1}{x}\right)= x^5P_5\! \left(-\frac{1}{x}\right)= x^5\! \left(-\frac{1}{x^5}+\frac{2}{x^4}+\frac{5}{x^3}+\frac{8}{x^2}+\frac{7}{x}-3\right)=\\ &=-3x^5+7x^4+8x^3+2x-1=0.\end{aligned}[/math]

или [math]3x^5-7x^4-8x^3-5x^2-2x+1=0[/math]. Для этого уравнения [math]i=4,~ C=\max \bigl\{|-7|,|-8|,|-5|,|-2|\bigr\}=8[/math], поэтому [math]R_3=1+\sqrt[5-4]{\frac{8}{3}}=1+ \frac{8}{3}\cong3,\!666[/math]. Отсюда находим: [math]-R_2=-9 \leqslant x_{\ast i}^{-}\leqslant-\frac{1}{R_3}=-0,\!272[/math]. Заметим, что данный результат совпадает с полученным ранее.


Исследуем структуру корней уравнения. Так как квадрат каждого некрайнего коэффициента больше произведения двух его соседних коэффициентов, то по теореме 3.7 необходимое условие действительности всех корней уравнения выполняется.


На основе теоремы 3.6 определим число положительных и отрицательных корней. Выписываем коэффициенты многочлена [math]P_n(x)=P_5(x)\colon\, 1,\,2,-5,\,8,-7,-3[/math]. Так как число перемен знака [math]S_1=3[/math], то число положительных корней равно трем или меньше на четное число, т.е. равно 1. Далее выписываем коэффициенты многочлена [math]P_5(-x)\colon\, -1,\,2,\,5,\,8,\,7,-3[/math]. Так как число перемен знаков [math]S_2=2[/math], то число отрицательных корней равно двум или меньше на четное число, т.е. их вообще нет.


Пример 3.2. Отделить корни кубического уравнения [math]x^3-x+1=0[/math].


▼ Решение
Точка пересечения кубической параболы и прямой

Согласно теореме 3.1 уравнение имеет три корня, среди которых по крайней мере один действительный (следствие из теоремы 3.2, поскольку это уравнение нечетной степени).


Оценим модули корней уравнения по теореме 3.3. Так как


[math]A=\max \bigl\{|0|,|-1|,|1|\bigr\}=1,\quad B=\max \bigl\{|1|,|0|,|-1|\bigr\}=1[/math], то [math]\frac{1}{1+\dfrac{1}{|1|}}<|x_{\ast i}|<1+\frac{1}{|1|}[/math] или [math]\frac{1}{2}<|x_{\ast i}|<2[/math].

Отсюда [math]\frac{1}{2}<x_{\ast i}^{+}<2[/math] и [math]-2<x_{\ast i}^{+}<-\frac{1}{2}[/math].


Определим число положительных и отрицательных корней. Выписываем коэффициенты многочлена [math]P_3(x)\colon\, 1,\,0,-1,\,1[/math]. Так как число перемен знака [math]S_1=2[/math] (нулевой коэффициент не учитывается), то число положительных корней равно двум или меньше на четное число, т.е. они отсутствуют. Далее выписываем коэффициенты многочлена [math]P_3(-x)=-x^3+x+1\colon\, -1,\,0,\,1,\,1[/math]. Так как число перемен знака [math]S_2=1[/math] (нулевой коэффициент не учитывается), то число отрицательных корней равно единице.


Отделим корни третьим способом. Для этого преобразуем уравнение к равносильному виду (3.2): [math]x^3=x-1[/math] и найдем точки пересечения фафиков [math]y=x^3[/math] и [math]y=x-1[/math] (рис. 3.3).


Очевидно, корень уравнения [math]x_{\ast}\in[-2;-1][/math].


Пример 3.3. Отделить корни уравнения третьего порядка [math]x^3-x^2-9x+9=0[/math].


▼ Решение
Точки пересечения кубической и квадратичной парабол

Согласно теореме 3.1 уравнение имеет три корня, среди которых по крайней мере один действительный (по следствию из теоремы 3.2). Оценим модули корней уравнения по теореме 3.3.


Так как [math]A=\max \bigl\{|-1|,|-9|,|9|\bigr\}=9,~ B=\max \bigl\{|1|,|-1|,|-9|\bigr\}=9[/math], то


[math]\frac{1}{1+\frac{9}{|9|}}<|x_{\ast i}|<1+\frac{9}{|1|}[/math] или [math]\frac{1}{2}<|x_{\ast i}|<10[/math]. Отсюда [math]\frac{1}{2}<x_{\ast i}^{+}<10[/math] и [math]-10<x_{\ast i}^{-}<-\frac{1}{2}\,.[/math]

Определим число положительных и отрицательных корней. Выписываем коэффициенты многочлена [math]P_3(x)\colon\,1,-1,-9,\,9[/math]. Так как число перемен знака [math]S_1=2[/math], то уравнение имеет два положительных корня или ни одного. Далее выписываем коэффициенты многочлена [math]P_3(-x)=-x^3-x^2+9x+9\colon\,-1,-1,\,9,\,9[/math]. Так как число перемен знака [math]S_2=1[/math], то имеется один отрицательный корень.


Отделим корни третьим способом. С этой целью преобразуем уравнение к равносильному виду: [math]x^3=x^2+9x-9[/math]. Найдем абсциссы точек пересечения фафиков [math]y=x^3[/math] и [math]y=x^2+9x-9[/math] (см. рис. 3.4 указаны два из трех полученных промежутков).


Результат отделения корней — три промежутка [math][0,5; 2],\,[2; 4],\,[-4;-2][/math]. Заметим, что отрезки могуг быть сужены, например, вместо отрезка [math][2,4][/math] можно принять [math][2,\!5; 4][/math].




Процедура уточнения положения корня функции

Метод половинного деления


Пусть дано уравнение [math]f(x)=0[/math] и отделен простой корень [math]x_{\ast}[/math], т.е. найден такой отрезок [math][a_0,b_0][/math], что [math]x_{\ast}\in[a_0,b_0][/math] и на концах отрезка функция имеет значения, противоположные по знаку [math](f(a_0)\cdot f(b_0)<0)[/math]. Отрезок [math][a_0,b_0][/math] называется начальным интервалом неопределенности, потому что известно, что корень ему принадлежит, но его местоположение с требуемой точностью не определено.


Процедура уточнения положения корня заключается в построении последовательности вложенных друг в друга отрезков, каждый из которых содержит корень уравнения. Для этого находится середина текущего интервала неопределенности [math]c_k=\frac{a_k+b_k}{2},~ k=0,1,2,\ldots[/math], и в качестве следующего интервала неопределенности из двух возможных выбирается тот, на концах которого функция [math]f(x)[/math] имеет разные знаки (рис. 3.5).


Процесс завершается, когда длина текущего интервала неопределенности становится меньше заданной величины [math]\varepsilon[/math], задающей точность нахождения корня. В качестве приближенного значения корня берется середина последнего интервала неопределенности.




Алгоритм метода половинного деления


1. Найти начальный интервал неопределенности [math]L_0=[a_0,b_0][/math] одним из методов отделения корней, задать малое положительное число [math]\varepsilon[/math]. Положить [math]k=0[/math].


2. Найти середину текущего интервала неопределенности: [math]c_k=\frac{a_k+b_k}{2}[/math].


3. Если [math]f(a_k)\cdot f(c_k)<0[/math], то положить [math]a_{k+1}=a_k,~ b_{k+1}= c_k[/math], а если [math]f(c_k)\cdot f(b_k)<0[/math], то принять [math]a_{k+1}=c_k,~ b_{k+1}= b_k[/math]. В результате находится текущий интервал неопределенности [math]L_{k+1}= [a_{k+1},b_{k+1}][/math].


4. Если [math]b_{k+1}-a_{k+1}\leqslant \varepsilon[/math], то процесс завершить: [math]x_{\ast}\in L_{k+1}= [a_{k+1},b_{k+1}][/math]. Приближенное значение корня можно найти по формуле [math]x_{\ast}\cong \frac{a_{k+1}+b_{k+1}}{2}[/math].


Если [math]b_{k+1}-a_{k+1}>\varepsilon[/math], положить [math]k=k+1[/math] и перейти к п.2.


Замечания


1. Метод имеет линейную, но безусловную сходимость, и его погрешность за каждую итерацию уменьшается в два раза:


[math]|b_1-a_1|=\frac{|b_0-a_0|}{2};\quad |b_2-a_2|= \frac{|b_1-a_1|}{2}= \frac{|b_0-a_0|}{2^2},\quad \ldots,\quad |b_k-a_k|= |b_0-a_0|\cdot2^{-k}.[/math]

Из последнего соотношения можно оценить число итераций [math]k[/math] для достижения заданной точности [math]\varepsilon\colon[/math]


[math]|b_0-a_0|\cdot2^{-k} \leqslant \varepsilon;\qquad k \geqslant \log_{2}\frac{|b_0-a_0|}{\varepsilon}\,.[/math]

Отсюда видно, что, например, для достижения точности [math]\varepsilon\approx10^{-3}[/math] при [math](b_0-a_0)\cong1[/math] необходимо выполнить примерно десять итераций.


2. К достоинствам метода следует отнести то, что он позволяет найти простой корень уравнения [math]x_{\ast}\in[a_0,b_0][/math] любых непрерывных функций [math]f(x)[/math] при любых значениях [math]a_0,\,b_0[/math] таких, что [math]f(a_0)\cdot f(b_0)<0[/math]. Недостатки метода — он не обобщается на системы нелинейных уравнений и не может использоваться для нахождения корней четной кратности.


▼ Примеры 3.4-3.6

Пример 3.4. Найти корень уравнения [math]x^3-x+1=0[/math] методом половинного деления с точностью [math]\varepsilon_1=0,\!01[/math] и [math]\varepsilon_2=0,\!0005[/math].


▼ Решение

В примере 3.2 корень уравнения был отделен: [math]x_{\ast}\in[-2;-1][/math], поэтому [math]a_0=-2,~ b_0=-1[/math].


Очевидно, функция непрерывна на отрезке [math][-2;-1][/math], имеет единственный простой корень (см. рис. 3.3). На концах отрезка функция имеет значения [math]f(-2)=-5,~ f(-1)=1[/math], противоположные по знаку. Результаты расчетов приведены в табл. 3.1.


[math]\begin{array}{|c|c|c|c|c|c|c|c|}\multicolumn{8}{r}{\mathit{Table~3.1}}\\\hline \begin{matrix}{}\\[-2pt]{}\end{matrix} k& f(a_k)& a_k& b_k& f(b_k)& c_k=\dfrac{a_k+b_k}{2}& f(c_k)& b_k-a_k\\\hline 0& -5& -2& -1& 1& -1,\!5& -0,\!875& 1\\\hline 1& -0,\!875& -1,\!5& -1& 1& -1,\!25& 0,\!2965& 0,\!5\\\hline 2& -0,\!875& -1,\!5& -1,\!25& 0,\!2965& -1,\!375& -0,\!224& 0,\!25\\\hline 3& -0,\!224& -1,\!375& -1,\!25& 0,\!2965& -1,\!3125& 0,\!05& 0,\!125\\\hline 4& -0,\!224& -1,\!375& -1,\!3125& 0,\!05& -1,\!34375& -0,\!08& 0,\!0625\\\hline 5& -0,\!08& -1,\!34375& -1,\!3125& 0,\!05& -1,\!3282& -0,\!015& 0,\!03125\\\hline 6& -0,\!015& -1,\!3282& -1,\!3125& 0,\!05& -1,\!3204& 0,\!018& 0,\!0156\\\hline 7& -0,\!015& -1,\!3282& -1,\!3204& 0,\!018& -1,\!3243& 0,\!0018& 0,\!00781\\\hline 8& -0,\!015& -1,\!3282& -1,\!3243& 0,\!0018& -1,\!3263& -0,\!007& 0,\!0039\\\hline 9& -0,\!007& -1,\!3263& -1,\!3243& 0,\!0018& -1,\!3253& -0,\!0025& 0,\!002\\\hline 10& -0,\!0025& -1,\!3253& -1,\!3243& 0,\!0018& -1,\!3248& -0,\!0003& 0,\!001\\\hline 11& -0,\!0003& -1,\!3248& -1,\!3243& 0,\!0018& -& -& 0,\!0005\\\hline \end{array}[/math]

Если [math]\varepsilon_1=0,\!01[/math], корень [math]x_{\ast}\in[-1,\!3282;-1,\!3204][/math], а если [math]\varepsilon_=0,\!0005[/math] — корень [math]x_{\ast}\in[-1,\!3248;-1,\!3243][/math] или [math]x_{\ast}\cong \frac{-1,\!3282-1,\!3204}{2}=[/math] при [math]\varepsilon_1=0,\!01[/math] и [math]x_{\ast}\cong \frac{-1,\!3248-1,\!3243}{2}=-1,\!3245[/math] при [math]\varepsilon_2=0,\!0005[/math].


Пример 3.5. Найти корень уравнения [math]x^3-x^2-9x+9=0[/math] методом половинного деления с точностью [math]\varepsilon=0,\!001[/math].


▼ Решение

В примере 3.3 были отделены корни уравнения. Уточним корень, лежащий на отрезке [math][2,\!5;4][/math]. Результаты расчетов поместим в табл. 3.2.


[math]\begin{array}{|c|c|c|c|c|c|c|c|}\multicolumn{8}{r}{\mathit{Table~3.2}}\\\hline \begin{matrix}{}\\[-2pt]{}\end{matrix} k& f(a_k)& a_k& b_k& f(b_k)& c_k=\dfrac{a_k+b_k}{2}& f(c_k)& b_k-a_k\\\hline 0& -4,\!125& 2,\!5& 4& 21& 3,\!25& 3,\!5156& 1,\!5\\\hline 1& -4,\!125& 2,\!5& 3,\!25& 3,\!5156& 2,\!875& -1,\!3769& 0,\!75\\\hline 2& -1,\!3769& 2,\!875& 3,\!25& 3,\!5156& 3,\!0625& 0,\!78149& 0,\!375\\\hline 3& -1,\!3769& 2,\!875& 3,\!0625& 0,\!7815& 2,\!96875& -0,\!3672& 0,\!1875\\\hline 4& -0,\!3672& 2,\!9687& 3,\!0625& 0,\!7815& 3,\!01562& 0,\!18945& 0,\!09375\\\hline 5& -0,\!3672& 2,\!9687& 3,\!0156& 0,\!1894& 2,\!99218& -0,\!0933& 0,\!04687\\\hline 6& -0,\!0933& 2,\!9921& 3,\!0156& 0,\!1894& 3,\!0039& 0,\!0469& 0,\!02344\\\hline 7& -0,\!0933& 2,\!9921& 3,\!0039& 0,\!0469& 2,\!99804& -0,\!02349& 0,\!01172\\\hline 8& -0,\!02349& 2,\!99804& 3,\!0039& 0,\!0469& 3,\!00097& 0,\!011647& 0,\!00586\\\hline \end{array}[/math]

В результате найден интервал [math][2,\!99804;3,\!0039][/math] и приближенное значение корня [math]x_{\ast}\cong3,\!00097[/math].


Пример 3.6. Отделить корни трансцендентного уравнения [math]x^2-e^{-x}=0[/math] и найти один из корней с точностью [math]\varepsilon=0,\!01[/math].


▼ Решение

1. Можно отделить корни уравнения, преобразовав его к равносильному виду [math]x^2=e^{-x}[/math] и определив абсциссу точек пересечения графиков функций [math]y=f_1(x)=x^2[/math] и [math]y=f_2(x)=e^{-x}\colon\, x_{\ast}\in[0,\!5;1][/math]. При этом [math]f(0,\!5)\cdot f(1)<0[/math].


2. Уточним корень. Результаты расчетов приведем в табл. 3.3.


[math]\begin{array}{|c|c|c|c|c|c|c|c|}\multicolumn{8}{r}{\mathit{Table~3.3}}\\\hline \begin{matrix}{}\\[-2pt]{}\end{matrix} k& f(a_k)& a_k& b_k& f(b_k)& c_k=\dfrac{a_k+b_k}{2}& f(c_k)& b_k-a_k\\\hline 0& -0,\!3565& 0,\!5& 1& 0,\!6321& 0,\!75& 0,\!09013& 0,\!5\\\hline 1& -0,\!3565& 0,\!5& 0,\!75& 0,\!09013& 0,\!625& -0,\!1446& 0,\!251\\\hline 2& -0,\!1446& 0,\!625& 0,\!75& 0,\!09013& 0,\!6875& -0,\!0301& 0,\!125\\\hline 3& -0,\!0301& 0,\!6875& 0,\!75& 0,\!09013& 0,\!7187& 0,\!0292& 0,\!0625\\\hline 4& -0,\!0301& 0,\!6875& 0,\!7187& 0,\!0292& 0,\!7031& -0,\!00069& 0,\!0312\\\hline 5& -0,\!00069& 0,\!7031& 0,\!7187& 0,\!0292& 0,\!7109& 0,\!0142& 0,\!0156\\\hline 6& -0,\!00069& 0,\!7031& 0,\!7109& 0,\!0142& 0,\!707& 0,\!0067& 0,\!0078\\\hline \end{array}[/math]

Вычисления показывают, что [math]b_6-a_6=0,\!7109-0,\!7031=0,\!0078< \varepsilon= 0,\!01[/math].

Поэтому [math]x_{\ast}\cong \frac{0,\!7109+0,\!7031}{2}= c_6=0,\!707[/math].




Геометрическая интерпретация метода хорд

Метод хорд


Этот метод при тех же предположениях обеспечивает более быстрое нахождение корня, чем метод половинного деления. Для этого отрезок [math][a,b][/math] делится не пополам, а в отношении [math]|f(a)|\,\colon|f(b)|[/math].


Геометрически метод хорд эквивалентен замене кривой [math]y=f(x)[/math] хордой, проходящей через точки [math](a,f(a))[/math] и [math](b,f(b))[/math] (рис. 3.6).


Уравнение хорды [math]AB[/math] имеет вид [math]\frac{x-a}{b-a}= \frac{y-f(a)}{f(b)-f(a)}[/math]. Полагая [math]x=x^{(1)}[/math] и [math]y=0[/math], получаем


[math]x^{(1)}= a-\frac{f(a)}{f(b)-f(a)}\cdot(b-a).[/math]

Предположим, что вторая производная [math]f''(x)[/math] сохраняет постоянный знак, и рассмотрим два случая: [math]f(a)>0,~ f''(a)>0[/math] (рис. 3.7,д) и [math]f(a)<0,~ f''(x)>0[/math] (рис. 3.7,б). Случай [math]f''(x)<0[/math] сводится к рассматриваемому, если уравнение записать в форме: [math]-f(x)=0[/math]. Первому случаю (см. рис. 3.7,д) соответствует формула (3.7), а второму случаю (3.8) (см. рис. 3.7,б):


[math]\begin{aligned}&x^{(0)}=b,\\ &x^{(k+1)}=x^{(k)}-\frac{f(x^{(k)})}{f(x^{(k)})-f(a)} \bigl(x^{(k)}-a\bigr),\quad k=0,1,2,\ldots\end{aligned}[/math]
(3.7)

[math]\begin{aligned}&x^{(0)}=a,\\ &x^{(k+1)}=x^{(k)}-\frac{f(x^{(k)})}{f(b)-f(x^{(k)})}\bigl(b-x^{(k)}\bigr),\quad k=0,1,2,\ldots \end{aligned}[/math]
(3.8)

В первом случае остается неподвижным конец [math]a[/math], а во втором случае конец [math]b[/math].


Метод хорд

Замечание. Для выявления неподвижного конца используется условие [math]f''(x)\cdot f(t)>0[/math], где [math]t=a[/math] или [math]t=b[/math]. Если неподвижен конец [math]a[/math], применяется формула (3.7), а если конец [math]b[/math], — формула (3.8).


Пример 3.7. Найти корень уравнения [math]x^3-x+1=0[/math] методом хорд с точностью [math]\varepsilon=0,\!001[/math].


▼ Решение

Рассмотрим задачу нахождения корня на отрезке [math][-2;-1][/math] (см. пример 3.2). Так как [math]f(a)=f(-2)=-5,[/math] [math]f(b)=f(-1)=-1[/math], a [math]f''(x)=3x^2-1>0[/math] на отрезке [math][-2;-1][/math], то [math]f''(x)\cdot f(b)>0[/math] и, следовательно, имеем второй случай (см. рис. 3.7,б).


Положим [math]x^{(0)}=a=-2,~k=0[/math]. Тогда по формуле (3.8) получаем


[math]x^{(1)}= x^{(0)}-\frac{f(x^{(0)})}{f(b)-f(x^{(0)})}\bigl(b-x^{(0)}\bigr)=-2-\frac{-5}{1-(-5)}\cdot(-1-(-2))=-1,\!1666.[/math]

Так как [math]\Delta_1=|x^{(1)}-x^{(0)}|=0,\!8334>\varepsilon[/math], то положим [math]k=1[/math] и продолжим процесс:


[math]x^{(2)}= x^{(1)}-\frac{f(x^{(1)})}{f(b)-f(x^{(1)})}\bigl(b-x^{(1)}\bigr)=-1,\!1666-\frac{-0,\!5786}{1-0,\!5786}\cdot \bigl(-1-(-1,\!1666)\bigr)=-1,\!3953.[/math]

Так как [math]\Delta_2=|x^{(2)}-x^{(1)}|=0,\!2287>\varepsilon[/math], то положим [math]k=2[/math] и продолжим процесс:


[math]x^{(3)}= x^{(2)}-\frac{f(x^{(2)})}{f(b)-f(x^{(2)})}\bigl(b-x^{(2)}\bigr)=-1,\!3953-\frac{-0,\!3214}{1+0,\!3214}\cdot \bigl(-1-(-1,\!3953)\bigr)=-1,\!2991.[/math]

Поскольку [math]\Delta_3=|x^{(3)}-x^{(2)}|=0,\!0962>\varepsilon[/math], положим [math]k=3\colon[/math]


[math]x^{(4)}= x^{(3)}-\frac{f(x^{(3)})}{f(b)-f(x^{(3)})}\bigl(b-x^{(3)}\bigr)=-1,\!2991-\frac{-0,\!1064}{1+0,\!1064}\cdot \bigl(-1-(-1,\!2991)\bigr)=-1,\!3347.[/math]

Так как [math]\Delta_4=|x^{(4)}-x^{(3)}|=0,\!0356>\varepsilon[/math], положим [math]k=4\colon[/math]


[math]x^{(5)}= x^{(4)}-\frac{f(x^{(4)})}{f(b)-f(x^{(4)})}\bigl(b-x^{(4)}\bigr)=-1,\!3347-\frac{-0,\!043}{1+0,\!043}\cdot \bigl(-1-(-1,\!3347)\bigr)=-1,\!3209.[/math]

Поскольку [math]\Delta_5=|x^{(5)}-x^{(4)}|=0,\!0138>\varepsilon[/math], положим [math]k=5\colon[/math]


[math]x^{(6)}= x^{(5)}-\frac{f(x^{(5)})}{f(b)-f(x^{(5)})}\bigl(b-x^{(5)}\bigr)=-1,\!3209-\frac{-0,\!0162}{1+0,\!0162}\cdot \bigl(-1-(-1,\!3209)\bigr)=-1,\!3261.[/math]

Так как [math]\Delta_6=|x^{(6)}-x^{(5)}|=0,\!0052>\varepsilon[/math], положим [math]k=6\colon[/math]


[math]x^{(7)}= x^{(6)}-\frac{f(x^{(6)})}{f(b)-f(x^{(6)})}\bigl(b-x^{(6)}\bigr)=-1,\!3261-\frac{-0,\!0059}{1+0,\!0059}\cdot \bigl(-1-(-1,\!3261)\bigr)=-1,\!3241.[/math]

Поскольку [math]\Delta_7=|x^{(7)}-x^{(6)}|=0,\!0020>\varepsilon[/math], положим [math]k=7\colon[/math]


[math]x^{(8)}= x^{(7)}-\frac{f(x^{(7)})}{f(b)-f(x^{(7)})}\bigl(b-x^{(7)}\bigr)=-1,\!3241-\frac{-0,\!00217}{1+0,\!00217}\cdot \bigl(-1-(-1,\!3241)\bigr)=-1,\!3248.[/math]

Так как [math]\Delta_8=|x^{(8)}-x^{(7)}|=0,\!0007<\varepsilon=0,\!001[/math], то корень уравнения [math]x_{\ast}\cong-1,\!3248[/math]. Из анализа поведения [math]\Delta_k[/math] следует, что сходимость метода хорд линейная, однако более быстрая, чем сходимость метода половинного деления.




Абсцисса точки пересечения прямой и кривой

Метод простых итераций


Пусть известно, что корень [math]x_{\ast}[/math] уравнения [math]f(x)=0[/math] лежит на отрезке [math]G=\{a\leqslant x\leqslant b\}[/math].


Методика решения задачи


1. Уравнение [math]f(x)=0[/math] равносильным преобразованием привести к виду [math]x=\varphi(x)[/math]. Это преобразование может быть осуществлено различными путями, но для сходимости нужно обеспечить выполнение условия [math]|\varphi'(x)|\leqslant\chi<1[/math] ([math]\chi[/math] — некоторая константа). При этом задача сводится к нахождению абсциссы точки пересечения прямой [math]y=x[/math] и кривой [math]y=\varphi(x)[/math] (рис. 3.8).


2. Задать начальное приближение [math]x^{(0)}\in[a,b][/math] и малое положительное число [math]\varepsilon[/math]. Положить [math]k=0[/math].


3. Вычислить следующее приближение:


[math]x^{(k+1)}= \varphi(x^{(k)}).[/math]
(3.9)

4. Если [math]|x^{(k+1)}-x^{(k)}|\leqslant\varepsilon[/math], итерации завершаются и [math]x_{\ast}\cong x^{(k+1)}[/math]. Если [math]|x^{(k+1)}-x^{(k)}|>\varepsilon[/math], положить [math]k=k+1[/math] и перейти к п.3.


Замечание. В качестве условия завершения итераций при известном значении [math]\chi[/math] может быть использовано неравенство


[math]\bigl|x^{(k+1)}-x^{(k)}\bigr|\leqslant \frac{1-\chi}{\chi}\cdot \varepsilon.[/math]

Проблемы сходимости и единственности численного решения, являющиеся главными при использовании этого метода, решаются и исследуются с помощью понятия о сжимающем отображении и теоремы о достаточном условии сходимости метода.


Отображение (функция) [math]\varphi(x)[/math] называется сжимающим в области [math]G[/math] с коэффициентом [math]\chi~(0\leqslant\chi<1)[/math], если для любых двух [math]x',\,x''[/math] из [math]G[/math] выполнено неравенство


[math]\bigl|\varphi(x'')-\varphi(x')\bigr|\leqslant\chi\cdot\bigl|x''-x'\bigr|.[/math]
(3.10)

Теорема 3.9 (о сходимости метода простых итераций и единственности получаемого численного решения)


Пусть выполнены условия:

1. Нелинейное уравнение [math]x=\varphi(x)[/math] имеет решение [math]x_{\ast}\in G[/math].

2. Отображение [math]\varphi(x)[/math] является сжимающим в области [math]G[/math] с некоторым коэффициентом [math]\chi~(0\leqslant\chi<1)[/math].

Тогда:


а) решение [math]x_{\ast}[/math] является единственным решением в области [math]G[/math];


б) последовательность [math]x^{(0)},x^{(1)},\ldots,x^{(k+1)},\ldots[/math], определяемая по отображению на основе итерационного процесса, сходится к решению [math]x_{\ast}[/math] со скоростью геометрической прогрессии, т.е. при выборе [math]x^{(0)}[/math] из условия [math]|x_{\ast}-x^{(0)}|<R[/math], где [math]R>0[/math] — некоторое малое число, справедливо неравенство


[math]\bigl|x_{\ast}-x^{(k)}\bigr| \leqslant \chi^k\cdot \bigl|x_{\ast}-x^{(0)}\bigr|,\quad k=0,1,2,\ldots[/math]

Теорема 3.9 утверждает, что при выполнении условий 1,2 существует окрестность [math]G(x_{\ast},R)[/math] такая, что если взять [math]x^{(0)}[/math] в этой окрестности и вычислять [math]x^{(1)},x^{(2)},\ldots[/math] по формуле (3.9), то в результате с любой наперед заданной точностью можно вычислить [math]x^{(k+1)}\approx x_{\ast}[/math], соответствующее искомому (единственному) корню. Но так как эта окрестность неизвестна, то можно взять произвольное [math]x^{(0)}\in G[/math]. Если при этом вычисляется последовательность [math]x^{(0)},x^{(1)},x^{(2)},\ldots,x{(k)},\ldots[/math], сходящаяся к некоторому значению [math]\widehat{x}[/math], то в силу теоремы [math]\widehat{x}=x_{\ast}[/math]. Если сходимость отсутствует, то надо взять другое [math]x^{(0)}\in G[/math] и повторить расчет.


Теорема 3.10 (о достаточном условии сходимости метода простых итераций). Пусть выполнены условия:

1. Функция [math]\varphi(x)[/math] имеет производные для всех [math]x\in G[/math].

2. Существует число [math]\chi\,(0 \leqslant\chi<1,~\chi=\text{const})[/math], такое, что [math]|\varphi'(x)|\leqslant\chi[/math] для всех [math]x\in G[/math].


Тогда отображение [math]\varphi(x)[/math] является сжимающим в [math]G[/math] с коэффициентом сжатия х и последовательность [math]x^{(0)},x^{(1)},\ldots,x^{(k+1)},\ldots[/math], определяемая на основе итерационного процесса, сходится к решению [math]x_{\ast}[/math], то есть [math]x^{(k)}\to x_{\ast}[/math] при [math]k\to\infty[/math].


▼ Доказательство

В силу условия 1 справедлива теорема Лагранжа о конечных приращениях:


[math]\varphi(x'')-\varphi(x')\leqslant (x''-x')\varphi'(\delta)[/math] для [math]\forall x',x''\in G[/math],

где [math]\delta[/math] — точка, лежащая между [math]x'[/math] и [math]x''[/math]. Но тогда с учетом условия 2 и замены [math]\varphi'(\delta)[/math] ее мажорантой [math]\chi[/math] получим


[math]\bigl|\varphi(x'')-\varphi(x')\bigr|\leqslant \chi\cdot \bigl|x''-x'\bigr|,[/math]

т.е. отображение [math]\varphi(x)[/math] — сжимающее, и, таким образом, последовательность [math]x^{(0)},x^{(1)},\ldots,x^{(k+1)},\ldots[/math] сходится к некоторому [math]\widehat{x}[/math]. Но тогда в силу непрерывности [math]\varphi(x)[/math] в [math]G[/math] имеет место равенство [math]\widehat{x}=x_{\ast}[/math].


Геометрическая интерпретация процесса сходимости и расходимости в зависимости от выполнения или невыполнения достаточного условия сходимости представлена на рис. 3.9.


Сходимость итерационных последовательностей

Из рис. 3.9 видно, что при [math]0<\varphi'(x)<1[/math] и при [math]-1<\varphi'(x)<0[/math] (см.рис. 3.9,д,б) итерационные последовательности [math]x^{(0)},x^{(1)},x^{(2)},\ldots[/math] сходятся к [math]x_{\ast}[/math]. Причем в первом случае реализуется односторонняя (монотонная) сходимость, а во втором — двусторонняя (немонотонная). При [math]|\varphi'(x)|>1[/math] (см.рис. 3.9,в,г) процесс расходится несмотря на то, что точка [math]x^{(0)}[/math] очень близка к [math]x_{\ast}[/math]. Процессы на рис. 3.9,а,б соответствуют сжимающему отображению.


Преобразование уравнения [math]f(x)=0[/math] к равносильному виду [math]x=\varphi(x)[/math] может быть выполнено неоднозначно. Рассмотрим универсальные практические приемы равносильного преобразования [math]f(x)=0[/math], дающие сжимающие отображения.


1. Можно заменить уравнение [math]f(x)=0[/math] на равносильное [math]x=x+cf(x)[/math], где [math]c=\text{const}\ne0[/math]. Тогда, принимая правую часть этого уравнения за [math]\varphi(x)[/math] и раскрывая [math]|\varphi'(x)|= |1+cf'(x)|<1[/math], получаем условие


[math]-2<c\cdot f'(x)<0.[/math]
(3.11)

Таким образом, можно найти константу [math]c[/math] на отрезке [math]G=[a,b][/math] так, чтобы удовлетворялись неравенства (3.11). При этом надо стремиться получить такую постоянную [math]c[/math], которая бы больше отличалась от нуля, и тогда будет реализовы-ваться более быстрая сходимость.

Можно показать, что абсолютная погрешность метода оценивается по формуле (эта оценка выражается через два последовательных приближения)


[math]\bigl|x^{(k+1)}-x_{\ast}\bigr|\leqslant \frac{\chi}{1-\chi}\cdot \bigl|x^{(k+1)}-x^{(k)}\bigr|[/math]
(3.12)

или по формуле (эта оценка выражается через два приближения [math]x^{(0)}[/math] и [math]x^{(1)}[/math])


[math]\bigl|x^{(k+1)}-x_{\ast}\bigr|\leqslant \frac{\chi^{k+1}}{1-\chi}\cdot \bigl|x^{(1)}-x^{(0)}\bigr|.[/math]
(3.13)

Из оценки следует условие выхода из итерационного процесса. Если значение [math]\chi[/math] неизвестно, то выход осуществляется по условию


[math]\bigl|x^{(k+1)}-x^{(k)}\bigr|\leqslant \varepsilon.[/math]

2. Уравнение [math]f(x)=0[/math] заменяется равносильным (где знак в правой части выбирается из условия [math]|\varphi'(x)|<1[/math]):


[math]x=x\mp \frac{f(x)}{\max|f'(x)|}\equiv \varphi(x)[/math] при [math]x\in G[/math],

3. Можно выразить [math]x[/math] из уравнения [math]f(x)=0[/math] так, чтобы для полученного уравнения [math]x=\varphi(x)[/math] выполнялось условие сходимости [math]|\varphi'(x)|<1[/math] в окрестности искомого корня.


Замечание к доказательству. Выполнение условия [math]\Delta_{k+1}= \bigl|x^{(k+1)}-x^{(k)}\bigr|\leqslant \varepsilon[/math] не гарантирует близости к точному решению (на рис. 3.10 достигается область, где условие окончания выполняется, но корень [math]x_{\ast}[/math] расположен достаточно далеко от этой области).


Итерационный процесс и корень

▼ Примеры 3.8-3.10

Пример 3.8. Методом простых итераций с точностью [math]\varepsilon=0,\!001[/math] уточнить корень трансцендентного уравнения [math]x^2-e^{-x}=0[/math], причем искомый корень [math]x_{\ast}\in[0,\!5;1,\!0]\equiv G[/math].


▼ Решение

1. Преобразуем исходное уравнение к виду [math]x=\varphi(x)\colon\, x=e^{-x\!\!\not{\phantom{|}}\,2}= \varphi(x)[/math]. Проверкой можно убедиться, что [math]\varphi'(x)<1[/math] при [math]x\in G[/math].


2. В качестве начального приближения выберем [math]x^{(0)}=\frac{0,\!5+1}{2}=0,\!75[/math].


3,4. Выполняем последовательные действия по формуле (3.9): [math]x^{(k+1)}=\exp \frac{-x^{(k)}}{2}[/math]. Результаты расчетов приведены в табл. 3.4.


[math]\begin{array}{|c|c|c|c|c|c|c|} \multicolumn{7}{r}{\mathit{Table~3.4}}\\\hline k& 0& 1& 2& 3& 4& 5\\\hline x^{(k)}& 0,7500& 0,6873& 0,7091& 0,7015& 0,7042& 0,7032 \\\hline \bigl|x^{(k)}-x^{(k-1)}\bigr|&-& 0,0627& 0,0218& 0,0076& 0,0027&0,0010 \\\hline \end{array}[/math]

На пятой итерации выполнилось условие [math]\bigl|x^{(5)}-x^{(4)}\bigr|\leqslant \varepsilon= 0,\!001[/math], поэтому процесс завершен. В качестве приближенного решения берется [math]x_{\ast}\cong x^{(5)}= 0,\!703[/math]. Подстановка [math]x^{(5)}[/math] в исходное уравнение дает [math](x^{(5)})^2-e^{-x^{(5)}}= 0,00088[/math], т.е. равенство в уравнении также выполняется с заданной точностью. Видно, что сходимость двусторонняя (это следует также из неравенства [math]-1<\varphi'(x)<0[/math]) и линейная, так как отношения [math]\frac{|x^{(k+1)}-x^{(k)}|}{|x^{(k)}-x^{(k-1)}|}[/math] при [math]k=1,2,3,4,5[/math] примерно одинаковые и равны [math]\approx0,\!35[/math] (знаменатель геометрической профессии).


Пример 3.9. Найти решение уравнения [math]x^3-x+1=0[/math] методом простых итераций с точностью [math]\varepsilon_1=0,\!01[/math] и [math]\varepsilon_2=0,\!001[/math].


▼ Решение

1. В примере 3.2 был отделен корень уравнения [math]x_{\ast}\in[-2;-1][/math]. Преобразуем уравнение к виду [math]x=\varphi(x)[/math]. Для этого запишем его сначала в форме [math]x=x^3+1[/math]. Легко показать, что функция [math]\varphi(x)=x^3+1[/math] не удовлетворяет условию сходимости, поскольку [math]\varphi'(x)=3x^2,[/math] [math]\varphi'(-2)=12>1,[/math] [math]\varphi'(-1)=3>1[/math]. Поэтому воспользуемся другим преобразованием.


В результате получим [math]x=\sqrt[3]{x-1}[/math]. Можно проверить, что [math]|\varphi'(x)|<1[/math] на отрезке [math][-2;-1][/math], т.е. достаточные условия сходимости выполняются.


2. Зададим начальное приближение [math]x^{(0)}=-1[/math]. Решим задачу с различной точностью [math]\varepsilon_1[/math] и [math]\varepsilon_2[/math].


3,4. Выполним расчеты по формуле (3.9): [math]x^{(k+1)}= \sqrt[3]{x^{(k)}-1},~k=0,1,2,\ldots[/math]. Результаты расчетов приведены в табл. 3.5.


[math]\begin{array}{|c|c|c|c|c|c|c|} \multicolumn{7}{r}{\mathit{Table~3.5}}\\\hline k& 0& 1& 2& 3& 4& 5\\\hline \begin{matrix}{}\\[-8pt]{}\end{matrix} x^{(k)}&-1,\!000&-1,\!2599&-1,\!3123&-1,\!3223&-1,\!3243&-1,3246\\\hline \begin{matrix}{}\\[-8pt]{}\end{matrix} \bigl|x^{(k)}-x^{(k-1)}\bigr|&-&0,\!2599& 0,\!0524& 0,\!0100& 0,\!0020& 0,\!0003\\\hline \end{array}[/math]

Если [math]\varepsilon_1=0,\!01[/math], то [math]x_{\ast}\cong-1,\!3223[/math], а если [math]\varepsilon_2=0,\!001[/math], то [math]x_{\ast}\cong-1,\!3246[/math].


Пример 3.10. Найти корни уравнения [math]x^3-x^2-9x+9=0[/math] методом простых итераций с точностью [math]\varepsilon=0,\!001[/math].


▼ Решение

1. Преобразуем уравнение к виду [math]x=\varphi(x)\colon\, x=\sqrt[3]{x^2+9x-9}[/math].


В примере 3.3 была выполнена операция отделения корней и получены отрезки [math][-4;-2],\,[0,5;2],\,[2;4][/math].


Можно показать, что на отрезках [math][2;4],\,[-4;-2][/math] функция [math]\varphi(x)= \sqrt[3]{x^2+9x-9}[/math] удовлетворяет условию [math]|\varphi'(x)|<1[/math].


На отрезке [math][0,\!5;2][/math] используем другой вид уравнения: [math]x=\frac{x^3}{9}-\frac{x^2}{9}+1[/math]. Также легко проверить, что функция [math]\varphi(x)=\frac{x^3}{9}-\frac{x^2}{9}+1[/math] удовлетворяет достаточному условию сходимости на отрезке [math][0,\!5;2][/math].


2. В качестве начальных приближений выберем:
– точку [math]x^{(0)}=-2[/math] на отрезке [math][-4;-2][/math];
– точку [math]x^{(0)}=0,\!5[/math] на отрезке [math][0,\!5;-2][/math];
– точку [math]x^{(0)}=2[/math] на отрезке [math][2;4][/math];.
В поставленной задаче [math]\varepsilon=0,\!001[/math].

3,4. Выполним расчеты по формуле


[math]x^{(k+1)}= \sqrt[3]{(x^{(k)})^2+9x^{(k)}-9},\quad k=0,1,2,\ldots[/math]

с начальными значениями [math]x^{(0)}=-2[/math] и [math]x^{(0)}=2[/math] и по формуле


[math]x^{(k+1)}=\frac{(x^{(k)})^3}{9}-\frac{(x^{(k)})^2}{9}+1,\quad k=0,1,2,\ldots[/math]

с начальным значением [math]x^{(0)}=0,\!5[/math].


Результаты расчетов занесены в табл. 3.6–3.8.


[math]\begin{aligned}\!&\! \begin{array}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} \multicolumn{14}{r}{\mathit{Table~3.6}}\\\hline k&\! \scriptstyle{0}\!&\! \scriptstyle{1}\!&\! \scriptstyle{2}\!&\! \scriptstyle{3}\!&\! \scriptstyle{4}\!&\! \scriptstyle{5}\!&\! \scriptstyle{6}\!&\! \scriptstyle{7}\!&\! \scriptstyle{8}\!&\! \scriptstyle{9}\!&\! \scriptstyle{10}\!&\! \scriptstyle{11}\!&\! \scriptstyle{12}\!\\\hline \begin{matrix}{}\\[-8pt]{}\end{matrix} x^{(k)}&\! \scriptstyle{2,0000}\!&\! \scriptstyle{2,3513}\!&\! \scriptstyle{2,6056}\!&\! \scriptstyle{2,7694}\!&\! \scriptstyle{2,8682}\!&\! \scriptstyle{2,9255}\!&\! \scriptstyle{2,9582}\!&\! \scriptstyle{2,9767}\!&\! \scriptstyle{2,9870}\!&\! \scriptstyle{2,9927}\!&\! \scriptstyle{2,9959}\!&\! \scriptstyle{2,9977}\!&\! \scriptstyle{2,9987}\!\\\hline \begin{matrix}{}\\[-8pt]{}\end{matrix} \bigl|x^{(k)}-x^{(k-1)}\bigr|}&\! -\!&\! \scriptstyle{0,3513}\!&\! \scriptstyle{0,2543}\!&\! \scriptstyle{0,1638}\!&\! \scriptstyle{0,0988}\!&\! \scriptstyle{0,0573}\!&\! \scriptstyle{0,0327}\!&\! \scriptstyle{0,0185}\!&\! \scriptstyle{0,0102}\!&\! \scriptstyle{0,0057}\!&\! \scriptstyle{0,0032}\!&\! \scriptstyle{0,0018}\!&\! \scriptstyle{0,0010}\!\\\hline \end{array}\\ &\begin{array}{|c|c|c|}\multicolumn{3}{r}{\mathit{Table~3.7}}\\\hline k& \begin{matrix}{}\\[-8pt]{}\end{matrix} x^{(k)}& \begin{matrix}{}\\[-8pt]{}\end{matrix} \bigl|x^{(k)}-x^{(k-1)}\bigr|}\\\hline 0&-2,\!0000&-\\\hline 1&-2,\!8438& 0,\!8438\\\hline 2&-2,\!9816& 0,\!1378\\\hline 3&-2,\!9979& 0,\!0163\\\hline 4&-2,\!9997& 0,\!0018\\\hline 5&-2,\!99997& 0,\!00027\\\hline \end{array} \qquad\qquad\qquad \begin{array}{|c|c|c|} \multicolumn{3}{r}{\mathit{Table~3.8}}\\\hline k& \begin{matrix}{}\\[-8pt]{}\end{matrix} x^{(k)}& \begin{matrix}{}\\[-8pt]{}\end{matrix} \bigl|x^{(k)}-x^{(k-1)}\bigr|}\\\hline 0& 0,\!50000&-\\\hline 1& 0,\!98611& 0,\!4861\\\hline 2& 0,\!99849& 0,\!01238\\\hline 3& 0,\!99983& 0,\!00134\\\hline 4& 0,\!99998& 0,\!00015\\\hline \end{array} \end{aligned}[/math]

В результате получены приближенные значения корней:


[math]x_{1\ast}\cong-2,\!99997,\qquad x_{2\ast}\cong0,\!99998,\qquad x_{3\ast}\cong2,\!9987.[/math]

Обратим внимание на сильное различие в числе итераций, потребовавшихся для нахождения корней [math]x_{\ast}=3[/math] (табл. 3.6) и [math]x_{\ast}=-3[/math] (табл. 3.7), с помощью одной и той же формулы. Заметим, что в окрестности корня [math]x_{\ast}=3[/math] значения модуля производной функции [math]\varphi(x)=\sqrt[3]{x^2+9x-9}[/math] равны:


[math]|\varphi'(2)|=0,\!784;\qquad |\varphi'(2,\!3513)|=0,\!673;\qquad |\varphi'(2,\!6056)|=0,\!618;\qquad |\varphi'(2,\!9977)|=0,\!556.[/math]

С другой стороны, в окрестности корня [math]x_{\ast}=-3[/math] имеем:


[math]|\varphi'(-2)|=0,\!206;\qquad |\varphi'(-2,\!8438)|= 0,\!124;\qquad |\varphi'(-2,\!9977)|=0,\!111.[/math]

Анализ результатов показывает, что чем меньше значения модуля производной [math]|\varphi'(x)|[/math], тем быстрее сходимость.




Метод Ньютона для решения нелинейных уравнений


Метод Ньютона (метод касательных, или метод линеаризации) является одним из наиболее популярных численных методов. Он быстро сходится (имеет квадратичную сходимость) и допускает различные модификации, приспособленные для решения векторных задач и сеточных уравнений. Однако этот метод эффективен при весьма жестких ограничениях на характер функции [math]f(x)\colon[/math]


Геометрическая интерпретация метода Ньютона
1) существование второй производной функции [math]f(x)[/math] на множестве [math]G=\{a\leqslant x\leqslant b\}[/math];
2) удовлетворение первой производной условию [math]f(x)\ne0[/math] для всех [math]x\in G[/math];
3) знакопостоянство [math]f'(x),\,f''(x)[/math] для всех [math]x\in G[/math].

Поэтому его желательно использовать совместно с другими методами, например методом половинного деления, чтобы достигнуть диапазона [math]\widetilde{a}\leqslant x \leqslant \widetilde{b}[/math], где указанные условия начинают выполняться.


Геометрическая интерпретация метода Ньютона состоит в следующем. Задается начальное приближение [math]x^{(0)}[/math]. Далее проводится касательная к кривой [math]y=f(x)[/math] в точке [math]x^{(0)}[/math] (рис. 3.11), т.е. кривая заменяется прямой линией. В качестве следующего приближения выбирается точка пересечения этой касательной с осью абсцисс. Процесс построения касательных и нахождения точек пересечения с осью абсцисс повторяется до тех пор, пока приращение не станет меньше заданной величины [math]\varepsilon[/math].


Получим расчетную формулу метода Ньютона. Вместо участка кривой [math]BC[/math] (точка [math]C[/math] соответствует [math]x_{\ast}[/math]) возьмем участок [math]AB[/math] — касательную, проведенную в точке [math](x^{(0)},f(x^{(0)}))[/math]). Для этого отрезка справедливо конечное соотношение:


[math]\frac{f(x^{(0)})-0}{x^{(0)}-x^{(1)}}= f'(x^{(0)})\equiv \operatorname{tg}\alpha,[/math]

где [math]\alpha[/math] — угол наклона касательной в точке [math](x^{(0)},f(x^{(0)}))[/math] к оси абсцисс. Разрешая это соотношение относительно [math]x^{(1)}[/math], получаем [math]x^{(1)}= x^{(0)}-\frac{f(x^{(0)})}{f'(x^{(0)})}[/math]. Повторяя процесс, находим общую формулу:


[math]x^{(k+1)}= x^{(0)}-\frac{f(x^{(k)})}{f'(x^{(k)})},\quad k=0,1,2,\ldots[/math]
(3.14)

Подчеркнем, что если отбросить итерационный индекс, то (3.14) записывается в виде нелинейного уравнения


[math]x=x-\frac{f(x)}{f'(x)}\equiv \varphi(x),[/math]
(3.15)

которое, однако, на [math][a,b][/math] не равносильно исходному, а является таковым только в одной точке при [math]x=x_{\ast}[/math]. Поэтому данный метод не служит разновидностью метода простых итераций.


Применим теперь для вывода формулы (3.14) метод линеаризации. Положим, что итерационный процесс имеет вид


[math]x^{(k+1)}=x^{(k)}+\delta^{(k)},\quad k=0,1,2,\ldots[/math]
(3.16)

где [math]\delta^{(0)}[/math] — поправка к k-му приближению, которую необходимо найти. Предполагая, что [math]f(x)[/math] имеет непрерывную вторую производную, разложим [math]f(x^{(k)}+\delta^{(k)})[/math] по формуле Тейлора относительно точки [math]x^{(k)}\colon[/math]


[math]f(x^{(k)}+\delta^{(k)})= f(x^{(k)})+ \delta^{(k)}f'(x^{(k)})+ \frac{1}{2}(\delta^{(k)})^2 f''(\xi),[/math]

где [math]\xi\in \bigl(x^{(k)},x^{(k+1)}\bigr)[/math]. Учитывая, что [math]f\bigl(x^{(k)}+ \delta^{(k)}\bigr)=0[/math] (это соответствует нахождению точки пересечения с осью абсцисс), и оставляя только линейную (относительно [math]\delta^{(k)}[/math]) часть разложения (отсюда и название — метод линеаризации), записываем линейное относительно [math]\delta^{(k)}[/math] уравнение


[math]f(x^{(k)})+ \delta^{(k)} f'(x^{(k)})=0.[/math]

Отсюда выражается поправка [math]\delta^{(k)}=-\frac{f(x^{(k)})}{f'(x^{(k)})}[/math]. Подставляя [math]\delta^{(k)}[/math] в (3.16), получаем (3.14).


Теорема 3.11 (о достаточных условиях сходимости метода Ньютона). Пусть выполняются следующие условия:


1. Функция [math]f(x)[/math] определена и дважды дифференцируема на [math][a,b][/math].

2. Отрезку [math][a,b][/math] принадлежит только один простой корень [math]x_{\ast}[/math], так что [math]f(a)\cdot f(b)<0[/math].

3. Производные [math]f'(x),\,f''(x)[/math] на [math][a,b][/math] сохраняют знак, и [math]f'(x)\ne0[/math].

4. Начальное приближение [math]x^{(0)}[/math] удовлетворяет неравенству [math]f(x^{(0)})\cdot f''(x^{(0)})>0[/math] (знаки функций [math]f(x)[/math] и [math]f''(x)[/math] в точке [math]x^{(0)}[/math] совпадают).


Тогда с помощью метода Ньютона (3.14) можно вычислить корень уравнения [math]f(x)=0[/math] с любой точностью.


Замечания


1. Метод Ньютона характеризуется вторым порядком сходимости вблизи корня и первым порядком — вдали от него. Данную оценку проверяем для двух случаев, когда [math]x^{(k)}[/math] находится далеко от корня [math]x_{\ast}[/math] (это возможно на первых итерациях) и когда [math]x^{(k)}[/math] располагается вблизи [math]x_{\ast}[/math].


Первый случай. Пусть отрезок [math]\omega=[x^{(k)},x_{\ast}][/math] не мал. Тогда на основе теоремы Лагранжа получим (где [math]m_1=\min\limits_{\omega}|f'(x)|[/math])


[math]\bigl|f(x^{(k)})\bigr|= \bigl|f(x_{\ast})-f(x^{(k)})\bigr|= \bigl|f'(\xi)\bigr|\cdot \bigl|x_{\ast}-x^{(k)}\bigr| \geqslant m_1 \bigl|x_{\ast}-x^{(k)}\bigr|.[/math]
(3.17)

Преобразуем с использованием (3.17) итерационную формулу (3.14) (где [math]M_1= \max\limits_{x\in[a,b]}|f'(x)|[/math]):


[math]x^{(k+1)}=x^{(k)}-\frac{f(x^{(k)})}{f'(x^{(k)})};\qquad \bigl|x^{(k+1)}-x^{(k)}\bigr|= \frac{|f(x^{(k)})|}{f'(x^{(k)})} \geqslant \frac{m_1}{M_1} \bigl|x_{\ast}-x^{(k)}\bigr|.[/math]

В силу монотонности последовательности [math]x^{(0)},x^{(1)},\ldots[/math] имеем


[math]\begin{gathered}x_{\ast}-x^{(k+1)}= x_{\ast}-x^{(k)}-\bigl(x^{(k+1)}-x^{(k)}\bigr),\\ \bigl|x_{\ast}-x^{(k+1)}\bigr|= \bigl|x_{\ast}-x^{(k)}\bigr|-\bigl|x^{(k+1)}-x^{(k)}\bigr| \geqslant \bigl|x_{\ast}-x^{(k)}\bigr|- \frac{m_1}{M_1} \bigl|x_{\ast}-x^{(k)}\bigr|= \left(1-\frac{m_1}{M_1}\right)\! \bigl|x_{\ast}-x^{(k)}\bigr|. \end{gathered}[/math]

Таким образом, вдали от корня получаем линейную сходимость


[math]\bigl|x_{\ast}-x^{(k+1)}\bigr| \leqslant c\cdot \bigl|x_{\ast}-x^{(k)}\bigr|[/math], где [math]0 \leqslant c=1-\frac{m_1}{M_1}<1[/math].

Второй случай. Пусть теперь отрезок [math]\omega=[x^{(k)},x][/math] мал, т.е. итерации выполняются вблизи корня. Тогда, полагая, что указанные выше предположения 1–4 теоремы 3.10 выполнены, разложим функцию [math]f(x)[/math] в окрестности корня [math]x_{\ast}[/math] относительно точки [math]x^{(k)}[/math], учитывая члены до второго порядка. Получим


[math]\Bigl.{f(x)}\Bigr|_{x=x^{(k)}}= f(x^{(k)})+ \bigl(x_{\ast}-x^{(k)}\bigr) f'(x^{(k)})+ \bigl(x_{\ast}-x^{(k)}\bigr)^2 \frac{1}{2}f''(\xi)=0,[/math]

где [math]\xi\in \bigl(x^{(k)}-\delta,\,x^{(k)}+\delta\bigr)[/math] ([math]\delta>0[/math] — малая величина). Из данного соотношения выражаем [math]x_{\ast}\colon[/math]


[math]x_{\ast}=x^{(k)}-\frac{f(x^{(k)})}{f'(x^{(k)})}-\frac{(x_{\ast}-x^{(k)})^2}{2f'(x^{(k)})}\,f''(\xi).[/math]

Но первые два слагаемых в правой части в соответствии с (3.14) равны [math]x^{(k+1)}[/math]. Тогда будем иметь


[math]x_{\ast}-x^{(k)}=-\frac{(x_{\ast}-x^{(k)})^2}{2f'(x^{(k)})}\,f''(\xi).[/math]

Из последнего соотношения следует оценка погрешности (k+1)-го приближения через погрешность k-го приближения:


[math]\bigl|x_{\ast}-x^{(k+1)}\bigr|\leqslant \frac{M_2}{2m_1} \bigl|x_{\ast}-x^{(k)}\bigr|^2,[/math]
(3.18)

где принято [math]M_2=\max\limits_{\omega}|f''(x)|,~ m_1=\min\limits_{\omega}|f'(x)|[/math]. Оценка (3.18) свидетельствует о квадратичной сходимости метода касательных вблизи корня. С вычислительной точки зрения это означает, что на каждом приближении количество верных цифр результата удваивается.


2. Для нахождения комплексных корней уравнения [math]f(z)=0[/math] можно также использовать (3.14) в форме (где [math]z=x+iy[/math] — комплексная переменная)


[math]z^{(k+1)}=z^{(k)}-\frac{f(z^{(k)})}{f'(z^{(k)})},\quad k=0,1,2,\ldots[/math]

Метод Ньютона может применяться не только для нахождения простых корней, но для определения кратных корней, т.е. когда на отрезке [math][a,b][/math] содержащем корень, не выполняется условие [math]f(a)\cdot f(b)<0[/math] (условие 2 теоремы 3.11). Наряду с теоремой 3.11 удобно также пользоваться следующей теоремой.




Достаточные условия сходимости метода Ньютона


Теорема 3.12 (достаточные условия сходимости метода Ньютона). Пусть:

а) дана функция [math]f(x)\colon D\to \mathbb{R}[/math], где [math]D[/math] — открытый интервал, и [math]f'(x)\in \operatorname{Lip}_{\gamma}(D)[/math];

б) для некоторого [math]\rho>0[/math] выполняется условие [math]|f'(x)|\leqslant\rho[/math] при всех [math]x[/math] из [math]D[/math].


Если уравнение [math]f(x)=0[/math] имеет решение [math]x_{\ast}\in D[/math], то существует некоторое [math]\eta>0[/math], такое, что если [math]|x^{(0)}-x_{\ast}|<\eta[/math], то последовательность [math]\bigl\{x^{(0)},x^{(1)},x^{(2)},\ldots\bigr\}[/math], задаваемая формулой (3.14), существует и сходится к [math]x_{\ast}[/math]. Более того, справедлива оценка


[math]\bigl|x^{(k+1)}-x_{\ast}\bigr| \leqslant \frac{\gamma}{2\rho} \bigl|x^{(k)}-x_{\ast}\bigr|^2,\quad k=0,1,2,\ldots[/math]

Здесь обозначение [math]f'(x)\in \operatorname{Lip}_{\gamma}(D)[/math] означает, что функция [math]f'(x)[/math] непрерывна по Липшицу с константой [math]\gamma[/math] на множестве [math]D[/math], то есть [math]|f'(x)-f'(y)| \leqslant \gamma \cdot|x-y|[/math] для любых [math]x,\,y[/math] из [math]D[/math].


Замечания


1. Требование теоремы 3.12, чтобы производная [math]f'(x)[/math] имела ненулевую нижнюю границу в [math]D[/math], определяет, что значение [math]f'(x_{\ast})[/math] должно быть ненулевым для квадратичной сходимости метода Ньютона. Если же [math]f'(x_{\ast})=0[/math], то [math]x_{\ast}[/math] является кратным корнем, а метод Ньютона сходится лишь линейно.


2. Выполнение условий теоремы 3.12 гарантирует сходимость метода Ньютона только из "хорошего" начального приближения [math]x^{(0)}[/math].


3. Метод Ньютона является локально сходящимся, так как он сходится с определенной скоростью к истинному решению при условии, что стартует в достаточной близости от этого решения.


Методика решения задачи


1. Задать начальное приближение [math]x^{(0)}[/math] так, чтобы выполнялось неравенство [math]f(x^{(0)})\cdot f''(x^{(0)})>0[/math], а также малое положительное число [math]\varepsilon[/math]. Положить [math]k=0[/math].


2. Вычислить [math]x^{(k+1)}[/math] по формуле [math]x^{(k+1)}= x^{(k)}-\frac{f(x^{(k)})}{f'(x^{(k)})}[/math].


3. Если [math]|x^{(k+1)}-x^{(k)}|\leqslant \varepsilon[/math], процесс завершить и положить [math]x_{\ast}\cong x^{(k+1)}[/math].

Если [math]|x^{(k+1)}-x^{(k)}|>\varepsilon[/math], положить [math]k=k+1[/math] и перейти к п.2.


▼ Примеры 3.11-3.14

Пример 3.11. Методом Ньютона с точностью [math]\varepsilon=0,\!001[/math] уточнить корень трансцендентного уравнения [math]x^2-e^{-x}=0[/math], причем искомый корень [math]x_{\ast}\in[0,\!5;1,\!0]\equiv G[/math].


▼ Решение

Можно проверить, что на множестве [math]G[/math] удовлетворяются условия 1, 2, 3 теоремы 3.11, обеспечивающие сходимость метода касательных.


1. Зададим начальное приближение из условия 4. Так как для [math]f(x)=x^2-e^{-x}[/math] справедливо [math]f''(x)=2-e^{-x}>0[/math] на множестве [math]G,~ f(a)=f(0,\!5)<0,[/math] [math]f(b)=f(1)>0[/math], то [math]f(1)\cdot f''(1)>0[/math], поэтому [math]x^{(0)}=1[/math].


2,3. Результаты расчетов по формуле (3.14) [math]x^{(k+1)}= x^{(k)}-\frac{(x^{(k)})^2-e^{-x^{(k)}}}{2x^{(k)}+e^{-x^{(k)}}},~k=0,1,2,\ldots[/math] помещены в табл. 3.9.


[math]\begin{array}{|c|c|c|c|c|} \multicolumn{5}{r}{\mathit{Table~3.9}}\\\hline k& 0& 1& 2& 3\\\hline \begin{matrix}{}\\[-8pt]{}\end{matrix} x^{(k)}& 1,\!000& 0,\!73304& 0,\!70381& 0,\!703467\\\hline \begin{matrix}{}\\[-8pt]{}\end{matrix} \bigl|x^{(k)}-x^{(k-1)}\bigr|&-& 0,\!27& 0,\!029& 0,\!00034\\\hline \begin{matrix}{}\\[-8pt]{}\end{matrix} f(x^{(k)})& 0,\!63212& 0,\!05690& 0,\!00065& 8,\!25\cdot10^{-7}\\\hline \end{array}[/math]

Из табл. 3.9 можно сделать следующие выводы:


1. Для достижения заданной точности, проверяемой по модулю разности [math]\bigl|x^{(k)}-x^{(k-1)}\bigr|[/math], потребовалось выполнить три приближения. Если же выход организовать по условию [math]\bigl|f(x^{(k)})\bigr|\leqslant \varepsilon[/math], то достаточно двух приближений.


2. Вблизи корня [math]x_{\ast}[/math] количество верных цифр в результатах [math]x^{(k)}[/math] удваивается, так что все цифры в [math]x^{(3)}[/math] являются верными, тогда как в [math]x^{(2)}[/math] верными являются первые три цифры после запятой.


3. Скорость сходимости метода Ньютона выше скорости сходимости метода простых итераций (та же точность была достигнута за пять итераций).


Пример 3.12. Методом Ньютона найти корень уравнения [math]x^3-x+1=0[/math].


▼ Решение

В примере 3.2 корень был отделен: [math]x_{\ast}\in[-2;-1][/math].


1. Зададим начальное приближение [math]x^{(0)}[/math]. Так как [math]f'(x)=3x^2-1,~ f''(x)=6x[/math], то [math]f(-2)=-5,~ f''(x)<0[/math] при [math]x\in[-2;-1][/math]. Поэтому [math]f(-2)\cdot f''(-2)>0[/math] и [math]x^{(0)}=-2[/math]. Положим [math]\varepsilon=0,\!001[/math].


2,3. Результаты расчетов по формуле (3.14) [math]x^{(k+1)}= x^{(k)}-\frac{(x^{(k)})^3-x^{(k)}+1}{3(x^{(k)})^2-1},~ k=0,1,2,\ldots[/math] приведены в габл. 3.10.


[math]\begin{array}{|c|c|c|c|c|c|c|} \multicolumn{7}{r}{\mathit{Table~3.10}}\\\hline k& 0& 1& 2& 3& 4& 5\\\hline \begin{matrix}{}\\[-8pt]{}\end{matrix} x^{(k)}&-2,\!0000&-1,\!545455&-1,\!359615&-1,\!325801&-1,\!324719&-1,\!324718\\\hline \begin{matrix}{}\\[-8pt]{}\end{matrix} \bigl|x^{(k)}-x^{(k-1)}\bigr|&-& 0,\!454545& 0,\!185840& 0,\!033814& 0,\!001082& 0,\!000001\\\hline \end{array}[/math]

Найденное приближенное решение [math]x_{\ast}\cong-1,\!32472[/math].


Пример 3.13. Найти корни уравнения [math]x^3-x^2-9x+9=0[/math] методом Ньютона с точностью [math]\varepsilon=0,\!001[/math].


▼ Решение

Процедура отделения корней была выполнена в примере 3.3. В качестве отрезков [math][a_i;b_i][/math], которым принадлежат корни уравнения, выберем [math][-4;-2], [2,\!5;4], [0,\!5;2][/math].


Так как [math]f(-4)=-3,\!5;~ f(-2)=15[/math], то есть [math]f(-4)f(-2)<0[/math], производные [math]f''(x)=6x-2<0,[/math] [math]f'(x)=3x^2-2x-9>0[/math] сохраняют знак при [math]x\in[-4;-2][/math], то условия сходимости выполняются.


Так как [math]f(2,\!5)=-4,\!125;~ f(4)=21[/math], то есть [math]f(2,\!5)f(4)<0[/math], и производные [math]f'(x)>0,~ f''(x)>0[/math] сохраняют знак при [math]x\in[2,\!5;4][/math], то условия сходимости на этом отрезке тоже выполняются.


Так как [math]f(0,\!5)=4,\!375;~ f(2)=-5[/math], то есть [math]f(0,\!5)f(2)<0[/math], и производные [math]f'(x)<0,~ f''(x)>0[/math] сохраняют знак при [math]x\in[0,\!5;2][/math], то условия сходимости выполняются.


1. Зададим начальные приближения: на отрезке [math][0,\!5;2][/math] выберем [math]x^{(0)}= 0,\!5[/math], так как [math]f(0,\!5)\cdot f''(0,\!5)>0[/math]; на отрезке [math][-4;-2][/math] выберем [math]x^{(0)}=-4[/math], так как [math]f(4)\cdot f''(4)>0[/math]; аналогично на отрезке [math][2,\!5;4][/math] выберем [math]x^{(0)}=4[/math]. В поставленной задаче [math]\varepsilon= 0,\!001[/math].


2,3. Результаты расчетов по формуле (3.14) [math]x^{(k+1)}= x^{(k)}-\frac{(x^{(k)})^3-(x^{(k)})^2-9x^{(k)}+9}{3(x^{(k)})^2-2x^{(k)}-9},~ k=0,1,2,\ldots[/math] приведены в табл. 3.11–3.13.


[math]\begin{aligned}& \begin{array}{|c|c|c|c|c|c|} \multicolumn{6}{r}{\mathit{Table~3.11}}\\\hline k& 0& 1& 2& 3& 4 \\\hline \begin{matrix}{}\\[-8pt]{}\end{matrix} x^{(k)}&-4,\!00000&-3,\!255319&-3,\!023383&-3,\!000225&-3,\!000000 \\\hline \begin{matrix}{}\\[-8pt]{}\end{matrix} \bigl|x^{(k)}-x^{(k-1)}\bigr|&-& 0,\!744681& 0,\!231936& 0,\!023158& 0,\!000225 \\\hline \end{array}\\[2pt] & \begin{array}{|c|c|c|c|c|} \multicolumn{5}{r}{\mathit{Table~3.12}}\\\hline k& 0& 1& 2& 3 \\\hline \begin{matrix}{}\\[-8pt]{}\end{matrix} x^{(k)}&0,\!5000& 0,\!972973& 0,\!9998246& 1,\!0000000 \\\hline \begin{matrix}{}\\[-8pt]{}\end{matrix} \bigl|x^{(k)}-x^{(k-1)}\bigr|&-& 0,\!472973& 0,\!0268516& 0,\!0001754 \\\hline \end{array}\\[2pt] & \begin{array}{|c|c|c|c|c|c|c|} \multicolumn{7}{r}{\mathit{Table~3.13}}\\\hline k& 0& 1& 2& 3& 4& 5 \\\hline \begin{matrix}{}\\[-8pt]{}\end{matrix} x^{(k)}& 4,\!0000& 3,\!322581& 3,\!051484& 3,\!001674& 3,\!000002& 3,\!0000 \\\hline \begin{matrix}{}\\[-8pt]{}\end{matrix} \bigl|x^{(k)}-x^{(k-1)}\bigr|&-& 0,\!6774194& 0,\!2710969& 0,\!049809& 0,\!001671& 2\cdot10^{-6} \\\hline \end{array} \end{aligned}[/math]

В результате получены приближенные значения корней:


[math]x_{\ast1}\cong-3,\!0000;\qquad x_{\ast2}\cong1,\!0000;\qquad x_{\ast3}\cong 3,\!0000.[/math]

Пример 3.14. Найти корень уравнения [math]x^2-2x+1=0[/math] методом Ньютона с точностью [math]\varepsilon=0,\!01[/math].


▼ Решение

Очевидно, уравнение имеет один кратный корень [math]x_{\ast}=1[/math]. Согласно замечанию к теореме 3.12 применение метода Ньютона для решения поставленной задачи сопровождается линейной сходимостью (табл. 3.14).


[math]\begin{array}{|c|c|c|c|c|c|c|c|c|} \multicolumn{9}{r}{\mathit{Table~3.14}}\\\hline k& 0& 1& 2& 3& 4& 5& 6& 7\\\hline \begin{matrix}{}\\[-8pt]{}\end{matrix} x^{(k)}& 2& 1,\!5& 1,\!25& 1,\!125& 1,\!0625& 1,\!03125& 1,\!015625& 1,\!007813 \\\hline \begin{matrix}{}\\[-8pt]{}\end{matrix} \bigl|x^{(k)}-x^{(k-1)}\bigr|&-& 0,\!5& 0,\!25& 0,\!125& 0,\!0625& 0,\!03125& 0,\!015625& 0,\!0078125 \\\hline \end{array}[/math]

Полученное приближенное решение [math]x_{\ast}\cong1,\!007813[/math].




Нарушение знакопостоянства производных функции

Метод касательных


Метод касательных, являясь весьма эффективным средством численного анализа, к сожалению, имеет достаточно жесткие ограничения. Действительно, он не может применяться для сеточных уравнений (см. рис. 3.2); при нарушении знакопостоянства производных (рис. 3.12); при существовании неограниченных вторых производных и др. Так, если даже условие знакопостоянства нарушено вдали от корня, где выбрано [math]x^{(0)}[/math], а вблизи корня выполняется, то все равно метод касательных неприменим (см. рис. 3.12), если не произвести сужения начального отрезка.


Кроме того, если функция [math]f(x)[/math] очень сложная, то будет сложной и ее производная, и поэтому на каждой итерации приходится рассчитывать две функции, что снижает эффективность метода касательных.


Процесс последовательных приближений по методу Ньютона

В силу этого в ряде случаев могут оказаться более предпочтительными модификации метода касательных. Рассмотрим три из них.


Упрощенный метод Ньютона. Методика его применения совпадает с изложенной ранее, но вместо формулы (3.14) используется


[math]x^{(k+1)}=x^{(k)}-\frac{f(x^{(k)})}{f'(x^{(0)})},\quad k=0,1,2,\ldots\qquad \mathsf{(3.19)}[/math]

Отличие от метода Ньютона заключается в том, что производная функции [math]f(x)[/math] подсчитывается только в точке начального приближения, а на последующих итерациях не уточняется. Процесс последовательных приближений отражен на рис. 3.13. Первая итерация совпадает с первой итерацией метода Ньютона. На последующих итерациях соответствующие отрезки параллельны касательной, проведенной в начальной точке.


Для этой модификации снимаются некоторые ограничения метода касательных, например условие знакопостоянства производных. Сходимость упрощенного метода Ньютона линейная.


Пример 3.15. Найти корень уравнения [math]x^3-x+1=0[/math] упрощенным методом Ньютона.


▼ Решение

Корень уравнения отделен в примере 3.2: [math]x_{\ast}\in[-2;-1][/math].


1. Выберем начальное приближение [math]x^{(0)}=-2[/math] и зададим [math]\varepsilon_1=0,\!01[/math] и [math]\varepsilon_2=0,\!001[/math].


2,3. Выполним расчеты по формуле (3.19):


[math]x^{(k+1)}= x^{(k)}-\frac{(x^{(k)})^3-x^{(k)}+1}{3(x^{(0)})^2-1}= x^{(k)}-\frac{(x^{(k)})^3-x^{(k)}+1}{11},\quad k=0,1,2,\ldots[/math]

Результаты расчетов приведены в табл. 3.15.


[math]\begin{array}{|c|c|c||c|c|c|} \multicolumn{6}{r}{\mathit{Table~3.15}}\\\hline \begin{matrix} {}\\[-6pt]{}\end{matrix} k& x^{(k)}& \bigl|x^{(k)}-x^{(k-1)}\bigr|& k& x^{(k)}& \bigl|x^{(k)}-x^{(k-1)}\bigr|\\\hline 0&-2,\!00001&-& 6&-1,\!3388& 0,\!0092\\\hline 1&-1,\!5455& 0,\!4545& 7&-1,\!3333& 0,\!0005\\\hline 2&-1,\!4413& 0,\!1042& 8&-1,\!3299& 0,\!00034\\\hline 3&-1,\!3911& 0,\!0502& 9&-1,\!3279& 0,\!002\\\hline 4&-1,\!3637& 0,\!0274& 10&-1,\!3267& 0,\!0012\\\hline 5&-1,\!348& 0,\!0157& 11&-1,\!3259& 0,\!0008\\\hline \end{array}[/math]

При [math]\varepsilon=0,\!01[/math] получено решение [math]x_{\ast}\cong-1,\!3388[/math], а при [math]\varepsilon=0,\!001[/math] — решение [math]x_{\ast}\cong-1,\!3259[/math]. Очевидно, по сравнению с методом Ньютона сходимость замедляется (см. пример 3.12).




Метод Ньютона-Бройдена


Этот метод позволяет увеличить скорость сходимости последовательных приближений благодаря использованию формулы


[math]x^{(k+1)}= x^{(k)}-c_k\cdot \frac{f(x^{(k)})}{f'(x^{(k)})},\quad k=0,1,2,\ldots[/math]
(3.20)

где [math]c_k[/math] — число, которое выбирается на каждой итерации так, чтобы уменьшить значение [math]\bigl|f(x^{(k+1)})\bigr|[/math] по сравнению с [math]\bigl|f(x^{(k)})\bigr|[/math]. При [math]c_k=1[/math] метод Ньютона-Бройдена совпадает с методом Ньютона.


Как правило, при плохой сходимости или ее отсутствии полагают [math]0<c_k<1[/math] (рис. 3.14,д), а при хорошей сходимости для [math]c_k=1[/math] полагают [math]c_k>1[/math] (это ускоряет сходимость (рис. 3.14,б)).


Сходимость при методе Ньютона-Бройдена

На рис. 3.14 прямоугольниками отмечены точки [math]x^{(1)}[/math], полученные при [math]c_0=1,~ \delta^{(k)}= \frac{f(x^{(k)})}{f'(x^{(k)})},~k=0,1,2,\ldots[/math], — поправка, соответствующая методу Ньютона, а точки [math]x^{(1)}=x^{(0)}-c_0\delta^{(0)}[/math] получены по методу Ньютона-Бройдена.




Тангенс угла наклона секущей

Метод секущих


В этом методе производная функции [math]f(x)[/math] подсчитывается с помощью конечно-разностных соотношений:


– в точке [math]x^{(0)}[/math] используется формула [math]f'(x^{(0)})\approx \frac{f(x^{(0)})-f(x^{(0)}-\delta)}{\delta}[/math], где [math]\delta[/math] — малая положительная величина;


– в точках [math]x^{(k)},~k=1,2,\ldots[/math], используется формула [math]f'(x^{(k)})\approx \frac{f(x^{(k)})-f(x^{(k-1)})}{x^{(k)}-x^{(k-1)}}[/math].


Вычисленное значение [math]f'(x^{(k)})[/math] определяет тангенс угла наклона секущей (рис. 3.15).


Методика применения метода секущих совпадает с описанной ранее, но вместо (3.14) используется формула


[math]x^{(k+1)}= x^{(k)}-\frac{f(x^{(k)})}{f(x^{(k)})-f(x^{(k-1)})}\cdot \bigl(x^{(k)}-x^{(k-1)}\bigr),\quad k=1,2,\ldots[/math]
(3.21)

Аппроксимация сеточной функции

Замечания


1. Метод секущих является более экономичным по сравнению с методом Ньютона по количеству функций, подлежащих расчету: на каждой итерации в методе секущих необходимо рассчитать только значение [math]f(x^{(k)})[/math], так как величина [math]f(x^{(k-1)})[/math] уже подсчитана на предыдущей итерации.


2. Метод секущих может применяться и для решения сеточных уравнений. Для сеточной функции производные в методе секущих определяются так же, но для определения [math]f(x^{(k)})[/math] в промежуточных точках осуществляется аппроксимация (как правило, интерполяция) функции [math]f(x_i)[/math] (рис. 3.16). На этом рисунке штриховой линией показана аппроксимационная кривая.


3. Для всех описанных модификаций скорость сходимости [math]p[/math] по сравнению с методом касательных снижается: [math]p<2[/math]. Однако для некоторых из них (метод секущих) значение [math]p>1[/math] и может достигать [math]p=1,\!5[/math].


Пример 3.16. Методом секущих найти корень уравнения [math]x^3-x+1=0[/math] с точностью [math]\varepsilon=0,\!001[/math].


▼ Решение

1. Зададим начальное приближение [math]x^{(0)}=-2[/math](см. пример 3.12).


2. Для вычисления [math]f'(x^{(0)})[/math] зададим [math]\delta=0,\!1[/math]. Тогда


[math]f'(x^{(0)})\cong \frac{f(-2)-f(-2,\!1)}{0,\!1}= \frac{-5-(-6,\!161)}{0,\!1}= 11,\!61.[/math]

Отсюда [math]x^{(1)}= x^{(0)}-\frac{f(x^{(0)})}{f'(x^{(0)})}=-2-\frac{-5}{11,\!61}=-1,\!36934[/math].


Дальнейшие расчеты выполняются по формуле (3.21):


[math]\begin{aligned}x^{(2)}&=x^{(1)}-\frac{f(x^{(1)})}{f(x^{(1)})-f(x^{(0)})}\cdot \bigl(x^{(1)}-x^{(0)}\bigr)=-1,\!56934-\frac{-1,\!29567}{3,\!704325}\cdot0,\!43066=-1,\!41871;\\[2pt] x^{(3)}&=x^{(2)}-\frac{f(x^{(2)})}{f(x^{(2)})-f(x^{(1)})}\cdot \bigl(x^{(2)}-x^{(1)}\bigr)=-1,\!41871-\frac{-1,\!43678}{0,\!858893}\cdot0,\!15063=-1,\!34211;\\[2pt] x^{(4)}&=x^{(3)}-\frac{f(x^{(3)})}{f(x^{(3)})-f(x^{(2)})}\cdot \bigl(x^{(3)}-x^{(2)}\bigr)=-1,\!34211-\frac{-1,\!07538}{0,\!361404}\cdot0,\!0766=-1,\!32613;\\[2pt] x^{(5)}&=x^{(4)}-\frac{f(x^{(4)})}{f(x^{(4)})-f(x^{(3)})}\cdot \bigl(x^{(4)}-x^{(3)}\bigr)=-1,\!32613-\frac{-1,\!00603}{0,\!069348}\cdot0,\!01598=-1,\!32474;\\[2pt] x^{(6)}&=x^{(5)}-\frac{f(x^{(5)})}{f(x^{(5)})-f(x^{(4)})}\cdot \bigl(x^{(5)}-x^{(4)}\bigr)=-1,\!32474-\frac{-1,\!000139}{0,\!005936}\cdot0,\!00139=-1,\!32472\cong x_{\ast}.\\[2pt] \end{aligned}[/math]

Результаты расчетов приведены в табл. 3.16.


[math]\begin{array}{|c|c|c|c|c|c|c|c|} \multicolumn{8}{r}{\mathit{Table~3.16}}\\\hline k& 0& 1& 2& 3& 4& 5& 6\\\hline \begin{matrix}{}\\[-8pt]{}\end{matrix} x^{(k)}&-2,\!00000&-1,\!56934&-1,\!41871&-1,\!34211&-1,\!32613&-1,\!32474&-1,\!32472\\\hline \begin{matrix}{}\\[-8pt]{}\end{matrix} \bigl|x^{(k)}-x^{(k-1)}\bigr|&-& 0,\!43066& 0,\!15063& 0,\!07660& 0,\!01598& 0,\!00139& 0,\!00002 \\\hline \end{array}[/math]

Очевидно, метод сходится чуть хуже метода Ньютона (см. пример 3.12), однако скорость сходимости выше линейной.


Часовой пояс: UTC + 4 часа [ Летнее время ]


Яндекс.Метрика

Copyright © 2010-2016 MathHelpPlanet.com. All rights reserved