Квант

16

Метод интерации

Член-корреспондент АПН СССР
В. Г. БОЛТЯНСКИЙ

I

Несколько тысячлетий назад в Древнем Вавилоне был изобретен простой способ приближенного вычисления квадратных корней.

Пусть мы хотим вычислить a\sqrt{a} (где a>0a > 0), то есть найти положительный корень уравнения x2=ax^2 = a.

Это уравнение равносильно следующему:

x=ax.x = \frac{a}{x}.

(1)

Предположим теперь, что мы имеем некоторое приближение x0x_0

числа a\sqrt{a}. Согласно (1), x0x_0 надо сравнить с числом ax0\frac{a}{x_0}: ведь если x0x_0 и ax0\frac{a}{x_0} совпадают, то x0x_0 — точное значение a\sqrt{a}. Если, однако, x0≠ax_0 \neq \sqrt{a}, то одно из чисел x0x_0, ax0\frac{a}{x_0} меньше, а другие больше, чем a\sqrt{a} (поскольку произведение этих чисел равно aa), то есть a\sqrt{a} лежит между x0x_0 и ax0\frac{a}{x_0}. Можно предложить, что среднее арифметическое этих чисел

x1=12(x0+ax0)x_1 = \frac{1}{2} \left( x_0 + \frac{a}{x_0} \right)

является лучшим приближением числа a\sqrt{a}, чем исходное приближение x0x_0.

Это приближение x1x_1 можно улучшить таким же способом, то есть взять среднее арифметическое чисел x1x_1 и ax1\frac{a}{x_1}

x2=12(x1+ax1),x_2 = \frac{1}{2} \left( x_1 + \frac{a}{x_1} \right),

затем можно взять среднее приближение

x3=12(x2+ax2)x_3 = \frac{1}{2} \left( x_2 + \frac{a}{x_2} \right)

и так далее.

Какова точность вывилонского способа? Для ответа на этот вопрос проведем следующие вычисления:

xn−a=12(xn−1+axn−1)−a=x_n - \sqrt{a} = \frac{1}{2} \left( x_{n-1} + \frac{a}{x_{n-1}} \right) - \sqrt{a} =

17

12(xn−1−axn−1)2=12xn−1(xn−1−a)2.(2)\frac{1}{2} \left( \sqrt{x_{n-1}} - \sqrt{\frac{a}{x_{n-1}}} \right)^2 = \frac{1}{2x_{n-1}} \left( x_{n-1} - a \right)^2. \quad (2)

Равенство (2) дает возможность выразить ошибку приближения xnx_n (то есть число ∣xn−a∣|x_n - \sqrt{a}|) через ошибку предыдущего приближения xn−1x_{n-1}.

Задание

  1. Докажите, что все приближения числа a\sqrt{a}, найденные по вавилонскому способу, кроме, быть может, начального приближения x0>0x_0 > 0, является приближением с избытком.
  2. Докажите, что при любом x0>0x_0 > 0 последовательность (xn)(x_n) приближений, найденных по вавилонскому способу, стремится к a\sqrt{a}.
  3. К какому предely будет стремиться эта последовательность, если в качестве x0x_0 взять некоторое отрицательное число?

Чтобы оценить, насколько быстро числа x0,x1,x2,…x_0, x_1, x_2, \dots приближются к a\sqrt{a}, вычислим 19\sqrt{19}, взяв начальное приближение x0=4x_0 = 4. Вооружившись микрокалькулятором∗^*), находим

x0=4,0000000;x1=4,3750000;x2=4,3589285;x3=4,3588989;x4=4,3588989.x_0 = 4,0000000; \quad x_1 = 4,3750000; \quad x_2 = 4,3589285; \quad x_3 = 4,3588989; \quad x_4 = 4,3588989.

Как видим, уже четвертое приближение не отличается (при вычислениях с семью знаками после запятой) от третьего. Естественно приять, что 19≈4,3588989\sqrt{19} \approx 4,3588989.

Читатель может возразить, что незачем было «огород городить»: имея в руках микрокалькулятор, можно было набрать число 19 и затем, нажав всего одну кнопку 19\sqrt{19}, сразу получить тот же результат 19≈4,3588989\sqrt{19} \approx 4,3588989. Однако согласитесь, что нас интересало не столько значение 19\sqrt{19}, сколько достоинства вавилонского способа. Они оказывались весмя значительными: уже после третьего повторения одотипной операции (или, как говоря, после третьей utepaши) мы получили значение 19\sqrt{19} с семью верными знаками (см. задачу 4).

∗^* Тем, у кого микрокалькулятор под рукой нет, придетя либо считать вручную, либо поверить написанному.

3 задачи
4. Пусть, применяя вавилонский способ, мы вычисляем последовательные приближения x0>0,x1,x2,…x_0 > 0, x_1, x_2, \dots числа a\sqrt{a} с kk знаками после запятой, то есть okругляем каждый раз (k+1)(k+1)-ю цифру. Докажите, что если приближения стабилизируются в точке xnx_n (то есть xn+1=xnx_{n+1} = x_n с точностью до 10−k10^{-k}, но xn≥xn−1+10−kx_n \geq x_{n-1} + 10^{-k}), то ошибка приближения a≈xn\sqrt{a} \approx x_n меньше 0,75 ⋅10−k\cdot 10^{-k}.
5. Сколько интересный нужно сделать, чтобы провода вычисления по вавилонскому способу с kk знаками после запятой, получить число a\sqrt{a} с kk верными знаками после запятой?

Что бы показать читателю превосходство человекаского интеллекта над любой машиной (в частности, над микрокалькулятором, который лишь выполняет волю человека, является его помощью), мы проведем вычисления с пятнадцатью знаками после запятой. С этой целью применяют найденное приближение числа 19\sqrt{19} за новое исходное приближение x0x_0 (то есть положим x0=4,3588989x_0 = 4,3588989) и вычислим по вавилонскому способу следующее приближение x1=12(x0+19x0)x_1 = \frac{1}{2} \left( x_0 + \frac{19}{x_0} \right). Положим 19x0=x0+h\frac{19}{x_0} = x_0 + h, то есть

19=(x0)2+x0h.(3)19 = (x_0)^2 + x_0 h. \quad (3)

Мы имеем

(x0)2=(4,3588989)2=(4,358+8,989⋅10−4)2=4,3582+2⋅4,358⋅8,989⋅10−4+8,9892⋅10−8.(x_0)^2 = (4,3588989)^2 = (4,358 + 8,989 \cdot 10^{-4})^2 = 4,358^2 + 2 \cdot 4,358 \cdot 8,989 \cdot 10^{-4} + 8,989^2 \cdot 10^{-8}.

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

18,9921640,00783481240,0000008080212118,992164 \quad 0,0078348124 \quad 0,00000080802121

мы можем (вручную, что совсем несложно) найти их сумму.

(x0)2=19−37,957879⋅10−8(x_0)^2 = 19 - 37,957879 \cdot 10^{-8}

и потому, подставляя в (3), имеем

4,3588989h=37,957879⋅10−8,4,3588989 h = 37,957879 \cdot 10^{-8},

откуда (с помощью микрокалькуля-

21

довательных приближений — в этом состоянии другая причина того, что при решении практических задач вычислители ограничиваются нахождения установившихся значений с помощью ЭВМ, производящих вычисления с достаточно большим числом знаков. Трудно сказать, что лучше: tratить дорогое машинное время на проверку точности решения как одной задачи или решать большое количество практических задач, получая «как правило» хорошего точность решения…

Задача и

  1. Примените метод интераций к управлению (6), где f(x)=0,9999x+0,0004f(x)=0,9999x+0,0004. Докажите, что если интерационный процесс решения, проводимый с четырьмя знаками после запятой, останавливается в точке xnx_n, то ошибка приближения x∗≈xnx^* \approx x_n применено равна единице, то есть комнительны не только знаки после запятой, но и целая часть приближения xnx_n. (Эти сообщения и использованы при построении примера 1; в этом примере 0,9999<f′(x)<10,9999<f'(x)<1 при x>0,12x>0,12.)

  2. Пусть функция ff удовлетворяет условиям f(a)>af(a)>a, f(b)<bf(b)<b и ∣f′(x)∣<q<1|f'(x)|<q<1 при x∈[a;b]x \in [a; b]. Тогда уравнение (6) имеет на отрезке [a;b][a; b] единственный корень x∗x^*. Докажите, что при решении уравнения (6) метод интераций

∣xn+1−xn∣≤∣x1−x0∣⋅qn|x_{n+1}-x_n| \leq |x_1-x_0| \cdot q^n

∣x∗−xn∣≤∣x1−x0∣⋅qn1−q.|x^*-x_n| \leq |x_1-x_0| \cdot \frac{q^n}{1-q}.

  1. Примените эти оценки к функция (5).

  2. Решите метод интераций уравнения 0,6095+0,274sin⁡x=x0,6095+0,274 \sin x=x (пользовясь микрокалькулятором). После скольких интераций процесс останавливается? Сколько верных знаков имеет полученное приближение?

  3. Решите метод интераций уравнения 1+x=x\sqrt{1+x}=x, взяв x0=0x_0=0. Сравните полученный результат с корнем, получаемым при «обчислом» решения этого irrationalного уравнения. Докажите, что nn-е приближение имеет вид

xn=1+1+…+1(n единиц).x_n = \sqrt{1 + \sqrt{1 + \ldots + \sqrt{1}}} \quad (n \text{ единиц}).

IV

В задачах 8, 10 и 15 указаны условия, при выполнении которых метод интераций завершено приводит к цели. А как бы, если эти условия не выполнены?

Пусть рассматривается уравнение g(x)=0g(x)=0, где g(a)<0g(a)<0, g(b)>0g(b)>0, функция gg имеет на отрезке [a;b][a; b] непрерывную производную и g′(x)>0g'(x)>0 при x∈[a;b]x \in [a; b]. Таким образом, функция gg возвращает на отрезке [a;b][a; b], и уравнение g(x)=0g(x)=0 имеет на этом отрезке единственный корень x∗x^*. Что бы сделать применим метод интераций, обозначим через p1p_1 и p2p_2 такие положительные числа, что p1≤g′(x)≤p2p_1 \leq g'(x) \leq p_2 на отрезке [a;b][a; b]. Затем темп теперь уравнение g(x)=0g(x)=0 равносильным ему уравнением x+a⋅g(x)=xx+a \cdot g(x)=x, где aa подберем так, чтобы функция

f(x)=x+a⋅g(x)f(x)=x+a \cdot g(x)

удовлетворяла условиям задачи 15. (Проверьте, что это будет, например, при a=−2p1+p2a=-\frac{2}{p_1+p_2}, q=p2−p1p2+p1q=\frac{p_2-p_1}{p_2+p_1}.) Таким образом, мы заменили уравнение g(x)=0g(x)=0 на равносильное уравнение f(x)=xf(x)=x, к которым метод интераций уже применим.

Если g′(x)<0g'(x)<0 при x∈[a;b]x \in [a; b] применим тот же прием. (В этом случае p1p_1 и p2p_2 отрицательны и a=−2p1+p2>0a=-\frac{2}{p_1+p_2} > 0.)

Пример 2. Решим метод интераций уравнения

x2−x=cos⁡x.x^2-x=\cos x.

При 0≤x≤10 \leq x \leq 1 левая часть неположителя, а правая положителя; поэтому на отрезке [0;1][0; 1] корней нет. Переписав уравнение в виде

x2−x−cos⁡x=0,x^2-x-\cos x=0,

замечаем, что функция gg, стояшая влевой части, имеет производную g′(x)=2x−1+sin⁡xg'(x)=2x-1+\sin x, которая при x≥1x \geq 1 положительная, то есть gg возвращает на [1;+∞][1; +\infty]. Поскольку g(1)<0g(1)<0 и g(2)>0g(2)>0, на луче [1;+∞][1; +\infty] имеетровно один корень расматриемого уравнения, причем он расположен на отрезке [1,2][1, 2]. С помощью микрокалькутора на отрезке [1,2;1,3][1, 2; 1, 3]. Функция g′g' возвращает на [1;+∞][1; +\infty] (поскольку ее производная g′′(x)=2+cosxg''(x)=2+cos x положительная). Следовательно, p1≤g′(x)≤p2p_1 \leq g'(x) \leq p_2 на отрезке [1,2;1,3][1, 2; 1, 3], где p1=g′(1,2)≈2,332p_1=g'(1,2) \approx 2,332, p2=g′(1,3)≈2,564p_2=g'(1,3) \approx 2,564. Таким образом, a=−2p1+p2≈−0,401a=-\frac{2}{p_1+p_2} \approx -0,401. Взяв для простоты a=−0,4a=-0,4, получаем уравнение (Окончание см. на с. 37)