ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1...

152
ЯРОШЕВИЧ В.А. ЧИСЛЕННЫЕ МЕТОДЫ Лекции, практические занятия, лабораторный практикум Версия 1.26 (17.04.2017) МПиТК, 2-ой курс МИЭТ 2017

Transcript of ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1...

Page 1: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

ЯРОШЕВИЧ В.А.

ЧИСЛЕННЫЕ МЕТОДЫ

Лекции, практические занятия, лабораторный практикум

Версия 1.26 (17.04.2017)

МПиТК, 2-ой курс

МИЭТ — 2017

Page 2: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Оглавление

1 Лекции 61.1 Лекция 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.2 Лекция 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.2.1 Метод деления отрезка пополам. . . . . . . . . . . . . 131.2.2 Метод простых итераций (МПИ). . . . . . . . . . . . . 141.2.3 Метод Ньютона. . . . . . . . . . . . . . . . . . . . . . 181.2.4 Метод секущих . . . . . . . . . . . . . . . . . . . . . . 22

1.3 Лекция 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241.3.1 Интерполяция многочленами . . . . . . . . . . . . . . 24

1.4 Лекция 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301.4.1 Многочлены Чебышёва. . . . . . . . . . . . . . . . . . 301.4.2 Среднеквадратическое приближение (метод наимень-

ших квадратов) . . . . . . . . . . . . . . . . . . . . . . 331.4.3 Многочлены Эрмита . . . . . . . . . . . . . . . . . . . 351.4.4 Интерполяция кубическими сплайнами . . . . . . . . 36

1.5 Лекция 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381.5.1 Кусочная интерполяция (КИ) . . . . . . . . . . . . . . 381.5.2 Другие способы интерполяции . . . . . . . . . . . . . 391.5.3 Обратная интерполяция . . . . . . . . . . . . . . . . . 401.5.4 Численное дифференцирование (ЧД) с помощью мно-

гочлена Лагранжа. . . . . . . . . . . . . . . . . . . . . 401.5.5 Метод неопределённых коэффициентов. . . . . . . . . 411.5.6 Разложение в ряд Тейлора. . . . . . . . . . . . . . . . 42

2

Page 3: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Оглавление 3

1.5.7 Неустойчивость формул численного дифференциро-вания . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

1.5.8 Метод Рунге. . . . . . . . . . . . . . . . . . . . . . . . 451.6 Лекция 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

1.6.1 Формула прямоугольников . . . . . . . . . . . . . . . 471.6.2 Формула трапеций . . . . . . . . . . . . . . . . . . . . 481.6.3 Формула Симпсона . . . . . . . . . . . . . . . . . . . . 49

1.7 Лекция 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531.7.1 Метод Рунге . . . . . . . . . . . . . . . . . . . . . . . 531.7.2 Оценка погрешности . . . . . . . . . . . . . . . . . . . 541.7.3 Формулы Ньютона–Котеса . . . . . . . . . . . . . . . 56

1.8 Лекция 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591.8.1 Устойчивость квадратурных формул к погрешностям

входных данных . . . . . . . . . . . . . . . . . . . . . 611.8.2 Приёмы вычисления несобственных интегралов . . . 63

1.9 Лекция 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661.9.1 Элементы линейной алгебры . . . . . . . . . . . . . . 661.9.2 Численные методы и линейная алгебра . . . . . . . . 681.9.3 Прямые методы решения СЛАУ . . . . . . . . . . . . 691.9.4 Погрешность численного решения СЛАУ . . . . . . . 721.9.5 Итерационные методы решения СЛАУ . . . . . . . . . 76

1.10 Метод Прогонки. . . . . . . . . . . . . . . . . . . . . . . . . . 851.11 Численное решение дифференциальных уравнений . . . . . 89

2 Практические занятия 972.1 Занятие 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

2.1.1 Ошибки в вычислениях, числа с плавающей точкой . 972.1.2 Матричные вычисления в Matlab . . . . . . . . . . . 99

2.2 Занятие 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1032.2.1 Метод дихотомии. . . . . . . . . . . . . . . . . . . . . 1032.2.2 Метод простых итераций. . . . . . . . . . . . . . . . . 104

Page 4: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Оглавление 4

2.2.3 Метод Ньютона. . . . . . . . . . . . . . . . . . . . . . 1072.3 Занятие 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

2.3.1 Интерполяция по Лагранжу и Ньютону. Оценка оста-точного члена. . . . . . . . . . . . . . . . . . . . . . . 108

2.3.2 Многочлены Чебышева . . . . . . . . . . . . . . . . . 1092.4 Занятие 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

2.4.1 Среднеквадратическое приближение . . . . . . . . . . 1122.4.2 Численное дифференцирование . . . . . . . . . . . . . 113

2.5 Занятие 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162.5.1 Численное дифференцирование (продолжение) . . . . 1162.5.2 Численное интегрирование . . . . . . . . . . . . . . . 118

2.6 Занятие 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1212.6.1 Численное интегрирование (продолжение) . . . . . . 1212.6.2 Матричные вычисления . . . . . . . . . . . . . . . . . 123

2.7 Занятие 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1262.7.1 Решение дифференциальных уравнений . . . . . . . . 126

3 Лабораторный практикум 1293.1 ЛР 1. Распространение ошибок в вычислительных процеду-

рах. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1293.2 ЛР 2. Методы дихотомии, Ньютона, простых итераций. . . . 1333.3 ЛР 3. Интерполяция функций. Полиномы Лагранжа, Нью-

тона. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1353.4 ЛР 4. Дифференцирование функции, заданной таблично. . . 1373.5 ЛР 5. Интегрирование функций. Формулы трапеций, Симп-

сона. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1393.6 ЛР 6. Решение систем линейных уравнений. . . . . . . . . . 1403.7 ЛР 7. Метод Эйлера. Схемы Рунге-Кутта решения ОДУ. . . 141

4 Приложения 1454.1 Список тем для реферативно-расчётной работы . . . . . . . 1454.2 Определитель Вандермонда . . . . . . . . . . . . . . . . . . . 146

Page 5: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Оглавление 5

4.3 Ряд Тейлора . . . . . . . . . . . . . . . . . . . . . . . . . . . 1484.4 Модифицированный метод Ньютона . . . . . . . . . . . . . . 148

Литература 152

Page 6: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Глава 1

Лекции

1.1 Лекция 1

ïîãðåøíîñòüìàò. ìîäåëüèçìåðåíèÿ÷èñëåííûéìåòîä óñòîé÷èâûéíåóñòîé÷èâûéîêðóãëåíèå÷èñåë îáðåçàíèå ïðè ââîäåäëèííîãî äåéñòâèò. ÷èñëàîêðóãëåíèå ïðèàðè�ì. îïåðàöèÿõ

Редкая техническая, инженерная, физическая задача может быть ре-шена точно и иметь «краcивый» ответ. В практической деятельности че-ловеку часто бывает достаточно иметь приближение к точному ответу снекоторой допустимой погрешностью.

Поэтому, разработка способов вычислений волновало умы многих вид-ных математиков. Можно упомянуть методы, названные в честь Ньютона,Лагранжа, Чебышёва.

Итак, численные методы имеют дело с приближёнными вычислениями.Важно понимать какая ошибка может быть в итоге допущена. Основныеисточники ошибок:

1. Ошибка математической модели. Например, планету Земля можнорассматривать как плоскость, если речь идет о расстояниях < 25 км.

6

Page 7: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 1 7

В других случаях следует рассматривать Землю как шар со радиусом6371 км. Более точная модель будет эллипсоидом (большая полуось6378 км, малая полуось 6357 км). Самая точная модель — это геоид(напоминает форму груши). Все модели содержат погрешность, кото-рой можно пренебречь в одном случае и нельзя в другом.

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

3. Погрешность численного метода. Например, интеграл заменяется ко-нечной суммой (

∫→∑

), производная заменяется разделённой разно-стью (f ′ → ∆y/∆x).

4. Ошибка округления. Как правило целочисленных вычислений не хва-тает для практических нужд. Приходится работать с действительны-ми числами R. Компьютер воспринимает числа в позиционной системес основанием 2. Понятно, что в этом случае иррациональные числа ичасть рациональных чисел невозможно точно представить двоичнымчислом конечной длины. Кроме того, если под число отводится фик-сированное число ячеек в памяти компьютера, то некоторые близкиечисла x, y ∈ R станут неотличимы в памяти компьютера (действи-тельно, в 8 байтах можно разместить не более 264 различных чисел, а|R| =∞). В итоге, уже при вводе данных в компьютер будет допуще-на ошибка округления (в Matlab около 15–16 десятичных разрядов).Задача математика состоит в том, чтобы по окончании вычисленийфинальная относительная ошибка в ответе имела порядок малостиблизкий к порядку малости относительной ошибки исходных данных,либо не превышала заданный порог ε.

Рассмотрим более подробно последний пункт.Число в позиционной системе счисления с основанием p представляет

из себя слово в алфавите {a0, a1, . . . , ap−1, запятая}, где ai принято назы-вать цифрами. Запятая может встречаться только один раз. Она отделяетцелую часть числа от дробной. Чем больше позиций между цифрой и за-

Page 8: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 1 8

пятой, тем больший (если цифра слева от запятой) или меньший (еслицифра справа от запятой) «вес» имеет цифра в числе. То есть важны нетолько цифры, но и их позиции. Отсюда происходит название «позицион-ная».

Примеры:

123, 4510 = 1 · 102 + 2 · 101 + 3 · 100︸ ︷︷ ︸целая часть

+ 4 · 10−1 + 5 · 10−2︸ ︷︷ ︸дробная часть

,

1F16 = 1 · 161 + 15 · 160,

101, 112 = 1 · 22 + 0 · 21 + 1 · 20︸ ︷︷ ︸целая часть

+ 1 · 2−1 + 1 · 2−2︸ ︷︷ ︸дробная часть

.

Отклонение по абсолютной величине точного значения некоторой вели-чины x от приближённого значения x называется абсолютной ошибкой∆x = |x − x|. Отношение |x − x|/|x| абсолютной ошибки к величине xназывается относительной погрешностью.

Округление при сложении. Пусть требуется найти сумму пяти четы-рехразрядных чисел: S = 0.2764+0.3944+1.475+26.46+1364. Складываявсе эти числа, а затем округляя полученный результат до четырёх зна-чащих цифр, получаем S = 1393. Однако при вычислении на компьюте-ре округление происходит после каждого сложения. Предполагая условномантиссу четырехразрядной, проследим за вычислением на компьютересуммы чисел от наименьшего к наибольшему, т. е. в порядке их записи:0.2764 + 0.3944 = 0.6708, 0.6708 + 1.475 = 2.156, 2.156 + 26.46 = 28.62,28.62 + 1364 = 1393; получили S1 = 1393, т. е. верный результат. Изменимтеперь порядок вычислений и начнём складывать числа последователь-но от последнего к первому: 1364 + 26.46 = 1390, 1390 + 1.475 = 1391,1391 + 0.3944 = 1391, 1391 + 0.2764 = 1391; здесь окончательный резуль-тат S2 = 1391, он менее точный. Вывод: в сумме слагаемые желательноупорядочить в порядке возрастания их абсолютных величин.

Рассмотрим важный пример — использование рядов для вычислениязначений функций. Запишем, например, разложение функции sinx по сте-

Page 9: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 1 9

пеням аргумента:

sinx = x− x3

3!+x5

5!− x7

7!+ . . .

За приближённое значение sinx можно принять сумму первых N слагае-мых ряда. При этом остаток суммы ряда не должен превышать величинупогрешности. Это означает, что слагаемое

uk =x2k−1

(2k − 1)!(1.1)

для k > N тоже должно быть мало. Попробуем вычислить одно и то жезначение синуса для различных аргументов:

sinπ

6= sin

(π6

+ 2π)

= sin(π

6+ 8π

)=

1

2.

Заметим, чтоπ

6≈ 0, 5235,

π

6+ 2π ≈ 6.8068,

π

6+ 8π ≈ 25.6563. Для вы-

полнения условия uk → 0, необходимо, чтобы факториал в знаменателепревысил числитель. На рис. 1.1 столбиками обозначены слагаемые uk.Хорошо видно, что чем больше аргумент x, тем длиннее будет начальнаясумма ряда для заданной точности. В случае x = π/6 достаточно ужеu1 + u2 + u3. Для π/6 + 2π потребуется u1 + . . . + u11 или даже больше.Для π/6 + 8π ситуация ещё хуже, нужно более 20 слагаемых. Очевидно,для вычисления sinx выгодно иметь дело с самым малым возможным ар-гументом. Кроме этого при больших аргументах слагаемые ряда имеютсущественно различный порядок (например, для x = π

6 + 8π это u1 ∼ 100

и u14 ∼ 1010). Это может вызвать потерю значащих цифр при округлениизначения мантиссы.

Для тригонометрических функций можно использовать формулы при-ведения, благодаря чему аргумент будет находится на отрезке [0, 1]. Привычислении экспоненты аргумент x можно разбить на сумму целой и дроб-ной частей (ex = en+a = en · ea, 0 < a < 1) и использовать разложение вряд только для ea, а en вычислять умножением. Таким образом, при ор-ганизации вычислений можно своевременно обойти «подводные камни»,дающие потерю точности.

Page 10: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 1 10

-0,1

0

0,1

0,2

0,3

0,4

0,5

0,6

u1 u2 u3

-150

-100

50

0

50

100

150

u1 u2 u3 u4 u5 u6 u7 u8

−1, 5 · 1010

−1 · 1010

−0, 5 · 1010

0 · 1010

0, 5 · 1010

1 · 1010

1, 5 · 1010

u3 u7 u11 u15 u19

à) á) â)

ïîðÿäêèñèëüíî

îòëè÷àþòñÿ

Рис. 1.1: Слагаемые в начальных суммах разложения sinx: a) x = π6 ≈

0, 5235; b) x = π6 + 2π ≈ 6.8068; c) x = π

6 + 8π ≈ 25.6563.

Устойчивость. Пусть в результате решения задачи по исходному значе-нию некоторой величины x находится значение искомой величины y. Еслиисходная величина имеет абсолютную погрешность ∆x, то решение имеетпогрешность ∆y. Задача называется устойчивой по исходному параметруx, если решение y непрерывно от него зависит, т. е. малое приращение ис-ходной величины ∆x приводит к малому приращению искомой величины∆y. Другими словами, малые погрешности в исходной величине приводятк малым погрешностям в решении.

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

Приведем пример неустойчивой задачи. Рассмотрим квадратное урав-нение с параметром a

x2 − 2x+ sign a = 0, sign a =

{1, a > 0,

−1, a < 0.

Решение этого уравнения в зависимости от значения a таково: x1 = x2 = 1

при a > 0; x1,2 = 1±√

2 при a < 0. Очевидно, что при a = 0 сколь угодно

Page 11: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 1 11

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

Определение 1. Задача называется поставленной корректно, если длялюбых значений исходных данных из некоторого класса её решение 1) су-ществует, 2) единственно и 3) устойчиво по исходным данным.

Неустойчивость методов. Иногда при решении корректно поставлен-ной задачи может оказаться неустойчивым метод её решения. Такие слу-чаи имели место при вычислении синуса большого аргумента, когда былполучен результат, не имеющий смысла. Рассмотрим ещё один примернеустойчивого алгоритма. Построим численный метод вычисления инте-грала

In =

1∫0

xnex−1 dx, n = 1, 2, . . .

Интегрируя по частям, находим

I1 =1∫0

xex−1 dx = xex−1∣∣10−

1∫0

ex−1 dx =1

e,

I2 =1∫0

x2ex−1 dx = x2ex−1∣∣10− 2

1∫0

xex−1 dx = 1− 2I1,

· · ·

In =1∫0

xnex−1 dx = xnex−1∣∣10− n

1∫0

xn−1ex−1 dx = 1− nIn.

Заметим, что подынтегральная функция на всем отрезке интегрирова-ния неотрицательна, следовательно, и значение интеграла — положитель-ное число. Более того, подынтегральная функция на данном интервалеограничена функцией y = 1, т.е. значение интеграла не может превышатьединицы. Однако если вычислить по этой формуле значение интеграла торезультат будет неверным.

На рис. 1.2 n-ый столбик обозначает In. Причём чёрный столбик — этоIn, вычисленный по только что изложенному рекурсивному методу, а се-рый — это In, вычисленный по более устойчивому методу конечных сумм.

Page 12: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 1 12

0, 00

0, 05

0, 10

0, 15

0, 20

0, 25

0, 30

0, 35

0, 40

I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12 I13 I14 I15 I16 I17 I18

óñòîé÷èâûé ìåòîä

ðåêóðñèÿ

Ïîðÿäêè îøèáêè è

èíòåðãàëà ñîâïàëè

Рис. 1.2: Высичление интеграла устойчивым методом и рекурсией

Видно, что I17 немного отклоняется от точного решения, а In при n > 18

уже нельзя считать решением. Исследуем источник погрешности. Макси-мальная абсолютная погрешность при вычислении I1 равна 0, 5 · 253 ≈5 · 10−17 (компьютер «обрезал» иррациональное число 1/e до 16 десятич-ных разрядов мантиссы). Однако на каждом этапе эта погрешность умно-жается на число, модуль которого больше единицы (−2,−3, . . . ,−18), чтов итоге даёт 18! ≈ 6, 4 · 1015. Это и приводит к результату, не имеющемусмысла. Здесь снова причиной накопления погрешностей является алго-ритм решения задачи, который оказался неустойчивым.

Page 13: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 2 13

1.2 Лекция 2

ìåòîäûðåøåíèÿíåëèíåéíûõóðàâíåíèéäåëåíèåîòðåçêàïîïîëàììåòîäïðîñòûõèòåðàöèé

ìåòîäÍüþòîíàìåòîä Íüþòîíàñ �èêñèðîâàííîéïðîèçâîäíîéìåòîäñåêóùèõ1.2.1 Метод деления отрезка пополам.

Другое название метода — дихотомия от греческих слов διχα «надвое»и τoµη «деление». ââîä (a, b, ε)

b− a 6 ε

c = (b+ a)/2

f(a)f(b) < 0 b = c

a = c

x = a

x = c

âûâîä xñòîï>

<=6

Рис. 2.1: Блок–схема метода деления отрезка пополам

После каждой итерации длина отрезка сокращается вдвое. Следова-тельно, на n-ой итерации длина отрезка будет (b − a)/2n. Если заданаточность ε = |xb−x∗|, с которой нужно определить корень, то справедли-во, что ε 6 (b− a)/2n. Можно оценить число итераций n для достиженияточности ε:

n =

[log2

b− aε

]+ 1,

Page 14: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 2 14

где квадратные скобки [ · ] обозначают целую часть числа (например, [π] =

3, [−2,123] = −2).

1.2.2 Метод простых итераций (МПИ).

Заменим уравнение f(x) = 0 эквивалентным ему уравнением x = ϕ(x).Это можно сделать многими способами, например, положив ϕ(x) = x +

ψ(x)f(x), где ψ(x) — произвольная непрерывная знакопостоянная функ-ция. Выберем некоторое нулевое приближение x0 и вычислим дальнейшиеприближения по формулам

xn+1 = ϕ(xn), n = 0, 1, 2, . . .

Очевидно, если xn стремится к некоторому пределу x∗, то этот предел естькорень исходного уравнения.

Условия сходимости.

Определение 2.1. Функция s(x) называется липшиц-непрерывной с по-стоянной q на множестве X, если для всех x′, x′′ ∈ X выполняетсянеравенство

|s(x′)− s(x′′)| 6 q|x′ − x′′|. (2.1)

В дальнейшем в качестве X будем брать отрезок Ur(a) = {x : |x− a| 6r} длины 2r с серединой в точке a. Основные свойства МПИ перечислены вследующей теореме.

a x∗

a+ ra− r

öåíòð èíòåðâàëà êîðåíü

Ur(a) Теорема 2.2. Если ϕ(x) липшиц-непрерывнас постоянной q ∈ (0, 1) на отрезкеUr(a), причем |ϕ(a) − a| 6 (1 − q)r, тоуравнение x = ϕ(x) при любом началь-ном приближении x0 ∈ Ur(a):

1) имеет на отрезке Ur(a) единственное решение;

2) метод простой итерации xn+1 = ϕ(xn) сходится к x∗;

Page 15: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 2 15

3) для погрешности справедлива оценка

|xk − x∗| 6 qk|x0 − x∗|, k = 0, 1, 2, . . . (2.2)

Доказательство. Сначала докажем по индукции, что xk ∈ Ur(a), k =

1, 2, . . ., т. е. что метод простой итерации не выводит за пределы тогомножества, на котором ϕ(x) липшиц-непрерывна с постоянной q ∈ (0, 1).Предположим, что xj ∈ Ur(a) при некотором j > 0, и докажем, что тогдаxj+1 ∈ Ur(a). Из равенства

xj+1 − a = ϕ(xj)− a = (ϕ(xj)− ϕ(a)) + (ϕ(a)− a)

получим|xj+1 − a| 6 |ϕ(xj)− ϕ(a)|+ |ϕ(a)− a|.

Учитывая условие липшиц-непрерывности, предположение индукции иусловие |ϕ(a)− a| < (1− a)r, имеем

|ϕ(xj)− ϕ(a)|л.-непр.

6 q|xj − a|предп. инд.

6 qr,

|xj+1 − a| 6 qr + (1− q)r 6 r,

т.е. xj+1 ∈ Ur(a).Оценим теперь разность двух соседних итераций xj+1 − xj. Имеем

xj+1 − xj = ϕ(xj)− ϕ(xj−1),

и поскольку все точки xj, j = 1, 2, . . ., находятся на отрезке Ur(a), полу-чаем оценку

|xj+1 − xj|л.-непр.

6 q|xj − xj−1|л.-непр.

6 q2|xj−1 − xj−2| 6 . . .

и, следовательно,

|xj+1 − xj| 6 qj|x1 − x0|, j = 1, 2, . . . (2.3)

Оценка (2.3) позволяет доказать фундаментальность последовательности{xk}. Действительно, пусть p — любое натуральное число. Тогда

xk+p − xk =

p∑j=1

(xk+j − xk+j−1),

Page 16: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 2 16

и согласно (2.3) имеем т. e.

|xk+p − xk| 6 |x1 − x0|p∑j=1

qk+j−1 = qk1− qp1− q |x1 − x0| 6

qk

1− q|x1 − x0|,

т.е.

xk+p − xk 6qk

1− q|x1 − x0|, k, p = 1, 2, . . .

Поскольку правая часть последнего неравенства стремится к нулю приk → ∞ и не зависит от p, последовательность {xk} является фундамен-тальной. Следовательно, существует

limk→∞

xk = x∗ ∈ Ur(a).

Переходя в xn+1 = ϕ(xn) к пределу при k →∞ и учитывая непрерывностьфункции ϕ(x), получим x∗ = ϕ(x∗), т. е. x∗ — решение уравнения x = ϕ(x).

Предположим, что x′∗ — какое-то ещё решение уравнения x = ϕ(x),принадлежащее отрезку Ur(a). Тогда

x∗ − x′∗ = ϕ(x∗)− ϕ(x′∗)

и по условию теоремы

|x∗ − x′∗| 6 q|x∗ − x′∗|.Так как q < 1, последнее неравенство может выполняться лишь при x′∗ =

x∗, т. е. решение единственно.Докажем оценку погрешности (2.2). Итерационное соотношение даёт

xk+1 − x∗ = ϕ(xk)− ϕ(x∗),

и так как xk, x∗ ∈ Ur(a), приходим к неравенству

|xk+1 − x∗| 6 q|xk − x∗|,справедливому для всех k = 0, 1, . . ., из которого и следует оценка (2.2).

Следствие (1). Если |ϕ′(x)| 6 q < 1 для всех x ∈ Ur(a), выполненоусловие |ϕ(a) − a| 6 (1 − q)r и x0 ∈ Ur(a), то уравнение x = ϕ(x) име-ет единственное решение x∗ ∈ Ur(a), метод xn+1 = ϕ(xn) сходится исправедлива оценка |xk − x∗| 6 qk|x0 − x∗|, k = 0, 1, 2, . . .

Page 17: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 2 17

Доказательство. Воспользуемся формулой конечных приращений:

ϕ(x′)− ϕ(x′′) = (x′ − x′′) · ϕ(ξ), ξ ∈ (x′, x′′).

Следовательно, ϕ(x) является липшиц-непрерывной на Ur(a). Все условиятеоремы выполняются.

Следствие (2). Пусть уравнение ϕ(x) = x имеет решение x∗, функцияϕ(x) непрерывно дифференцируема на отрезке

Ur(x∗) = {x : |x− x∗| 6 r}

и |ϕ′(x∗)| < 1. Тогда существует ε > 0 такое, что на отрезке Ur(x∗)уравнение ϕ(x) = x не имеет других решений и метод xn+1 = ϕ(xn)

сходится, если только x0 ∈ Uε(x∗).

Доказательство. Поскольку ϕ(x) непрерывно дифференцируема на от-резке Ur(x∗) и |ϕ′(x∗)| < 1, найдутся числа q ∈ (0, 1) и ε ∈ (0, r] такие, что|ϕ′(x)| 6 q < 1 для всех x ∈ Uε(x∗).

Оба следствия говорят о сходимости {xn} к корню x∗. При этом след-ствие 1 гарантирует существование и единственность корня в областиUr(a). Следствие 2, наоборот, требует от нас уверенности, что корень естьв области, где |ϕ′(x)| < 1.

Критерий останова. Вблизи корня итерации сходятся примерно какгеометрическая прогрессия со знаменателем q = (xn−xn−1)/(xn−1−xn−2).Чтобы сумма дальнейших её членов не превосходила ε, должен выпол-няться критерий сходимости∣∣∣∣∣∣qxn − xn−1

1− q

∣∣∣∣∣∣ =(xn − xn−1)

2

|2xn−1 − xn − xn−2|< ε.

При выполнении этого условия итерации можно прекращать.

Page 18: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 2 18

1.2.3 Метод Ньютона.

Пусть задано уравнение f(x) = 0. Запишем начальную сумму ряда Тей-лора для f(x):

f(x) ≈ f(x0) + (x− x0)f′(x0).

Заменим в исходном уравнении функцию f(x) полученным приближени-ем:

f(x0) + (x− x0)f′(x0) = 0.

Если теперь выразить x и затем сделать замену x0 → xn, x → xn+1,получим итерационный процесс

xn+1 = xn −f(xn)

f ′(xn). (2.4)

Мы получили определение метода Ньютона или метода касательных. По-следнее название обусловлено работой метода:

- из начального приближения xn строим перпендикуляр к оси абсциссдо пересечения с графиком функции f(x);

- через полученную точку пересечения проводим касательную к графи-ку f(x) до пересечения с осью абсцисс (точка xn+1);

- повторяем все сначала ...

Предполагая, что f(x) дважды непрерывно дифференцируема, напи-шем разложение в ряд Тейлора в корне x∗ в окрестности n-го приближе-ния:

f(x∗) = 0 = f(xn) + f ′(xn)(x∗ − xn) +1

2f ′′(ξn)(x∗ − xn)2,

где ξn ∈ [x∗, xn].Разделив последнее соотношение на f ′(xn) и перенеся первые два сла-

гаемых из правой части в левую, получим:[xn −

f(xn)

f ′(xn)

]− x∗ =

1

2

f ′′(ξn)

f ′(xn)(xn − x∗)2,

что, учитывая (2.4), переписываем в виде

xn+1 − x∗ =1

2

f ′′(ξn)

f ′(xn)(xn − x∗)2.

Page 19: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 2 19

Отсюда

|xn+1 − x∗| =1

2

|f ′′(ξn)||f ′(xn)|

|xn − x∗|2. (2.5)

Получаем оценку

|xn+1 − x∗| 61

2

M2

m1|xn − x∗|2,

где M2 = max[a,b]|f ′′(x)|, m1 = min

[a,b]|f ′(x)|.

Очевидно, ошибка на каждом шаге убывает, если

1

2

M2

m1|x0 − x∗| < 1

Требуется хорошее начальное приближение. На рис. 2.2 видно, как из-заплохого начального приближения метод Ньютона зацикливается.

bax∗

x

f(x)

Рис. 2.2: Пример плохого приближения в методе Ньютона

Теорема 2.3. Пусть задана функция f(x) и определён итерационныйпроцесс xk+1 = xk − f(xk)

f ′(xk). Если для всех x ∈ [a, b] справедливо одно изследующих:

1) f ′(x) > 0, f ′′(x) > 0 и x0 = b,2) f ′(x) < 0, f ′′(x) < 0 и x0 = b,

} тогда {xk}монотонно убывает исходится к x∗;

3) f ′(x) > 0, f ′′(x) < 0 и x0 = a,4) f ′(x) < 0, f ′′(x) > 0 и x0 = a,

} тогда {xk}монотонно возрастает исходится к x∗.

Page 20: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 2 20

x0 = bx1x2x∗

f ′ > 0f ′′ > 0

y

x

x0 = a x1 x2 x∗

f ′ < 0f ′′ > 0

y

x

x0 = bx1x2x∗

f ′ < 0f ′′ < 0

y

x

x0 = a x1 x2 x∗

f ′ > 0f ′′ < 0

y x

Рис. 2.3: Условия сходимости метода Ньютона

Page 21: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 2 21

Иллюстрация теоремы приведена на рис. 2.3. Поскольку формулировкии доказательства всех пунктов теоремы совершенно аналогичны, ограни-чимся доказательством первого пункта.

Доказательство. Монотонность последовательности {xk} докажем по ин-дукции. По условию x0 = b. Предположим, что для некоторого k > 0

выполняются неравенства x∗ < xk 6 b, и докажем, что тогда

x∗ < xk+1 < xk. (2.6)

Так как f(x∗) = 0 и xk+1 = xk − f(xk)f ′(xk) , то справедливо xk − xk+1 =

f(xk)−f(x∗)f ′(xk) . Воспользуемся формулой конечных приращений Лагранжа. То-

гда получим

xk − xk+1 =(xk − x∗)f ′(ξk)

f ′(xk), где ξk ∈ (x∗, xk). (2.7)

Пусть выполнены условия f ′(x) > 0 и f ′′(x) > 0. Тогда

0 <f ′(ξk)

f ′(xk)< 1,

причём последнее неравенство является следствием монотонного возрас-тания f ′(x). Таким образом,

0 <(xk − x∗)f ′(ξk)

f ′(xk)< xk − x∗,

и из (2.7) получим 0 < xk−xk+1 < xk−x∗, т.е. получим требуемое неравен-ство (2.6). Таким образом, последовательность {xk} монотонно убывает иограничена снизу числом x∗. Поэтому данная последовательность имеетпредел, который в силу непрерывности функции f(x) и условия f ′(x∗) 6= 0

совпадает с корнем x∗ уравнения f(x) = 0.

Определение 2. Число x∗ является корнем уравнения f(x) = 0 крат-ности p, если f(x∗) = f ′(x∗) = . . . = f (p−1)(x∗) = 0, но f (p)(x∗) 6= 0.

Корень кратности p = 1 называется простым.Только простой корень метод Ньютона находит быстро. Поиск крат-

ного корня сильно замедляется. Рассмотрим в качестве примера корень

Page 22: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 2 22

кратности 2 (то есть f(x∗) = f ′(x∗) = 0, но f ′′(x∗) 6= 0). Очевидно, ввыражении (2.5) производная f ′(xn) близка к 0. Разложим f ′(xn) в рядТейлора с центром в точке x∗:

f ′(xn) = f ′(x∗)︸ ︷︷ ︸=0

+f ′′(ηn)(xn − x∗) = f ′′(ηn)(xn − x∗),

где ηn ∈ [xn, x∗]. В итоге (2.5) можно переписать так:

|xn+1 − x∗| =1

2

|f ′′(ξn)||f ′(xn)|

|xn − x∗|2 =1

2

|f ′′(ξn)||f ′′(ηn)(xn − x∗)|

|xn − x∗|2 =

=1

2· |f

′′(ξn)||f ′′(ηn)|

· |xn − x∗|.

У множителя |xn − x∗| пропала степень 2. То есть скорость убыванияпогрешности стала линейной.

В случае кратного корня применяют модифицированный метод Ньюто-на: xn+1 = xn− pf(xn)

f ′(xn) , где p — кратность корня. Добавление коэффициен-та p сохраняет квадратичную скорость сходимости к корню. Обоснованиеэтого факта приведено в конце пособия в разделе «приложения».

Очевидным недостатком метода Ньютона является необходимость вы-числения производной на каждой итерации. Может оказаться, что на под-готовку очередного значения f ′(xn) уйдет слишком много машинного вре-мени и это перевесит выигрыш в малом числе итераций метода Ньютона.

Иногда упрощают вычисления, используя на каждой итерации значениепроизводной в точке x0 (заменяют f ′(xn) на f ′(x0)): xn+1 = xn− f(xn)

f ′(x0) . Это,к сожалению, лишает метод квадратичной скорости сходимости.

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

Очевидно, вблизи корня касательная к графику функции в точке (xn, f(xn))

и прямая, проходящая через точки (xn−1, f(xn−1)) и (xn, f(xn)) очень близ-ки. Можно приближённо считать

f ′(xn) ≈f(xn)− f(xn−1)

xn − xn−1.

Page 23: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 2 23

Последняя замена даёт метод секущих :

xn+1 = xn −f(xn)(xn − xn−1)

f(xn)− f(xn−1).

Скорость убывания погрешности в методе секущих q1,62n. Это выше линейной ско-рости qn, но меньше квадратичной q2n.

Метод Дихотомия Простые итерации Ньютон СекущиеУбывание ошибки (1/2)n qn, 0 < q < 1 q2n, 0 < q < 1 q1,62, 0 < q < 1

Page 24: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 3 24

1.3 Лекция 3

èíòåðïîëÿöèÿìí-í Ëàãðàíæà (Íüþòîíà)ìí-í Ýðìèòàêóñî÷íàÿ êóñî÷íî-ëèíåéíàÿêóñî÷íî-êâàäðàòè÷íàÿêóñî÷íî-êóáè÷åñêàÿñïëàéíû

1.3.1 Интерполяция многочленами

Пусть задана конечная таблицаx0 x1 x2 · · · xn

y0 y1 y2 · · · yn, где x0 < x1 < . . . <

xn, отражающая некоторую функциональную зависимость y(x). Такаятаблица может быть получена в ходе проведения эксперимента или в ре-зультате трудоёмких расчётов. Последнее означает, что получение значе-ние y(x), где x не содержится в таблице, может быть невозможно (напри-мер, если эксперимент уже закончен) или сопряжено с большими затрата-ми (например, несколько минут или часов машинного или человеческоговремени).

Но на практике нужно знать значение функции в точках отличных оттабличных. Различают два случая: определение y(x), где x ∈ [x0, xn] (ар-гумент x находится между табличными значениями) — это интерполяция;и определение y(x), где x /∈ [x0, xn] (аргумент x находится за пределамитабличных значений) — это экстраполяция.

Одним из широко используемых способов приближения функции, за-данной таблично в n+ 1 точке, есть приближение её многочленами степе-ни n.

Многочлен Лагранжа. Будем называть xi, i = 0, 1, . . . , n узлами ин-терполяции.

Page 25: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 3 25

Рассмотрим многочлен Pn(x) = anxn +an−1x

n−1 + . . .+a1x+a0 степенине выше n (некоторые коэффициенты, включая главный коэффициент,могут равняться нулю). Потребуем, чтобы Pn(x) совпадал с функцией втабличных точках, то есть пусть Pn(xk) = yk, где k = 0, 1, . . . , n. Получимсистему уравнений относительно ai, k = 0, 1, . . . , n:

anxn0 + an−1x

n−10 + . . .+ a1x0 + a0 = y0,

anxn1 + an−1x

n−11 + . . .+ a1x1 + a0 = y1,

· · ·anx

nn + an−1x

n−1n + . . .+ a1xn + a0 = yn.

Определитель последней системы есть определитель Вандермонда (см.приложение):

∆ =

∣∣∣∣∣∣∣∣∣∣1 x0 x2

0 · · · xn0

1 x1 x21 · · · xn1

... ... . . . ...1 xn x2

n · · · xnn

∣∣∣∣∣∣∣∣∣∣=

n∏i,j=0(i6=j)

(xi − xj).

В самом начале мы потребовали, чтобы x0 < x1 < . . . < xn. Значит, ни од-на скобка не даст нуля и, следовательно, ∆ 6= 0. Последнее означает, чтосистема имеет единственное решение. Несложно проверить, что следую-щий многочлен в точности соответствует этому решению (если подставитьтабличное xk получим yk):

Pn(x) = y0(x− x1)(x− x2) . . . (x− xn)

(x0 − x1)(x0 − x2) . . . (x0 − xn)+ . . .+

+ yk(x− x0) . . . (x− xk−1)(x− xk+1) . . . (x− xn)

(xk − x0) . . . (xk − xk−1)(xk − xk+1) . . . (xk − xn)+ . . .+

yn(x− x0)(x− x1) . . . (x− xn−1)

(xn − x0)(xn − x1) . . . (xn − xn−1)=

n∑k=0

ykL

(k)n (x)

L(k)n (xk)

,

где L(k)n (x) = (x− x0) . . . (x− xk−1)(x− xk+1) . . . (x− xn) — полиномы n-ой

степени специального вида.

Page 26: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 3 26

Многочлен Ньютона. Приведём ещё одну форму записи интерполя-ционного полинома:

Pn(x) = A0 + A1(x− x0) + A2(x− x0)(x− x1) + . . .+

+ An(x− x0)(x− x1) . . . (x− xn−1). (3.1)

Требование совпадения значений полинома с заданными значениями функ-ции приводит к системе линейных уравнений с треугольной матрицей длянеопределённых коэффициентов Ai, i = 0, 1, . . . , n:

A0 = f0,

A0 + A1(x1 − x0) = f1,

A0 + A1(x2 − x0) + A2(x2 − x0)(x2 − x1) = f2,

· · ·A0 + A1(xn − x0) + A2(xn − x0)(xn − x1) + . . .+

+An(xn − x0)(xn − x1) · · · (xn − xn−1) = fn.

численное решение которой не составляет труда.Интерполяционный полином, записанный в форме (3.1), называется по-

линомом Ньютона. Он интересен тем, что каждая частичная сумма егопервых (m+1) слагаемых представляет собой интерполяционный полиномm-й степени, построенный по первым (m+ 1) табличным данным.

Сравнение форм Лагранжа и Ньютона. Многочлен Лагранжа имногочлен Ньютона суть один и тот же многочлен, записанный в различ-ных формах. У каждой из форм записи есть свои достоинства:

Page 27: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 3 27

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

• удобно, если в качестве результата нуж-на непосредственно формула, приближа-ющая функцию f(x)

• удобно, если требуется добавить но-вый узел xn+1; достаточно найти тольконовый неизвестный коэффициент An+1,остальные Ai, i = 0, 1, . . . , n остаютсянеизменными

Погрешность интерполяции. Ошибка приближения функции интер-поляционным полиномом n-ой степени в точке x — это разность Rn(x) =

f(x)− Pn(x).Рассмотрим полином специального вида (n+ 1)-ой степени:

ωn+1(x) = (x− x0)(x− x1) . . . (x− xn) =n∏i=0

(x− xi).

Теорема 3.1. Пусть на отрезке [a, b], таком, что xi ∈ [a, b], i = 0, 1, . . . , n,функция f(x) (n+ 1) раз непрерывно дифференцируема. Тогда

Rn(x) =f (n+1)(x′)

(n+ 1)!ωn+1(x), где x′ ∈ [a, b].

Доказательство. Будем искать погрешность в виде

Rn(x) = C(x)ωn+1(x), (3.2)

где C(x) — функция, ограниченная на [a, b] (при такой форме записи вы-ражения для погрешности гарантируется, что она обращается в ноль вузлах интерполяции).

Чтобы получить представление о C(x), рассмотрим вспомогательнуюфункцию

ϕ(x) = f(x)− Pn(x)− C(ξ)ωn+1(x), (3.3)

Page 28: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 3 28

где ξ — некоторое фиксированное значение на отрезке [a, b]. Очевидно, на[a, b] функция ϕ(x) имеет (n + 2) нуля. Это узлы интерполяции и точкаx = ξ. Согласно теореме Ролля, существует точка x′ ∈ [a, b], в которойϕ(n+1)(x′) = 0. Продифференцировав 3.3 (n + 1) раз и подставив x = x′,получим

0 = ϕ(n+1)(x′) = f (n+1)(x′)− (n+ 1)!C(ξ).

Отсюда C(ξ) = f (n+1)(x′)(n+1)! . (Ясно, что x′ в теореме Ролля зависит от располо-

жения нулей функции ϕ(x); тем самым x′ представляет собой некоторуюнеявную зависимость x′ = x′(ξ) и полученное отношение действительноопределяет функцию от ξ.)

Переобозначая C(ξ) на C(x) и учитывая 3.2, получаем утверждениетеоремы.

Хочется контролировать поведение ωn+1(x) на отрезке [a, b]. Сравним,к примеру, поведение на отрезке [−1, 1] ω10(x) c выбором равноотстоящихузлов (−1,−8

9 ,−79 , . . . ,

89 , 1) и ω10(x) с узлами Чебышёва (cos 19π

20 , cos 17π20 ,

cos 15π20 , . . . , cos π

20).Из рисунка 3.1 видно, что многочлен ω10(x) меньше отклоняется от оси

Ox: max[−1,1]

ω10(x) ≈ 2 ·10−3 < 13 ·10−3 ≈ max[−1,1]

ω10(x). Оказывается, что среди

всех многочленов ωn+1(x) с главным коэффициентом 1 и (n + 1) корнемна отрезке [a, b] многочлены Чебышёва менее всего отклоняются от нуля.

При больших n > 10 интерполяция по равноотстоящим узлам практи-чески не используется:

1. может не быть сходимости (функция Рунге f(x) = 11+25x2 , у которой

ошибка интерполяции с ростом n бесконечно возрастает);

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

При интерполяции по чебышёвским узлам этих неприятностей нет.В таблице приведены результаты приближения интерполяционными по-

линомами различной степени функции Рунге

Page 29: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 3 29

PSfrag repla ements

−1 −0.5 0 0.5 1

×10−3

−15

−10

−5

0

5

PSfrag repla ements

−1 −0.5 0 0.5 1

×10−3

−2

−1

0

1

2

а) б)

Рис. 3.1: Многочлен ωn+1(x) = (x− x0)(x− x1) · . . . · (x− xn) при выбореа) равноотстоящих на [−1, 1] узлов; б) чебышёвских узлов.

n 0, 7 < x < 1 |x| < 0, 7 Чебышёвские узлы4 0,44 0,37 0,408 1,01 0,24 0,1710 1,88 0,3 0,1120 40,0 0,12 0,01

Функция Рунге — «нехорошая» для интерполирования функция.

Page 30: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 4 30

1.4 Лекция 4

1.4.1 Многочлены Чебышёва.

Рекуррентная форма записи Многочлены Чебышёва Tn(x), где n >

0, определяются соотношениями

T0(x) = 1, T1(x) = x,

Tn+1(x) = 2xTn(x)− Tn−1(x) при n > 0.(4.1)

Например,

T2(x) = 2x2 − 1, T3(x) = 4x3 − 3x,

T4(x) = 8x4 − 8x2 + 1, T5(x) = 16x5 − 20x3 + 5x.

Тригонометрическая форма записи. Для любого θ справедливо cos((n+

1)θ) = 2 cos θ cosnθ − cos((n− 1)θ). При θ = arccosx получим

cos((n+ 1) arccosx) = 2x cos(n arccosx)− cos((n− 1) arccos x). (4.2)

Рассмотрим выражение cos(n arccosx) при n = 0 и n = 1:

cos(0 · arccosx) = 1 = T0(x), cos(1 · arccosx) = x = T1(x). (4.3)

Видно, что (4.3) и (4.2) равносильно (4.1), поэтому при всех n Tn(x) =

cos(n arccosx).

Явная форма записи. Рекуррентное соотношение (4.1) является раз-ностным. Для его решения заменяют Tn(x) на µn. После подстановки исокращения получаем:

µ2 − 2µx+ 1 = 0

с корнямиµ1,2 = x±

√x2 − 1.

При x 6= ±1 корни простые, поэтому

Tn(x) = c1(x)µn1 + c2(x)µn2 .

Page 31: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 4 31

Из системы{T0(x) = 1 = c1(x) + c2(x),

T1(x) = x = c1(x)(x+√x2 − 1) + c2(x)(x−

√x2 − 1).

следует, что c1 = c2 = 1/2. Таким образом,

Tn(x) =(x+

√(x2 − 1))n + (x−

√(x2 − 1))n

2.

Свойства:

1. T2n(x) — чётные функции, T2n+1(x) — нечётные функции.

2. Tn(x) выражается через косинус, следовательно |Tn(x)| 6 1 при x ∈[−1, 1].

3. Из уравнения Tn(x) = cos(n arccosx) = 0 получаем, что

xk = cos

((2k − 1)π

2n

), k = 1, . . . , n

— нули Tn(x).

4. Из уравнения T ′n(x) = − sin(n arccosx) −n√1−x2 = 0 получаем, что

ξk = cos

(kπ

n

), k = 0, . . . , n

— точки экстремума Tn(x). Заметим, что Tn(ξk) = (−1)k.

Геометрическая интерпретация. Если верхнюю полуокружность еди-ничного радиуса разделить на n частей, то середины дуг — координатынулей, экстремумы — точки деления (рис. 4.1).

Наименьшее отклонение от нуля Так как T0(x) = 1 и Tn+1(x) =

2xTn(x)− . . ., то коэффициент при главном члене равен 2n−1. В погрешно-сти многочлена Лагранжа участвует многочлен ωn+1 = (x−x0)·. . .·(x−xn)с старшим коэффициентом 1. Поэтому рассматривают также изменённыймногочлен Чебышёва T x(n) = 21−nTn(x) со старшим коэффициентом 1.Справедлива следующая

Page 32: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 4 32

ξ0x1ξ1x2ξ2ξ3ξ4 x3x4

Рис. 4.1: Геометрическая интерпретация корней и точек экстремума поли-нома Чебышёва при n = 4.

Теорема 4.1. Для всякого многочлена Pn(x) степени n с единичнымстаршим коэффициентом имеет место неравенство

maxx∈[−1,1]

|Pn(x)| > maxx∈[−1,1]

|T n(x)| = 21−n,

причём знак равенства возможен только в случае Pn(x) = T n(x).

Доказательство «>». Будем действовать от противного. Пусть найдётсятакой многочлен, что

maxx∈[−1,1]

|Pn(x)| < maxx∈[−1,1]

|T n(x)| = 21−n. (4.4)

Рассмотрим многочлен Qn−1(x) = T n(x) − Pn(x) степени не выше n − 1

(оба слагаемых имеют старший единичный коэффициент). Подставим внего точки ξkn = sin kπ

n , k = 0, . . . , n (точки экстремума многочлена T n(x)):

sign(Qn−1(ξin)) = sign((−1)k21−n − Pn(ξkn))

из-за (4.4)=

= sign((−1)k21−n) = (−1)k.

Заметим, что знак многочлена Qn−1(x) меняется n + 1 раз на отрезке[−1, 1] (т.к. k = 0, . . . , n). Значит, многочлен Qn−1(x) степени не вышеn− 1 имеет n различных корней. Получили противоречие.Доказательство единственности.

Из-за последней теоремы многочлен T n(x) получил название наименееуклоняющегося от нуля.

Page 33: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 4 33

1−1

ba

1−1

ba

x′ = b+a2

+ b−a2x x = 2x′−(b+a)

b−a

x x

x′x′

Рис. 4.2: Линейные преобразования отрезка [−1, 1] в [a, b] и обратно

Заметим, что теорема работает только на отрезке [−1, 1]. Хочется снятьэто ограничение. Для этого рассматривают линейные преобразования от-резка [−1, 1] в [a, b] x′ = b+a

2 + b−a2 x и обратно x = 2x′−(b+a)

b−a . Получаеммногочлен

T[a,b]n (x) =

(b− a

2

)nT n

(2x− (b+ a)

b− a

)= (b− a)n21−2nTn

(2x− (b+ a)

b− a

)со старшим коэффициентом 1, наименее уклоняющийся от нуля на отрезке[a, b]. Будем называть T [a,b]

n (x) также чебышёвским. Нетрудно проверить,что нулями многочлена T [a,b]

n (x) являются точки

xk =b+ a

2+b− a

2cos

((2k − 1)π

2n

), k = 1, . . . , n. (4.5)

Теперь можно дать ответ на вопрос, как уменьшить погрешность ин-терполяции Rn(x) за счёт выбора узлов интерполяции. Если в качествеузлов интерполяции выбрать корни (4.5) многочлена T [a,b]

n+1(x), тогда

maxa6x6b

|ωn+1(x)| = maxa6x6b

|T [a,b]n+1(x)| = (b− a)n+121−2(n+1).

При этом улучшить (т.е. уменьшить) последнюю величину уже нельзя.Получаем |Rn(x)| 6 Mn+1

(n+1)!(b− a)n+121−2(n+1), где Mn+1 = maxa6x6b

|f (n+1)(x)|.

1.4.2 Среднеквадратическое приближение (метод наименьших квадратов)

Рассмотрим принципиально иной способ приближения функций, задан-

ных таблицей своих значенийx0 x1 · · · xn

y0 y1 · · · yn. Будем искать приближе-

ние в виде полинома степени m: Pm(x) = a0 + a1x + . . . + amxm, такого,

Page 34: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 4 34

который минимизирует сумму квадратов отклонений полинома от задан-ных значений функции:

Φ(a0, a1, . . . , am) =n∑i=0

(Pm(xi)− yi)2.

Ясно, что при m = n решением задачи является полином Лагранжа,поскольку на нём достигается абсолютный минимум: Φ = 0. Известно,что при m < n задача имеет единственное решение. При m > n задачаимеет бесконечное множество решений.

Рассмотрим случай m < n. Условия минимума функции Ф следуют изматематического анализа:

∂Φ

∂ak= 2

n∑i=0

(Pm(xi)− yi)xki = 0, k = 0, 1, ...,m.

После подстановки выражения для Pn(x) и перегруппировки слагаемых,получим:

a0

n∑i=0

xk+0i + a1

n∑i=0

xk+1i + . . .+ am

n∑i=0

xk+mi =

n∑i=0

yixki , k = 0, . . . ,m.

Эта система линейных уравнений с симметричной матрицей:

n+ 1∑xi · · · ∑

xmi∑xi

∑x2i · · · ∑

xm+1i∑

x2i

∑x3i · · · ∑

xm+2i

... ... . . . ...∑xmi

∑xm+1i · · · ∑xm+m

i

a0

a1

a2...am

=

∑yi∑yixi∑yix

2i

...∑yix

mi

.

Полином степени m < n с коэффициентами, найденными таким обра-зом, называется среднеквадратичным приближением функции, заданнойтаблицей. (Или наилучшим среди полиномов степени m приближением кфункции по табличным данным.)

Соответствующую погрешность приближения можно характеризоватьсреднеквадратичным отклонением ∆ = 1

n+1

n∑i=0

[Pm(xi)− yi]2.Основная сфера применения — обработка экспериментальных данных.

Page 35: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 4 35

Экспериментальные данные характеризуются значительным разбросом(ошибки измерения, экспериментальный «шум» и т.д.) Интерполяцион-ный полином, построенный по этим точкам, плохо отражает поведениефункции f(x). Среднеквадратичный полином «сглаживает шум».

Пример. Пусть известно, что величина y является некоторой функциейот аргумента x, причём в результате измерений получена таблица значе-ний yk = y(xk), k = 1, 2, 3, 4.

Полученные измерения позволяют приближённо считать, что зависи-мость y = y(x) является линейной, т.е.

y = ax+ b, (4.6)

где a, b - некоторые числа. Числа a, b в эмпирической формуле (4.6) необхо-димо подобрать таким образом, чтобы при значениях x = xk (k = 1, 2, 3, 4)выполнялись условия:

ax1 + b = y1, ax2 + b = y2, ax3 + b = y3, ax4 + b = y4. (4.7)

Получилась система четырёх линейных уравнений относительно двухнеизвестных a, b. Классического решения данной системы нет.

Введем функцию Φ(a, b) =4∑

k=1

(axk + b− yk)2, равную сумме квадратов

невязок, и примем за обобщённое решение системы (4.7) ту пару чисел(a, b), для которой функция Φ(a, b) принимает наименьшее значение. По-лучим систему двух уравнений:︷ ︸︸ ︷

∂Φ

∂a= 0,

∂Φ

∂b= 0.

Данная система имеет обычное классическое решение.

1.4.3 Многочлены Эрмита

Предположим, что функция задана конечным набором своих значений, атакже некоторых производных (возможно, не во всех точках). В таблице,Ki определяет количество данных в i-ом узле. Например, если в узле xi

Page 36: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 4 36

заданы значение функции yi и производной y′i, то Ki = 2. Для всякогоi = 0, . . . , n Ki > 1, т.е. в каждой колонке обязательно присутствует yi —значение функции в точке xi. Обозначим p = K1 + K2 + . . . + Kn − 1.Многочлен Hp(x) степени p называется многочленом Эрмита, если

H(k)p (x) = y

(k)i , i = 0, . . . , n, k = 0, 1, . . . , Ki − 1.

x x0 x1 · · · xn

y y0 y1 · · · yn

y′ y′0 y′1 · · · y′ny′′

... ... · · · ...y′′′... y

(K0−1)0 y

(K1−1)0 · · · y

(Kn−1)0

K0 K1 · · · Kn

Погрешность для многочлена Эр-мита выражается аналогично по-грешности для многочлена Лагран-жа. Если интерполяция происхо-дит на отрезке [a, b], содержащемxi, i = 0, . . . , n и функция f(x)

(p+1) раз непрерывно дифференци-руема, то погрешность выражаетсяформулой:

Rp(x) = f(x)−Hp(x) =f (p+1)(ξ)

(p+ 1)!(x− x0)

K0(x− x1)K1 . . . (x− xn)Kn,

где ξ неизвестная точка принадлежащая интервалу [a, b]. Принято обозна-чать ωp+1(x) = (x− x0)

K0(x− x1)K1 . . . (x− xn)Kn.

1.4.4 Интерполяция кубическими сплайнами

Сплайном, соответствующим данной функции f(x) и данным узлам x0, . . . xn,называется функция s(x), удовлетворяющая следующим условиям:

1. на каждом сегменте [xi−1, xi], i = 1, 2, . . . , n,функция s(x) являетсямногочленом третьей степени;

2. функция s(x), а также её первая и вторая производные непрерывнына [a, b];

3. s(xi) = f(xi), i = 0, 1, . . . , n.

Page 37: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 4 37

si(xi) = f(xi),

s′i(xi) = s′i−1(xi),

s′′i (xi) = s′′i−1(xi).

Page 38: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 5 38

1.5 Лекция 5

÷èñëåííîåäè��åðåí-öèðîâàíèÿïðîèçâîäíàÿìíîãî÷ëåíàËàãðàíæà ìåòîäíåîïðåäåë¼ííûõêîý��èöèåíòîâðàçëîæåíèå âðÿä Òåéëîðàìåòîä �óíãå

1.5.1 Кусочная интерполяция (КИ)

Оценка погрешности интерполяции функции f(x) с помощью ИП Pn(x)

составляет:

|Rn(x)| = |f(x)− Pn(x)| 6 Mn+1

(n+ 1)!|ωn+1(x)| ,

где Mn+1 = max[a,b]|f (n+1)(x)| — получена в предположении существования

(n+ 1)-ой непрерывной производной функции f(x).На практике же далеко не всегда приходится иметь дело с очень глад-

кими функциями (у которых первая и высшие производные непрерывны).В связи с этим часто применяется кусочная интерполяция. Для прибли-жения функции в точке x строится полином невысокой степени по даннымв табличных точках, ближайшим к точке x.

Пусть необходимо вычислить f(x) для x ∈ [xi, xi+1].Кусочно-линейная интерполяция. Для вычисления используется линей-

ное приближение

f(x) ≈ fi +fi+1 − fi

h(x− xi), где h = xi+1 − xi.

Очевидно, что при подстановке x = xi или x = xi+1 получается тождество.Кусочно-квадратичная интерполяция. Привлекается ещё одна таблич-

ная точка (xi−1 или xi+1), и строится полином второй степени:

f(x) ≈ fi +fi+1 − fi

h(x− xi) +

fi+1 − 2fi + fi−1

2h2(x− xi)(x− xi+1).

Page 39: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 5 39

Очевидно, что при подстановке x = xi или x = xi+1 или x = xi−1 получа-ется тождество.

Кусочно-кубическая интерполяция.

f(x) ≈ fi +fi+1 − fi

h(x− xi) +

fi+1 − 2fi + fi−1

2h2(x− xi)(x− xi+1)+

+fi+2 − 3fi+1 + 3fi − fi−1

6h3(x− xi−1)(x− xi)(x− xi+1).

Нетрудно убедиться, что при fi−1, fi, fi+1, fi+2 в последних двух формулахстоят биномиальные коэффициенты.

Более высокие степени ИП для КИ, как правило, не используют. Узлыинтерполяции при кусочной интерполяции берутся вблизи интересующегонас узла xi.

1.5.2 Другие способы интерполяции

По аналогии с интерполяционным многочленом Pn(x) = anxn+an−1x

n−1 +

. . .+ a0 можно искать приближение таблично заданной функции в виде:

Pn(x) = anϕn(x) + an−1ϕn−1(x) + . . .+ a0ϕ0(x)

по системе линейно независимых функций {ϕk(x) : k = 0, 1, . . . , n}.Исходя из условий интерполяции (совпадения значения полинома с таб-

личными значениями функции), для неопределённых коэффициентов {ai}получим систему линейных уравнений:

anϕn(x0) + an−1ϕn−1(x0) + . . .+ a0ϕ0(x0) = y0, i = 0, 1, . . . , n.

Для существования и единственности решения необходимо, чтобы детер-минант удовлетворял условию

∆ =

∣∣∣∣∣∣∣∣∣∣ϕ0(x0) ϕ1(x0) ϕ3(x0) · · · ϕn(x0)

ϕ0(x1) ϕ1(x1) ϕ3(x1) · · · ϕn(x1)... ... ... . . . ...

ϕ0(xn) ϕ1(xn) ϕ3(xn) · · · ϕn(xn)

∣∣∣∣∣∣∣∣∣∣6= 0.

Например, периодическую функцию может оказаться удобно приближатьв виде полинома по системе функций {1, sin(kx), cos(kx)} — это тригоно-

Page 40: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 5 40

метрическая интерполяция. Часто используется, если функция разложи-ма в ряд Фурье.

1.5.3 Обратная интерполяция

Пусть необходимо определить, при каком значении x функция f(x) при-нимает заданное значение. Если функция y(x) строго монотонна на ин-тервале интерполирования [a, b], то ничто не мешает поменять ролями xiи yi в таблице:

x0 x1 x2 · · · xn

y0 y1 y2 · · · yn→ y0 y1 y2 · · · yn

x0 x1 x2 · · · xn

C формальной точки зрения безразлично, что считать функцией и что ар-гументом. В этом случае представляется удобным приближать с помощьюинтерполяционного полинома зависимость x = x(y). Это и есть обратнаяинтерполяция. Многочлен в форме Лагранжа и в форме Ньютона выпи-сывается стандартным образом.

Замечание. Если допустить, что функция y(x) строго монотонна наинтервале интерполирования [a, b], то можно получить ещё один способрешения нелинейных уравнений вида y(x) = 0. Пусть построен много-член обратной интерполяции Pn(y) для обратной функции x(y). Доста-точно подставить в него ноль. Это даст корень уравнения x∗ = Pn(0).

1.5.4 Численное дифференцирование (ЧД) с помощью многочлена Лагран-жа.

Приблизим функцию f(x), заданную таблично, интерполяционным мно-гочленом Лагранжа Pn(x). В качестве значения f ′(x) приближённо можнопринять P ′n(x). Оценим возникающую погрешность. Известно, что

f(x)− Pn(x) = Rn(x) =f (n+1)(ξ(x))

(n+ 1)!ωn+1(x), ξ(x) ∈ [a, b].

Page 41: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 5 41

Отсюда

f ′(x)− P ′n(x) = R′n(x) =d

dx

[f (n+1)(ξ(x))

(n+ 1)!ωn+1(x)

]=

=1

(n+ 1)!

[f (n+2)(ξ(x))ξ′(x)ωn+1(x) + f (n+1)(ξ(x))ω′n+1(x)

].

В записи присутствует производная неизвестной нам функции ξ(x). Этомешает оценить R′n(x). При этом значение R′n(x) может оказаться доста-точно большим (большим требуемой точности). Таким образом примене-ние многочлена Лагранжа для численного нахождения производных в об-щем случае неприменимо.

1.5.5 Метод неопределённых коэффициентов.

Искомое выражение для производной k-то порядка в некоторой точкеx = xi представляется в виде линейной комбинации заданных значенийфункции в узлах x0, x1, . . . , xn:

y(k)(xi) ≈ c0y0 + c1y1 + . . .+ cnyn. (5.1)

Предполагается, что это соотношение выполняется точно, если функцияy является многочленом степени не выше n, т. е. может быть представленав виде

y = b0 + b1(x− x0) + . . .+ bn(x− x0)n.

Отсюда следует, что соотношение (5.1), в частности, должно выполнятьсяточно для многочленов y = 1, y = x − x0, . . . , y = (x − x0)

n. Подставляяпоследовательно эти выражения в (5.1) и требуя выполнения точного ра-венства, получаем систему n+1 линейных алгебраических уравнений дляопределения неизвестных коэффициентов c0, c1, . . . , cn.

Пример. Найти выражение для производной y′1 в случае четырёх рав-ноотстоящих узлов (n = 3 и xi+1 − xi = h = const, где i = 1, 2, 3).

Приближение (3.10) запишется в виде

y′1 ≈ c0y0 + c1y1 + c2y2 + c3y3. (5.2)

Page 42: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 5 42

Используем следующие многочлены:

y = 1, y = x− x0, y = (x− x0)2, y = (x− x0)

3. (5.3)

Вычислим их производные:

y′ = 0, y′ = 1, y′ = 2(x− x0), y′ = 3(x− x0)2. (5.4)

Подставляем последовательно соотношения (5.3) и (5.4) соответственнов правую и левую части (5.2), при x = x1 требуя выполнения точногоравенства:

0 = c0 · 1 + c1 · 1 + c2 · 1 + c3 · 1,1 = c0(x0 − x0) + c1(x1 − x0)1 + c2(x2 − x0)1 + c3(x3 − x0),

2(x1 − x0) = c0(x0 − x0)2 + c1(x1 − x0)

21 + c2(x2 − x0)21 + c3(x3 − x0)

2,

3(x1 − x0)2 = c0(x0 − x0)

3 + c1(x1 − x0)31 + c2(x2 − x0)

31 + c3(x3 − x0)3.

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

c0 + c1 + c2 + c3 = 0,

hc1 + 2hc2 + 3hc3 = 1,

hc1 + 4hc2 + 9hc3 = 2,

hc1 + 8hc2 + 27hc3 = 3.

Решая эту систему, получаем

c0 = − 1

3h, c1 = − 1

2h, c2 =

1

h, c3 = − 1

6h.

Подставляя эти значения в (5.2), находим выражение для производной:

y′1 ≈1

6h(−2y0 − 3y1 + 6y2 − y3).

1.5.6 Разложение в ряд Тейлора.

Будем считать, что в таблице используется равномерный шаг: xi− xi−1 =

h = const, где i = 1, 2, . . . , n. Разложим f(xi−1) в ряд Тейлора в окрестно-сти точки xi:

f(xi−1) = f(xi) + (xi−1 − xi)f ′(xi) +(xi−1 − xi)2

2!f ′′(ξ), где xi−1 6 ξ 6 xi.

Page 43: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 5 43

Для краткости заменим f(xi)→ fi и xi − xi−1 → h:

fi−1 = fi − hf ′i + h2f ′′(ξ)/2.

Откуда f ′i = fi−fi−1h + hf

′′(ξ)2 . Приближённо можно положить f ′i ≈ fi−fi−1

h .Ясно, что ошибка при этом будет не более, чем hM2/2 = O(h), где M2 =

max[xi−1,xi]

|f ′′(x)|. Полученную формулу для f ′i принято называть левой раз-ностью.

Аналогично получается правая разность: f ′i ≈ fi+1−fih +O(h).

Разложим теперь fi−1 и fi+1 до h3:

fi−1 = fi − hf ′i + h2f′′(x)

2!− h3f

′′′(ξ−)

3!, xi−1 6 ξ− 6 xi,

fi+1 = fi + hf ′i + h2f′′(x)

2!+ h3f

′′′(ξ+)

3!, xi 6 ξ+ 6 xi+1.

Найдём разность последних двух равенств и выделим f ′i :

f ′i =fi+1 − fi−1

2h+ h2f

′′′(ξ−) + f ′′′(ξ+)

6.

Приближённое равенство f ′i ≈ fi+1−fi−12h называют центральной разностью.

Погрешность при этом равна f ′i − fi+1−fi−12h = h2 f

′′′(ξ−)+f ′′′(ξ+)6 = h2 f

′′′(η)3 =

O(h2)1, где η ∈ [xi−1, xi+1].Чтобы получить формулу для f ′′i , разложим fi−1 и fi+1 до h4

fi−1 = fi − hf ′i + h2f′′(x)

2!− h3f

′′′(x)

3!+ h4f

IV(ζ−)

4!, xi−1 6 ζ− 6 xi,

fi+1 = fi + hf ′i + h2f′′(x)

2!+ h3f

′′′(x)

3!+ h4f

IV(ζ+)

4!, xi 6 ζ+ 6 xi+1.

Если сложить разложения fi−1 и fi+1 и затем выразить f ′′(x), получим

f ′′i =fi+1 − 2fi + fi−1

h2− h2f

IV(ζ−) + f IV(ζ+)

24.

Погрешность f ′′i − fi+1−2fi+fi−1h2 = −h2 f

IV(ζ−)+f IV(ζ+)24 = −h2 f

IV(τ)12 = O(h2), где

τ ∈ [xi−1, xi+1], имеет порядок 2.1 Мы предполагаем, что f ′′′(x) непрерывна на [xi−1, xi+1]. Пусть для определённости

f ′′′(ξ−) 6 f ′′′(ξ+). Тогда f ′′′(ξ−) 6 f ′′′(ξ−)+f ′′′(ξ+)2

6 f ′′′(ξ+). С силу непрерывности f ′′′(x)

найдётся точка η ∈ [xi−1, xi+1] такая, что f ′′′(η) = f ′′′(ξ−)+f ′′′(ξ+)2

Page 44: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 5 44

Замечание. Погрешность O(h) говорит о том, что ошибка убываетпропорционально шагу h. Погрешность O(h2) говорит о том, что ошиб-ка убывает пропорционально квадрату шага h. Например,

Шаг Формула с погрешн. O(h) Формула с погрешн. O(h2)

h погрешность ε погрешность εh/2 погрешность ε/2 погрешность ε/4h/4 погрешность ε/4 погрешность ε/16

Про погрешность O(hp) говорят, что она имеет порядок p.

1.5.7 Неустойчивость формул численного дифференцирования

Рассмотрим влияние погрешности входных данных на результат вычис-ления производных по формулам ЧД. Пусть в точках xi, i = 0, 1, . . . , n

заданы значения функции yi, которые отличаются от точных значенийyi = y(xi), т.е. yi = yi ± δi, где δi — погрешность входных данных. Ве-личина δ = max

iδi обычно бывает известна. Пусть в точке x = xi нужно

приближённо вычислить y′(x).

y′(xi) ≈yi+1 − yi

h.

Погрешность формулы

∆ =

∣∣∣∣y′ − yi+1 − yih

∣∣∣∣ =

∣∣∣∣(y′ − yi+1 − yih

)+

(yi+1 − yi

h− yi+1 − yi

h

)∣∣∣∣ 66

∣∣∣∣y′ − yi+1 − yih

∣∣∣∣+

∣∣∣∣yi+1 − yi+1

h

∣∣∣∣+

∣∣∣∣yi − yih

∣∣∣∣ 6 M2

2h+

δ

h+δ

h= Φ(h),

где M2 = max[xi,xi+1]

|y′′(x)|. Здесь M2

2 h — методическая ошибка, 2δh — неустра-

нимая погрешность. Наша цель — минимизировать ошибку, т.е. Φ(h). Дляэтого нельзя неограниченно уменьшать шаг h, т.к. Φ(h) в какой-то моментначинает расти. Найдём оптимальное значение h∗.

hopt : Φ′(x) =M2

2− 2δ

h2= 0 ⇒ hopt = 2

√δ/M2

Φ(hopt) =M2

2· 2√δ/M2 + 2δ · 1

2

√M2/δ = 2

√M2δ.

Page 45: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 5 45

Пример. M2 ∼ 1, δ ∼ 0, 01 ⇒ ∆ ∼ 0, 1.

1.5.8 Метод Рунге.

Как видно из конечно-разностных соотношений для аппроксимаций про-изводных, порядок их точности возрастает с увеличением числа узлов,используемых при аппроксимации. Однако при большом числе узлов этисоотношения становятся весьма громоздкими, что приводит к существен-ному возрастанию объёма вычислений. Усложняется также оценка точ-ности получаемых результатов. Вместе с тем существует простой и эф-фективный способ уточнения решения при фиксированном числе узлов,используемых в аппроксимирующих конечно-разностных соотношениях.Это метод Рунге.

Пусть F (x) — производная, которая подлежит аппроксимации; f(x, h) —конечно-разностная аппроксимация этой производной на равномерной сет-ке с шагом h; R — погрешность (остаточный член) аппроксимации, глав-ный член которой можно записать в виде hpϕ(x), т. е.

R = hpϕ(x) +O(hp+1).

(Для левой разности, например, R = O(h) = h1 ·ϕ(x) +O(h2). Вспомним,что при h→ 0 справедливо O(h) +O(h2) = O(h).)

Тогда выражение для аппроксимации производной в общем случае мож-но представить в виде

F (x) = f(x, h) + hpϕ(x) +O(hp+1). (5.5)

(Для левой разности, например, F (x) = fi−fi−1h + h1 · ϕ(x) +O(h2).)

Запишем это соотношение в той же точке x при другом шаге h1 = kh.Получим

F (x) = f(x, kh) + (kh)pϕ(x) +O((kh)p+1). (5.6)

Приравнивая правые части равенств (5.5) и (5.6), находим выражение дляглавного члена погрешности аппроксимации производной:

hpϕ(x) =f(x, h)− f(x, kh)

kp − 1+O(hp+1).

Page 46: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 5 46

Подставляя найденное выражение в равенство (5.5), получаем формулуРунге

F (x) = f(x, h) +f(x, h)− f(x, kh)

kp − 1+O(hp+1). (5.7)

Эта формула позволяет по результатам двух расчётов значений производ-ной f(x, h) и f(x, kh) (с шагами h и kh) с порядком точности p найти еёуточнённое значение с порядком точности p+ 1.

Пример. Рассмотрим формулу y′(x) = y(x+h)−y(h)h + O(h1). Она имеет

первый порядок погрешности. Получим с помощью метода Рунге формулус большим порядком погрешности. Убедимся вначале, что метод Рунгеприменим, то есть, что нашу формулу можно представить в виде (5.5).Вспомним разложение в ряд Тейлора:

y(x+ h) = y(x) + y′(x)h+ y′′(ξ)h2

2!= y(x) + y′(x)h+ y′′(x)

h2

2!+ y′′′(η)

h3

3!,

где ξ, η ∈ [x, x+ h]. Отсюда:

y′(x)︸ ︷︷ ︸F (x)

=y(x+ h)− y(x)

h︸ ︷︷ ︸f(x,h)

+y′′(ξ)

2h︸ ︷︷ ︸

O(h1)

=y(x+ h)− y(x)

h︸ ︷︷ ︸f(x,h)

+y′′(x)

2h︸ ︷︷ ︸

ϕ(x)h

+y′′′(η)

6h2︸ ︷︷ ︸

O(h2)

.

Заключаем, что представление (5.5) верно. Следовательно, можно приме-нять метод Рунге.

Подставим в (5.7) вместо f(x) нашу формулу y(x+h)−y(h)h и положим k =

2:

F (x) =y(x+ h)− y(h)

h+

y(x+ h)− y(h)

h− y(x+ 2h)− y(h)

2h21 − 1

+O(h1+1) =

=1

h

(−3

2y(x) + 2y(x+ h)− 1

2y(x+ 2h)

)+O(h2),

где F (x) = y′(x). Можно переписать короче:

y′i =1

h

(−3

2yi + 2yi+1 −

1

2yi+2

)+O(h2).

Полученная формула имеет уже второй порядок погрешности.

Page 47: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 6 47

1.6 Лекция 6

Формулы для численного вычисления интегралов называются квадратур-ными формулами (от слова «квадрат», понимаемого в значении «пло-щадь»).

Разобьём отрезок [a, b], по которому интегрируют функцию на n частейс помощью точек xi, i = 0, 1, . . . , n, которые называют узлами квадратур-ной формулы. Тогда можно записать

b∫a

f(x) dx =n∑k=1

xi∫xi−1

f(x) dx.

1.6.1 Формула прямоугольников

Приблизим частичный интеграл площадью прямоугольникаxi∫

xi−1

f(x) dx ≈ f(xi−1/2)h.

Это равносильно тому, что мы заменили функцию f(x) на [xi−1, xi] много-членом Лагранжа нулевой степени P0(x) = f(xi−1/2). Погрешность метода

ψi =

xi∫xi−1

f(x) dx− f(xi−1/2)h =

xi∫xi−1

[f(x)− f(xi−1/2)] dx.

С помощью формулы Тейлора

f(x) = f(xi−1/2) + (x− xi−1/2)f′(xi−1/2) +

(x− xi−1/2)2

2f ′′(ζi),

где ζi = ζi(x) ∈ [x, xi]. Откуда

ψi =

xi∫xi−1

[(x− xi−1/2)f

′(xi−1/2) +(x− xi−1/2)

2

2f ′′(ζi)

]dx =

=

xi∫xi−1

(x− xi−1/2)2

2f ′′(ζi) dx.

Page 48: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 6 48

Оценка сверху

|ψi| 6M2,i

xi∫xi−1

(x− xi−1/2)2

2dx =

h3

24M2,i, где M2,i = max

[xi−1,xi]|f ′′(x)|.

Суммируя частичные интегралы, получим составную формулу прямо-угольников

b∫a

f(x) dx ≈ (f1/2 + f3/2 + . . .+ fn−1/2)h

Погрешность этой формулы

Ψ =

b∫a

f(x) dx−n∑i=1

f(xi−1/2)h =n∑i=1

ψi

|Ψ| 6n∑i=1

|ψi| 6n∑i=1

h3

24M2,i 6

n∑i=1

h3

24M2 = n

h3

24M2 =

h2(b− a)

24M2 = O(h2),

где M2 = max[a,b]|f ′′(x)| — максимум уже на всём отрезке [a, b].

1.6.2 Формула трапеций

Приблизим частичный интеграл площадью трапецииxi∫

xi−1

f(x) dx ≈ f(xi−1/2) + f(xi)

2h.

Это равносильно тому, что мы заменили функцию f(x) на [xi−1, xi] мно-гочленом Лагранжа первой степени

P1,i(x) =1

h[(x− xi−1)f(xi)− (x− xi)f(xi−1)].

Погрешность многочлена Лагранжа

R1,i(x) = f(x)− P1,i(x) =f ′′(ζi(x))

2!(x− xi−1)(x− xi).

Откуда погрешность формулы трапеций

ψi =

xi∫xi−1

R1,i(x) dx

Page 49: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 6 49

Оценим погрешность сверху

|ψi| 6

∣∣∣∣∣∣xi∫

xi−1

R1,i(x) dx

∣∣∣∣∣∣ 6 M2,i

2

∣∣∣∣∣∣xi∫

xi−1

(x− xi−1)(x− xi) dx

∣∣∣∣∣∣ =M2,ih

3

12,

где M2,i = max[xi−1,xi]

|f ′′(x)|. Складывая частичные интегралы, получим со-

ставную формулу трапецийxi∫

xi−1

f(x) dx ≈n∑i=1

f(xi)− f(xi−1)

2h = h

(1

2f0 + f1 + . . .+ fn−1 +

1

2fn

)Погрешность составной формулы складывается из суммы частичных по-грешностей Ψ =

n∑i=1

ψi. Справедлива оценка

|Ψ| 6n∑i=1

|ψi| 6n∑i=1

h3

12M2,i 6

n∑i=1

h3

12M2 = n

h3

12M2 =

h2(b− a)

12M2 = O(h2),

где M2 = max[a,b]|f ′′(x)|.

1.6.3 Формула Симпсона

Приблизим функция f(x) на частичном интервале многочленом Лагран-жа 2-ой степени, который проходит через точки (xi−1, fi−1), (xi−1/2, fi−1/2)

и (xi, fi)

f(x) ≈ P2,i = fi−1L

(i−1)2 (x)

L(i−1)2 (xi−1)

+ fi−1/2L

(i−1/2)2 (x)

L(i−1/2)2 (xi−1/2)

+ fiL

(i)2 (x)

L(i)2 (xi)

=

= fi−1

(x− xi−1/2)(x− xi)h/2 · h − fi−1/2

(x− xi−1)(x− xi)h/2 · h/2 +

+ fi(x− xi−1)(x− xi−1/2)

h · h/2 ,

где h = xi − xi−1. Проведя интегрирование, получимxi∫

xi−1

f(x) dx ≈xi∫

xi−1

P2,i(x) dx =h

6(fi−1 + 4fi−1/2 + fi).

Page 50: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 6 50

Последнее выражение называется формулой Симпсона. На всём отрезке[a, b] формула Симпсона имеет вид

b∫a

f(x) dx ≈n∑i=1

h

6(fi−1 + 4fi−1/2 + fi) =

=h

6[f0 + fn + 2(f1 + f2 + . . .+ fn−1) + 4(f1/2 + f3/2 + . . .+ fn−1/2)].

Чтобы не использовать дробных индексов, можно обозначить xi = a+ 12hi,

i = 0, 1, . . . , 2n, hN = b− a и записать формулу Симпсона в виде

b∫a

f(x) dx ≈ b− a6n

[f0+f2n+2(f2+f4+. . .+f2n−2)+4(f1+f3+. . .+f2n−1)].

Для оценки погрешности потребуется вспомогательная

Лемма. Формула Симпсона точна для любого многочлена 3-ей степени,т.е. имеет место точное равенство

∫xixi−1

f(x) dx = h6(fi−1 + 4fi−1/2 + fi),

если f(x) = a0 + a1x+ a2x2 + a3x

3.

Доказательство получается непосредственной подстановкой.Для оценки погрешности формулы Симпсона можно было бы восполь-

зоватьс погрешностью многочлена Лагранжа

ψi =

xi∫xi−1

[f(x)− P2,i(x)] dx =

xi∫xi−1

f ′′′(ζi(x))

3!(x− xi−1)(x− xi−1/2)(x− xi).

Откуда |ψi| ∼ h4, т.е. погрешность составной формулы Симпсона будет

|Ψ| 6n∑i=1|ψi| ∼ h3. Но качество численной формулы измеряется порядком

погрешности. Покажем, как можно повысить в оценке порядок погрешно-сти.

Воспользуемся интерполяционным многочленом Эрмита. Построим мно-гочлен 3-ей степени H3(x) такой, что

H3(xi−1) = f(xi−1), H3(xi−1/2) = f(xi−1/2),

H3(xi) = f(xi), H ′3(xi−1/2) = f ′(xi−1/2).

Page 51: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 6 51

Привлекая последнюю лемму, получим чтоxi∫

xi−1

H3(x) dxлемма

=h

6[H3(xi−1)+4H3(xi−1/2)+H3(xi)] =

h

6[fi−1+4fi−1/2+fi].

Погрешность на i-ом частичном интервале

ψi =

xi∫xi−1

f(x) dx− h

6(fi−1 + 4fi−1/2 + fi) =

=

xi∫xi−1

f(x) dx− h

6[H3(xi−1) + 4H3(xi−1/2) +H3(xi)] =

=

xi∫xi−1

[f(x)−H3(x)] dx =

xi∫xi−1

R3,i(x) dx.

Как известно, для многочлена Эрмита погрешность равна

R3,i(x) =f IV(ζi(x))

4!(x− xi−1)(x− xi−1/2)

2(x− xi).

Поэтому

|ψi| 6M4,i

24

∣∣∣∣∣∣xi∫

xi−1

(x− xi−1)(x− xi−1/2)2(x− xi) dx

∣∣∣∣∣∣ =h5

2880M4,i,

гдеM4,i = max[xi−1,xi]

|f IV(x)|. Для составной формулы Симпсона погрешность

|Ψ| 6 h4(b− a)

2880M4, где M4 = max

[a,b]|f IV(x)|.

Замечание. Может показаться, что формула Симпсона точнее, фор-мулы прямоугольников или формулы трапеций. В общем случае это нетак. Например, погрешности |Ψпрям| 6 h2(b−a)

24 M2 и |Ψсимп| 6 h4(b−a)2880 M4

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

Page 52: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 6 52

Шаг Формула с погрешн. O(h2) Формула с погрешн. O(h4)

h погрешность ε погрешность εh/2 погрешность ε/4 погрешность ε/16

h/4 погрешность ε/16 погрешность ε/256

Оценки для погрешностей Ψпрям, Ψтрап и Ψсимп были получены в пред-положении существования непрерывных производных соответствующегопорядка. Например, если у функции нет 4-ой непрерывной на [a, b] произ-водной, то порядок погрешности формулы Симпсона будет меньше, чем 4.

Page 53: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 7 53

1.7 Лекция 7

1.7.1 Метод Рунге

Квадратурные формулы имеют погрешность вида O(hp). Если удастсявыделить главный член в погрешности, то можно с помощью метода Рун-ге получить формулу с большим порядком погрешности. Для примерарассмотрим формулу трапеций. Запишем частичную погрешность болееподробно, чем раньше2

ψi =

xi∫xi−1

f(x) dx−hfi−1 + fi2

погр.мн. Лагр.

=

xi∫xi−1

f ′′(ξ(x))

2!(x−xi−1)(x−xi) dx =

ф-ла сред.знач.

=f ′′(ζi)

2!

xi∫xi−1

(x−xi−1)(x−xi) dx = −f′′(ζi)h3

12, где ζi ∈ [xi−1, xi].

Общая погрешность на интервале [a, b] будет

Ψ =n∑i=1

ψi = −h2

12

n∑i=1

f ′′(ζi)hпри h→ 0

=

= −h2

12

b∫a

f ′′(x) dx+O(h)

ф-ла Н.-Л.= −h

2

12(f ′(b)− f ′(a)) +O(h3)

Главный член погрешности получен. Обозначим

Sтр(h) = h

(1

2f0 + f1 + f2 + . . .+ fn−1 +

1

2fn

).

b∫a

f(x) dx=Sтр(h) + ch2 +O(h3)

=Sтр(h/2) + c(h/2)2 +O(h3)

2Здесь потребуется известная из математического анализа

Теорема (формула среднего значения). Пусть функция f(x) непрерывна на [a, b],функция g(x) интегрируема на [a, b] и g(x) > 0 (или g(x) 6 0) на всём [a, b], тогдасуществует такое ξ ∈ [a, b], что

b∫a

f(x)g(x) dx = f(ξ)

b∫a

g(x) dx.

Page 54: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 7 54

где c = −f ′(b)−f ′(a)12 . Выразим неизвестное слагаемое

ch2 =Sтр(h/2)− Sтр(h)

1− 1/4+O(h3).

Отсюдаb∫a

f(x) dx = Sтр(h) +4

3[Sтр(h/2)− Sтр(h)] +O(h3) =

=4Sтр(h/2)− Sтр(h)

3+O(h3).

Заменим теперь Sтрb∫a

f(x) dx =1

3

[4h

2

(1

2f0 + f1/2 + f1 + . . .+ fn−1/2 +

1

2fn

)+

+h

(1

2f0 + f1 + f2 + . . .+ fn−1 +

1

2fn

)]+O(h3) =

=h

6[f0 +fn+ 2(f1 +f2 + . . .+fn−1) + 4(f1/2 +f3/2 + . . .+fn−1/2)] +O(h3).

В итоге получили больший порядок погрешности ошибки, а сама квадра-турная формула совпадает с формулой Симпсона.

1.7.2 Оценка погрешности

Пусть требуется получить приближённое значение интеграла с точностью ε.Возникает вопрос, какой следует выбрать шаг h. Можно попробовать вы-числить оценку погрешности для используемой формулы. В этом случаепридётся иметь дело с производными. Например, вычисляя по формулеСимпсона, потребуется оценить f IV(x). В общем случае это сделать непро-сто. На практике часто используют более удобный метод Рунге.

Пусть S(h) обозначает квадратурную формулу (например, трапецийили Симпсона) с шагом h, которая используется в наших расчётах накомпьютере. Справедливо представление

I =

b∫a

f(x) dx = S(h) +O(hp) = S(h) + chp +O(hp+1),

Page 55: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 7 55

где p — порядок погрешности формулы S(h), а c — константа. Проведёмпоследовательно расчёт на компьютере с шагом h, а затем h/2. Тогда ин-теграл можно приближённо, без учёта O(hp+1) выразить двумя способами

b∫a

f(x) dx≈Sтр(h) + chp

≈Sтр(h/2) + c(h/2)p

Наша цель — это проверка условия |I − S(h/2)| 6 ε. Имеем

|I − S(h/2)| ≈ |c(h/2)p| ≈ |S(h)− S(h/2)|2p − 1

6 ε.

Приведём таблицу для рассмотренных ранее квадратурных формул.

ф. прямоугольников ф. трапеций ф. Симпсона|I − S(h/2)| ≈ |S(h)−S(h/2)|

3 6 ε |I − S(h/2)| ≈ |S(h)−S(h/2)|15 6 ε

Проверка погрешности сводится к проверке неравенства для расчётов сшагами h и h/2. Если неравенство не выполняется, уменьшаем шаг ещё вдва раза и подставляем S(h/2) и S(h/4) и т.д.

Метод можно использовать для выбора шага в зависимости от скоростироста функции f(x) (скорость роста определяется величиной f ′(x)). Когдаскорость роста не велика, можно использовать широкий шаг (рис. 7.1).На участках резкого изменения функции шаг лучше выбрать частый. Вданном подходе в отличии от всюду одинакового шага можно сэкономитьна количестве использованных узлов.

f ′ ≈ 0

f ′ ≈ 0

|f ′| ≫ 0 ÷àñòûé øàãðåäêèé øàã

Рис. 7.1: а) постоянный шаг на всём отрезке [a, b]; б) выбор шага в зави-симости от скорости роста функции (от величины f ′(x))

На практике мы разбиваем весь отрезок [a, b] на p больших частей (p — несколькоединиц)

[a, b] = [a = c0, c1] ∪ [c1, c2] ∪ . . . ∪ [cp−1, cp = b].

Page 56: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 7 56

Если задана погрешность для ответа ε, то на каждой части [ci−1, ci], i = 1, 2, . . . , p зада-

дим погрешность ε/p. Далее с каждым отрезком [ci−1, ci] работаем отдельно, выбирая

свой шаг по методу Рунге.

1.7.3 Формулы Ньютона–Котеса

Приблизим функцию многочленом n-ой степени f(x) ≈ Pn(x). Тогда ин-теграл от f(x) можно приблизить интегралом от многочлена

b∫a

f(x) dx ≈b∫a

Pn(x) dx.

Возникающая при этом погрешность равна

Ψ =

b∫a

[f(x)− Pn(x)] dx

погр.мн. Лагр.

=

b∫a

f (n+1)(ξ(x))

(n+ 1)!ωn+1(x) dx.

Оценивая сверху, получим

|Ψ| 6 Mn+1

(n+ 1)!

b∫a

|ωn+1(x)| dx, где Mn+1 = max[a,b]|f (n+1)(x)|.

Рассмотрим подробнее интеграл от многочленаb∫a

Pn(x) dx =

b∫a

[n∑k=0

fkL

(k)n (x)

L(k)n (xk)

]dx =

n∑k=0

fk

b∫a

L(k)n (x)

L(k)n (xk)

dx

=n∑k=0

fkck,

где ci =∫ba L

(k)n (x) dx/L

(k)n (xk). Видно, что коэффициенты ci являются кон-

стантами, значения, которых не зависят от интегрируемой функции, ноопределяются только узлами x0 = a, x1, x2, . . . , xn = b. Следовательно,для заданных интервала [a, b] и шага h можно один раз рассчитать ci,i = 0, 1, . . . , n и использовать дальше для численного вычисления любыхфункций по формуле

b∫a

f(x) dx ≈n∑k=0

fkck. (7.1)

Page 57: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 7 57

Последняя формула в случае постоянного шага h = xk − xk−1 = const

носит название формулы Ньютона-Котеса3.Исследуем теперь возможность поставить в (7.1) знак = вместо≈. Пусть

f(x) = a0 + a1x+ . . .+ amxm, am 6= 0 — многочлен степени m. Приблизим

f(x) многочленом Лагранжа Pn(x) степени n. Ясно, что f(x) = Pn(x),если m 6 n и, следовательно,

∫ba f(x) dx =

∫ba Pn(x) dx =

∑nk=0 fkck.

Оказывается, в случае чётного n формула (7.1) будет точна (равенствобудет не приближённым, а точным) даже для m = n+ 1.

Лемма. Если n — чётное, то для коэффициентов формулы Ньютона–Котеса справедливо ck = cn−k, где k = 0, 1, . . . , n/2.Доказательство.

Теорема. Если n — чётное и Pn+1(x) — многочлен степени n + 1, тосправедливо равенство

b∫a

Pn+1(x) dx =n∑k=0

fkck.

В заключении отметим, что формулы Ньютона–Котеса порядка > 10

или n = 8 не применяют из-за того, что коэффициенты ck, k = 0, 1, . . . n

имеют разный знак (это важно для устойчивости, см. далее). При вы-числении интегралов на длинных интервалах [a, b], сам интервал [a, b] де-лится на несколько частей (частичных отрезков). На каждом частичномотрезке строится формула Ньютона–Котеса невысокой степени. В итогена всём отрезке [a, b] получается составная формула Ньютона–Котеса.Примеры составных формул уже встречались при рассмотрении методовпрямоугольников, трапеций и Симпсона.

3Роджер Котес (Roger Cotes) — английский математик (1682–1716).

Page 58: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 7 58

n Формула Ньютона–Котеса (несоставные)2 h

3(f0 + 4f1 + f2)

3 3h8 (f0 + 3f1 + 3f2 + f3)

4 2h45(7f0 + 32f1 + 12f2 + 32f3 + 7f4)

5 5h288(19f0 + 75f1 + 50f2 + 50f3 + 75f4 + 19f5)

6 h140(41f0 + 216f1 + 27f2 + 272f3 + 27f4 + 216f5 + 41f6)

Page 59: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 8 59

1.8 Лекция 8

Лемма 8.1. Если в формуле Ньютона–Котеса n — чётно, тогда ck =

cn−k.

Доказательство. Имеем

ck =

xn∫x0

L(k)n (x) dx

L(k)n (xk)

, cn−k =

xn∫x0

L(n−k)n (x) dx

L(n−k)n (xn−k)

. (8.1)

По определению формулы Ньютона–Котеса xi−xi−1 = h = const. Отсю-да следует, что для любых i, j ∈ {0, 1, . . . , n} справедливо xi−xj = (i−j)h.

Для знаменателей (8.1) получаем, что

L(k)n (xk) =

= (k − 0)h · (k − 1)h · . . . · 2h · 1h · (−1)h · (−2)h · . . . · (k − n)h︸ ︷︷ ︸n− k отриц. множ.

=

= k! (n− k)!hn (−1)n−k,

L(n−k)n (xn−k) =

= (n−k−0)h · (n−k−1)h · . . . ·2h ·1h · (−1)h · (−2)h · . . . · (n− k − n)h︸ ︷︷ ︸k отриц. множ.

=

= (n− k)! k!hn (−1)k.

Так как n — чётное, то числа k и n− k — чётные или нечётные одновре-менно. Следовательно, L(k)

n (xk) = L(n−k)n (xn−k).

Перейдем теперь к числителям (8.1). Заметим, что L(k)n (x) = ωn+1(x)/(x−

xk). Так как n— чётно, то nn/2 является серединой отрезка [x0, xn]. Осталь-ные узлы xk, k = 0, 1, . . . , n расположены симметрично относительно nn/2.Обозначим tk = xn/2 − xk = xn−k − xn/2, тогда

x− xk = (x− xn/2) + (xn/2 − xk) = x− xn/2 + tk,

x− xn−k = (x− xn/2) + (xn/2 − xn−k) = x− xn/2 − tk.

Page 60: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 8 60

Рассмотрим разность числителей из (8.1)xn∫x0

L(k)n (x) dx−

xn∫x0

L(n−k)n (x) dx =

xn∫x0

(ωn+1(x)

x− xk− ωn+1(x)

x− xn−k

)dx =

=

xn∫x0

ωn+1(x)

(1

x− xn/2 + tk− 1

x− xn/2 − tk

)dx = −2tk

xn∫x0

ωn+1(x) dx

(x− xn/2)2 − t2 .

Функция ωn+1(x) — нечётна относительно x = xn/2, функция (x−xn/2)2−t2 — чётна относительно x = xn/2. Следовательно, всё подинтегральноевыражение является нечётной функций относительно x = xn/2. Так какxn/2 есть середина отрезка [x0, xn], по которому происходит интегрирова-ние, то интеграл равен нулю.

Мы показали, что в (8.1) числители и знаменатели равны. Следователь-но, ck = cn−k.

Теорема 8.2. Формула Ньютона–Котеса, где n — чётное число, точнадля любого многочлена степени n+ 1.

Доказательство. Пусть f(x) = an+1xn+1 + anx

n + . . .+ a1x+ a0. ФормулаНьютона-Котеса имеет вид

b∫a

f(x) dx ≈ c0f(x0) + c1f(x1) + . . .+ cnf(xn).

Погрешность формулы будет равна

ε =

b∫a

f(x) dx− (c0f(x0) + c1f(x1) + . . .+ cnf(xn)) =

b∫a

f(x) dx−b∫a

Pn(x) dx,

где Pn(x) — интерполяционный многочлен Лагранжа степени n.

ε =

b∫a

f (n+1)(x(ξ))

(n+ 1)!ωn+1(x) dx.

Очевидно f (n+1)(x) = an+1 · (n+ 1)! Поэтому

ε = an+1

b∫a

ωn+1(x) dx = an+1

b∫a

(x− x0)(x− x1) . . . (x− xn) dx.

Page 61: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 8 61

Сделаем замену t = x− xn/2.

ε = an+1

b−xn/2∫a−xn/2

(t+ xn/2 − x0)(t+ xn/2 − x1) . . . (t+ xn/2 − xn) dx.

Вспомним, что a = x0, b = xn, середина отрезка [a, b] — это a+b2 = xn/2.

Кроме этого xi − xi−1 = h. Отсюда

b− xn/2 = −a+ b

2,

a− xn/2 =a+ b

2,

xn/2 − x0 =n

2h,

xn/2 − x1 =(n

2− 1)h,

...

xn/2 − xn =(n

2− n

)h = −n

2h.

Вернёмся к погрешности

ε = an+1

(a+b)/2∫−(a+b)/2

(t− n

2h)(

t−(n

2− 1)h)· · ·

· · · (t− h)t(t+ h) · · ·· · ·(t+

(n2− 1)h)(

t+n

2h)dx.

Пределы интегрирования симметричны, подинтегральная функция нечет-ная. Интеграл равен нулю и погрешность также равна нулю.

1.8.1 Устойчивость квадратурных формул к погрешностям входных дан-ных

Изучим влияние погрешности входных данных на результат численно-го интегрирования. Рассмотрим в общем виде квадратурную формулу

Page 62: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 8 62

Ньютона–Котеса (неважно простую или составную)b∫a

f(x) dx ≈n∑k=0

ckf(xk) = In. (8.2)

Заметим сразу, что для функции f(x) ≡ 1 формула In точна, т.е.b∫a

1 dx =n∑k=0

ck · 1 и, следовательно,n∑k=0

ck = b− a.

Пусть из-за округлений или неточных измерений входные данные со-держат погрешность. Т.е. вместо точных значений f(xk), k = 0, 1, . . . , n

мы располагаем f(xk) = f(xk) + δk, где δk — погрешность в точке xk.Вместо (8.2) получим

In =n∑k=0

ckf(xk) =n∑k=0

ckf(xk) +n∑k=0

ckδk = In + δIn, где δIn =n∑k=0

ckδk.

Возможны два случая: (а) все ck > 0, k = 0, 1, . . . , n и (б) не все ckодного знака.

В случае (a) имеем оценку

|δIn| 6n∑k=0

|ck||δk| =n∑k=0

ck|δk| 6 (maxk|δk|)

n∑k=0

ck = (b− a) maxk|δk|,

которая означает, что погрешность δIn не зависит от количества узлов n(или, что то же самое, от величины шага h). δIn пропорциональна наи-большей из погрешностей входных данных max

k|δk|. Случай (а) устойчив.

В случае (б)n∑k=0

|ck| >n∑k=0

ck. Суммаn∑k=0

ck = b−a равномерно ограниче-

на по n, так как её величина не зависит от количества разбиений отрезка[a, b]. Напротив, сумма

n∑k=0

|ck| может не оказаться равномерно ограничен-

ной по n и с ростом n будет неограниченно возрастать. Следовательно,ошибка

|δIn| 6n∑k=0

|ck||δk|

уже не будет пропорциональна maxk|δk| (будет намного больше). Случай

(б) неустойчив.

Page 63: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 8 63

Подводя итог, скажем, что для устойчивости квадратурных формулнеобходима положительность коэффициентов ck. Следовательно, форму-лы Ньютона–Котеса (простые или составные) должны быть основаны намногочленах Лагранжа степени n 6 9 и n 6= 8. При n = 8 или n > 10

коэффициенты ck меняют знак.

1.8.2 Приёмы вычисления несобственных интегралов

Будем рассматривать сходящиеся интегралы двух типов

1.b∫a

f(x) dx, причём f(x)→∞ при x→ a.

2.∞∫a

f(x) dx.

Второй интеграл можно свести к первому заменой переменной t = 1x , dx =

−dtt2 ,

1/a∫0

f(1/t)t2 dt.

Рассмотрим интегралы первого типа. Непосредственное применение фор-мул трапеций или Симпсона невозможно (так как в узле интегрированияx = a функция f(x) неопределена). Использование формулы прямоуголь-ников возможно, но оценка точности теряет смысл, так как f ′(0) неопре-делена.

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

I =

1∫0

cosx√xdx.

а) Подходящая замена переменной

x = t2, dx = 2tdt = 2√xdt, I = 2

1∫0

cos(t2) dt.

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

Page 64: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 8 64

б) Интегрирование по частям

I =

1∫0

cosx√xdx = 2

√x cosx|10 + 2

1∫0

√x sinx dx.

Последний интеграл можно вычислить численно, но оценка погрешностиравна O(h), т.к. (

√x sinx)′|x=0 не существует. Если ещё раз проинтегриро-

вать по частям, то под знаком интеграла окажется функция f(x) ∈ C2[0, 1]

(дважды непрерывно дифференцируемая на отрезке [0, 1]). В этом случаеошибка будет O(h2).

в) Разбиение на два интеграла

I = I1 + I2, I1 =

δ∫0

cosx√xdx, I2 =

1∫δ

cosx√xdx.

Второй интеграл I2 не содержит особенности и может быть вычислен полюбой квадратурной формуле с точностью ε/2. Первый интеграл I1 вы-числяется аналитически после замены cosx соответствующим рядом Тей-лора

I1 =

δ∫0

1− x2

2! + x4

4! + . . .+ (−1)m x2m

(2m)! + . . .√x

dx = 2√δ− 1

2!

2

5δ5/2+

1

4!

2

9δ9/2+

+ . . .+ (−1)m1

2m!

1

2m+ 1/2δ2m+1/2 + . . .

Нам нужно получить значение I1 с точность ε/2. Ряд в разложении I1

удовлетворяет условиям сходимости признака Лейбница4, поэтому, если4

Теорема (признак Лейбница). Если члены знакочередующегося ряда

S = p1 − p2 + p3 − . . .+ (−1)k−1pk + . . . , где все pk > 0,

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

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

|Sn − S| 6 pn.

Page 65: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 8 65

отбросить слагаемые с номерами большими m, мы допустим погрешностьне более, чем модуль последнего оставшегося слагаемого

1

2m!

1

2m+ 1/2δ2m+1/2 6

ε

2.

Считаем, что точность ε фиксирована. Чтобы выполнялось последнеенеравенство, мы будем варьировать m и δ.

Если выбрать очень малое δ (� 0,1) потребуется совсем немного слага-емых m, но от такого δ пострадает погрешность интеграла I2, куда входитвеличинаM2 (для формулы прямоугольников или трапеций) илиM4 (дляформулы Симпсона). В самом деле, M2 содержит слагаемое ∼ δ−3/2, аM4 — слагаемое ∼ δ−5/2. При малых δ это будут большие числа.

Если выбрать большое δ (� 0,1), погрешность у I2 будет нормальная,но нужно много слагаемых m. Компромиссом можно считать «среднее»δ = 0,1.

В итоге оба интеграла I1 и I2 имеют погрешность не более ε/2, а общаяпогрешность для I = I1 + I2 не превзойдёт ε/2 + ε/2 = ε.

Пример 2. Вычислим интеграл второго типа I =∞∫0

e−x2

dx. Данныйинтеграл можно свести к интегралу первого типа, но мы поступим иначе.

I = I1 + I2, I1 =

A∫0

e−x2

dx, I2 =

∞∫A

e−x2

dx.

Выберем A таким образом, чтобы величиной I2 можно было пренебречь,т.е. |I2| 6 ε/2. Например, при A > 1

∞∫A

e−x2

dx 6

∞∫A

xe−x2

dx =1

2e−A

2

.

Потребуем, чтобы 12e−A2

6 ε2 , откуда A >

√| ln ε|.

Делее вычислим I1 стандартными методами с точностью ε/2.Мы получили значение интеграла I1 с погрешностью ε/2, а I2 не превос-

ходит ε/2. Следовательно, общая погрешность I = I1 + I2 будет не болееε/2 + ε/2 = ε.

Page 66: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 9 66

1.9 Лекция 9

1.9.1 Элементы линейной алгебры

Норма вектора — это отображение из Rn в R, обозначаемое ‖x‖ и удовле-творяющее свойствам:

1) ‖x‖ > 0, ‖x‖ = 0 ⇔ x = 0,

2) ‖αx‖ = |α| · ‖x‖, α — скаляр,

3) ‖x + y‖ 6 ‖x‖+ ‖y‖.

Примеры:

1. ‖x‖1 =∑i|xi|,

2. ‖x‖2 =√∑

ix2i — евклидова норма,

3. ‖x‖∞ = ‖x‖c = maxi|xi| — равномерная норма.5

Векторное пространство с введённой в нём нормой называют нормиро-ванным. Одновременно оно является метрическим, так как норма опреде-ляет метрику — расстояние между элементами пространства:

ρ(x,y) = ‖x− y‖.

Норма квадратной матрицы A — это отображение из Rn×n в R, обо-значаемое ‖A‖ и удовлетворяющее свойствам:

1) ‖A‖ > 0, ‖A‖ = 0 ⇔ A = 0 (матрица размера n× n из нулей),

2) ‖αA‖ = |α| · ‖A‖, α — скаляр,

3) ‖A+B‖ 6 ‖A‖+ ‖B‖,

4) ‖AB‖ 6 ‖A‖ · ‖B‖.

Норма матрицы A согласована с нормой вектора x, если

‖Ax‖ 6 ‖A‖ · ‖x‖.5Все три нормы — это частные случаи Гёльдеровой нормы ‖x‖p = (

∑ |xi|p)1/p дляp = 1, 2,∞.

Page 67: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 9 67

Норма матрицы A называется подчинённой норме вектора x, если ‖A‖вводится следующим образом:

‖A‖ = supx6=0

‖Ax‖‖x‖ = sup

‖x‖=1

‖Ax‖.

Нетрудно видеть, что подчинённая норма согласована с соответствующейметрикой векторного пространства. В самом деле:

‖Ax‖‖x‖ 6 sup

x6=0

‖Ax‖‖x‖ = ‖A‖,

отсюда‖Ax‖ 6 ‖A‖ · ‖x‖.

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

Вывод формул для вычисления подчинённым матричных норм ‖ · ‖1,‖ · ‖2 и ‖ · ‖∞ приведён в задаче 6.6 в главе «Практические занятия».

Следует отметить, что в конечномерном линейном пространстве всенормы эквивалентны в том смысле, что, если имеет место ‖xn‖α −→

n→∞0

для бесконечной последовательности {xn} в некоторой норме α, то в лю-бой другой норме β также ‖xn‖β −→

n→∞0.

Пусть для данной матрицы A найдётся такой ненулевой вектор x, чтоAx = λx, где λ ∈ R. Тогда x называется собственным вектором, а λ —собственным значением.

Лемма 9.1. Пусть λ — собственное значение матрицы A и detA 6= 0,тогда 1/λ — собственное значение матрицы A−1.

Доказательство. Так как detA 6= 0, то матрица A−1 существует. Умно-жим равенство Ax = λx слева на A−1

A−1Ax = A−1λx откуда A−1x =1

λx.

Page 68: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 9 68

Матрица A называется положительно определённой (A > 0) (неотри-цательно определённой, A > 0), если (Ax,x) > 0 ((Ax,x) > 0) для любыхx 6= 0.

Пусть A > 0 и x — собственный вектор матрицы A, тогда Ax = λx и

(Ax,x) = (λx,x) = λ(x,x).

Из (Ax,x) > 0 и (x,x) > 0 вытекает, что λ > 0. Аналогично из A > 0

следует, что λ > 0.Заметим, что для любой матрицы A и любой согласованной матричной

нормы выполняется неравенство ‖A‖ > |λ|, где λ — собственное значениематрицы A. В самом деле, по определению собственного значения матри-цы

Ax = λx

. По свойству согласованной матричной нормы ‖Ax‖ 6 ‖A‖ · ‖x‖. Далее‖λx‖ = |λ|‖x‖. В итоге получаем ‖A‖ > |λ|.

1.9.2 Численные методы и линейная алгебра

Численные методы линейной алгебры — бурно развивающийся раздел чис-ленных методов. Приведём для подтверждения этого динамику числа на-учных публикаций за последние 200 лет:

1. с 1828 г. по 1974 г. (т.е. за 147 лет) — 4000 наименований;

2. с 1975 г. по 1980 г. (т.е. за 5 лет) — 3000;

3. с 1981 г. по 1984 г. (т.е. за 3 лет) — 4000.

Задачи линейной алгебры — это:

• решение систем линейных алгебраических уравнений (СЛАУ),

• вычисление определителей и обращение матриц,

• вычисление собственных значений и собственных векторов матриц.

Page 69: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 9 69

1.9.3 Прямые методы решения СЛАУ

Пусть требуется найти решение системыa11x1 + a12x2 + . . .+ a1nxn = f1,

a21x1 + a22x2 + . . .+ a2nxn = f2,

· · · · · · · · · · · · · · · · · · · · · · · ·an1x1 + an2x2 + . . .+ annxn = fn,

(9.1)

или в компактной (векторной) форме

Ax = f .

Мы будем считать, что ∆ = detA 6= 0, то есть решение (9.1) существуети единственно.

В принципе, известны формулы Крамера, дающие в явной форме ре-шение задачи (9.1):

xi = ∆i/∆,

где ∆i — определитель матрицы, которая получается из матрицы A заме-ной столбца с номером i столбцом правых частей (9.1). Определители приэтом предлагается вычислять по формулам, рассматриваемым в курсахлинейной алгебры. Например, для ∆:

∆ =∑σ

(−1)|σ|a1σ(1)a2σ(2) . . . anσ(n),

где σ — перестановка чисел 1, 2, . . . n, а |σ| — чётность перестановки. Ко-личество различных перестановок σ равно n!

Однако в качестве конкретного метода решения системы (9.1) данныеформулы совершенно неприменимы, так как при подсчёте каждого опре-делителя по приведённой выше формуле надо вычислить n! слагаемых,что нереально при весьма умеренных n. Например, уже при n = 100 име-ем 100!� 1090. Если одно слагаемое вычисляется, скажем за 10−7 сек, товремя расчёта составит нереальное для практики значение

T � 1090 · 10−7сек =1083

86400суток ≈ 3 · 1075 лет.

Page 70: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 9 70

Метод Гаусса Метод состоит их прямого и обратного ходов.В прямом ходе система уравнений с помощью элементарных преобра-

зований строк матрицы приводится к верхнетреугольному виду. Не огра-ничивая существенно общности, рассмотрим работу прямого хода на при-мере системы трёх уравнений.a11 a12 a13

a21 a22 a23

a31 a32 a33

∣∣∣∣∣∣∣∣f1

f2

f3

→a11 a12 a13

0 a(1)22 a

(1)23

0 a(1)32 a

(1)33

∣∣∣∣∣∣∣∣f1

f(1)2

f(1)3

→a11 a12 a13

0 a(1)22 a

(1)23

0 0 a(2)33

∣∣∣∣∣∣∣∣f1

f(1)2

f(2)3

Главный элемент. Обратимся к примеру системы (см. задачу 1.1 в гла-ве «Практические занятия»){

−10−7x1 + x2 = 1,

x1 + 2x2 = 4.

Мы видели, что в одном из вариантов метода исключения результаты по-лучались совершенно неверными. Напомним «механизм» возникновениябольших погрешностей: деление на малые числа, появление больших (повеличине) промежуточных результатов, потеря точности при вычитаниибольших (близких друг к другу) чисел.

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

Выбор главного элемента по столбцам. Перед исключением x1 отыски-вается max

i|ai1|. Допустим, максимум соответствует i = i0. Тогда первое

уравнение в исходной системе (9.1) меняем местами с i0-м уравнением.(Для компьютера эта процедура связана с перестановкой двух строк рас-ширенной матрицы (9.1).) После этого осуществляется первый шаг исклю-чения. Затем перед исключением x2 из оставшихся уравнений отыскива-ется max

26i6n|a(1)i2 | осуществляется соответствующая перестановка уравнений

Page 71: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 9 71

и т.д.Выбор главного элемента по строке. Перед исключением x1 отыскива-

ется maxj|a1j|· Пусть максимум достигается при j = j0. Тогда поменяем

взаимно номера у неизвестных x1 и xj0 (максимальный по величине изкоэффициентов 1-го уравнения окажется в позиции a11) и приступим кпроцедуре исключения x1, и т.д. Наиболее надежным является метод ис-ключения с выбором главного элемента по всей матрице коэффициентовна каждом шаге исключения.

Рассмотренные модификации метода Гаусса позволяют, как правило,существенно уменьшить неблагоприятное влияние погрешностей округле-ния на результаты расчета.

Впрочем, в прикладных задачах довольно часто приходится сталки-ваться с линейными системами, при решении которых можно не забо-титься о «вредном» воздействии неустранимых погрешностей на решение,спокойно применяя простейшую схему гауссова исключения (без выбораглавного элемента). Это системы, для матриц которых выполнено условиедиагонального преобладания:

|aii| >∑j 6=i|aij| для всех i = 1, n.

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

|a(k)ii | >

n∑j = kj 6= i

|a(k)ij | i = k, n

для всех k = 1, n− 1. Это означает, что перед каждым исключением оче-редной неизвестной главный элемент будет находиться в «нужной пози-ции».

Количество арифметических операций зависит от вида исходнойматрицы

Page 72: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 9 72

I. Диагональная матрица.a11 0 · · · 0

0 a22 · · · 0... ... . . . ...0 0 · · · ann

x1

x2...xn

=

f1

f2...fn

, xk = fk/akk.

Для вычисления каждой переменной xk, k = 1, 2, . . . , n требуется одноделение. Всего потребуется n операций деления.II. Треугольная матрица.a11 a12 · · · a1n

0 a22 · · · a2n... ... . . . ...0 0 · · · ann

x1

x2...xn

=

f1

f2...fn

,xn = fn/ann,

xn−1 = (fn−1 − an−1,nxn)/an−1,n−1,

Для нахождения xn требуется одно деление. Для вычисления xn−1 требу-ется 3 операции (1 разность, 1 умножение, 1 деление). Для вычисления

xn−2 требуется 5 операций и т.д. Всего потребуетсяn∑k=1

(2k−1) = n2 ариф-

метических операций.III. В общем случае, когда матрица имеет много ненулевых элементов, по-требуется прямой и обратный ходы метода Гаусса. Точный расчёт говорит,что потребуется в общем случае 1

6n(n − 1)(4n + 7). Для больших n � 10

оценка приближённо равна 16n · n · 4n = 2

3n3.

1.9.4 Погрешность численного решения СЛАУ

Погрешность входных данных

Оценим неустранимую погрешность решения СЛАУ. Источниками неустра-нимой погрешности являются не только округления при выполнении ма-шинных операций, но также ошибки, содержащиеся в исходных данных.Разберёмся сначала с последними, предполагая, что арифметические опе-рации выполняются точно.

Итак, пусть вместо системы

Ax = f (9.2)

Page 73: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 9 73

решается задача(A+ δA)(x + δx) = f + δf . (9.3)

Здесь δA — матрица возмущений, моделирующих ошибки коэффициентовисходной СЛАУ (9.2), δf — соответственно возмущения правых частей,δx — обусловенный этими возмущениями вектор «ошибок», отличающийрешение (9.3) от решения (9.2).

Переписывая (9.3) в виде

Ax + A · δx + δA · x + δA · δx = f + δf

и вычитая из последнего соотношения (9.2), приходим к системе уравне-ний

Aδx + δA · δx = δf − δA · x, (9.4)

которая описывает зависимость δx от возмущений (ошибок) исходныхданных.

Далее будем полагать, что возмущения коэффициентов уравнений δA ипогрешности решения δx в достаточной мере малы так, что в уравнениях(9.4) можно пренебречь квадратичными членами δA · δx. Тогда интересу-ющую нас ошибку δx можно представить в виде

δx ≈ A−1(δf − δA · x).

Вводя в рассмотрение нормы векторов и согласованные с ними нормыматриц, получим оценку величины погрешности:

‖δx‖ ≈ ‖A−1(δf − δA · x)‖ 6 ‖A−1‖(‖δf‖+ ‖δA‖ · ‖x‖) =

= ‖A−1‖ ·(‖f‖‖δf‖‖f‖ + ‖A‖‖δA‖‖A‖ ‖x‖

).

Учитывая, что ‖f‖ = ‖Ax‖ 6 ‖A‖ · ‖x‖, получаем далее

‖δx‖ 6 ‖A−1‖ ·(‖A‖ · ‖x‖‖δf‖‖f‖ + ‖A‖ · ‖x‖‖δA‖‖A‖

). =

= ‖A−1‖ · ‖A‖ · ‖x‖(‖δf‖‖f‖ +

‖δA‖‖A‖

).

Page 74: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 9 74

В итоге оценка для относительной погрешности решения может быть за-писана в виде

‖δx‖‖x‖ . µA

(‖δf‖‖f‖ +

‖δA‖‖A‖

), (9.5)

где µA = ‖A−1‖ · ‖A‖. Значение µA называется числом обусловленностиматрицы A. Именно эта величина определяет, насколько сильно погреш-ности входных данных могут повлиять на решение системы (9.2).

Всегда µA > 1. В самом деле, имеем E = A−1A. Отсюда 1 = ‖E‖ =

‖A−1A‖ 6 ‖A−1‖·‖A‖ = µA. Если значение µA является умеренным (µA ∼1÷ 10), ошибки входных данных слабо сказываются на решении; система(9.2) в этом случае называется хорошо обусловленной. Если µA велико(µA > 103), система (9.2) плохо обусловлена, решение её сильно зависитот ошибок в правых частях и коэффициентах.З а м е ч а н и е 1 . Вообще говоря, более точное представление о хорошейили плохой обусловленности системы должно опираться на требования,предъявляемые к решению. Если, к примеру, погрешность входных дан-ных ∼ 10−6, а допустимая погрешность решения ∼ 10−2, то даже приµ ∼ 104 систему можно считать хорошо обусловленной.З а м е ч а н и е 2 . Хотелось бы подчеркнуть, что данная свойство (обу-словленность), выражаемое неравенством (9.5), никак не связано с пред-полагаемым методом решения системы, а является изначальной характе-ристикой решаемой задачи.

Пример. Рассмотрим систему{100x1 + 99x2 = 199,

99x1 + 98x2 = 197.

Её решение x1 = x2 = 1.Изменим теперь слегка её правые части{

100x1 + 99x2 = 198,99,

99x1 + 98x2 = 197,01.

Решение «искажённой» системы x1 ≈ 2,97, x2 ≈ 0,99.

Page 75: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 9 75

Чтобы сопоставить полученные результаты с оценкой ||δx||||x|| 6 µA

||δf ||||f || ,

будем пользоваться следующими согласованными нормами для векторови матриц

||x||∞ = maxi|xi|, ||A||∞ = max

i

∑j

|aij|.

Для рассмотреного примера имеем

f =

(199

197

), δf =

(−0, 01

0,01

), ||f ||∞ = 199, ||δf ||∞ = 0,01.

Относительная погрешность ||δf ||∞||f ||∞ ≈12 · 10−4 = 0,005%. Это очень малая

величина.Далее, ||A||∞ = 199,

detA = −1, A−1 =

(−98 99

99 −100

), ||A−1||∞ = 199,

µA = (199)2 = 39601 ≈ 4 · 104.

Используя оценку, получим относительную погрешность решения ||δx||∞||x||∞ 6

4 ·104 · 10−4

2 = 2 = 200%. Это согласуется с результатами решения рассмот-ренных систем.

Погрешность округления при арифметических операциях

Можно показать, что полученное с помощью компьютера решение x′ =

x+δx СЛАУ, вычисленное методом Гаусса (с той или иной схемой выбораглавного элемента или вообще без выбора), точно удовлетворяет уравне-ниям с определённым образом возмущёнными коэффициентами

(A+ δA)(X + δx) = f .

Для нормы матрицы так называемых эквивалентных возмущений δA спра-ведлива оценка вида

‖δA‖ ≈ ng(A)‖A‖p−t.Здесь n — порядок системы, p — основание машинной арифметики (какправило, p = 2), t — число значащих цифр, учитываемых при выполнении

Page 76: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 9 76

арифметических операций (для числа с плавающей запятой одинарной

точности t = 26, для двойной: t = 52) g(A) = maxk

maxi,j|a(k)ij |

maxi,j|aij|

, где k —

номер шага на этапе прямого хода метода исключений. (Таким образом,величина g(A) показывает, насколько могут возрасти пересчитываемыеэлементы матрицы на стадии приведения её к треугольному виду. Отсюдаеё название — коэффициент роста.)

Привлекая далее (9.5), получаем оценку ошибок решения системы (9.2)за счёт погрешностей вычислений:

‖δx‖‖x‖ ≈ µAng(A)p−t. (9.6)

Если, например, решается система из 103 уравнений и µA ≈ 1, g(A) ≈ 1,то при счёте c двойной точностью (p = 2, t = 52) нельзя рассчитывать на

точность лучшую, нежели‖δx‖‖x‖ ∼ n · 2−52 ∼ n · 10−15|n=103 ∼ 10−12. Если

при этом µA ≈ 1012, то может произойти полная потеря точности.З а м е ч а н и е . Плохо обусловленные СЛАУ вызывают определённые

трудности при решении. Из (9.5) следует, что решение их сильно зависитот ошибок входных данных, а из (9.6) вытекает, что даже при отсутствииошибок во входных величинах может произойти значительная (если неполная) потеря точности на стадии вычислений по методу Гаусса за счётпогрешностей округлений.

1.9.5 Итерационные методы решения СЛАУ

По-прежнему будем рассматривать системы вида Ax = f . Различные ва-рианты итерационных методов связаны с переходом к эквивалентной си-стеме

Ax = f ⇔ x = Px + g.

Берём некоторое начальное приближение x(0) и очевидным образомстроим итерационный процесс x(k) = Px(k−1) + g. Здесь x(k) обозначаетk-е по счёту приближение к искомому вектору x.

Page 77: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 9 77

Условия сходимости метода последовательных приближений формули-руются в следующих теоремах.

Теорема 9.2. Для сходимости итераций

x(k) = Px(k−1) + g, где x(0) задано (9.7)

к решению системыx = Px + g (9.8)

достаточно, чтобы в какой-либо норме выполнялось условие

||P || 6 q < 1.

Тогда независимо от выбора x(0)

||x(k) − x∗|| 6 qk||x(0) − x∗||,

где x∗ — точное решение.

Доказательство. Подстановка точного решения в (9.8) обращает послед-нее в тождество

x∗ = Px∗ + g.

Вычитая его из (9.7), получим

x(k) − x∗ = P (x(k−1) − x∗),

где (x(k) − x) — вектор погрешности (или просто погрешность k-го реше-ния).

Оценивая погрешность по какой-либо норме (с которой согласована нор-ма матрицы, фигурирующая в условии теоремы), получаем

||x(k) − x∗|| 6 ||P || · ||x(k−1) − x∗|| 66 q||x(k−1) − x∗|| 6 . . . 6 qk||x(0) − x∗||.

Очевидно, что при q < 1 limk→∞

x(k) = x∗.

Теорема 9.3. (без доказательства) Для сходимости итераций (9.7) крешению системы (9.8) необходимо и достаточно, чтобы все собствен-ные значения матрицы P по абсолютной величине были меньше едини-цы.

Page 78: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 9 78

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

Метод Гаусса (в простейшей интерпретации), как мы видели, при n� 1

требует выполнения приблизительно 23n

3 арифметических операций. Ме-тод итераций x(k) = Px(k−1) + g реализуется приблизительно за (2n2)K

операций (2n2 умножений и сложений связано с умножением матрицы P

на вектор x(k−1),K — число приближений). Если допустимая погрешностьдостигается при K < n/3, то метод итераций становится предпочтитель-ней. В задачах, с которыми практически приходится иметь дело, зачастуюK � n.

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

Метод Якоби. Запишем каждое уравнение системы Ax = f в виде, раз-решённом относительно неизвестного с коэффициентом на главной диаго-нали матрицы A:

xm =1

amm(fm − am1x1 − am,m−1xm−1 − am,m+1xm+1 − . . .− amnxn),

m = 1, 2, . . . , n.То есть мы переписали Ax = f в виде x = Px + g с матрицей

P = −

0 a12

a11a13a11· · · a1n

a11a21a22

0 a23a22· · · a2n

a22... ...an1ann

an2ann

an3ann· · · 0

.

Page 79: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 9 79

Если ввести в рассмотрение диагональную матрицу

D =

a11 0

a22

. . .

0 ann

,

то P = −D−1(A−D), g = D−1f .Итерационный процесс (9.7) с определённой таким образом матрицей P

называется методом Якоби. Фактически вычисления проводятся по фор-мулам

x(k)m =

1

amm(fm − am1x

(k−1)1 − . . .− am,m−1x

(k−1)m−1 −

− am,m+1x(k−1)m+1 − . . .− amnx(k−1)

n ), m = 1, 2, . . . , n. (9.9)

Для сходимости метода Якоби достаточно, чтобы для исходной матри-цы A имело место диагональное преобладание, т.е. чтобы коэффициентыисходных уравнений удовлетворяли условиям

|aii| >∑j 6=i|aij| для всех i.

В самом деле, тогда условие теоремы 9.2 выполнено для нормы ||P ||∞:

||P ||∞ = maxi

∑j 6=i

|aij||aii|

= maxi

∑j 6=i|aji|

|aii|< 1.

Метод Зейделя.

Этот метод отличается от метода Якоби только тем, что при вычисленииk-го приближения m-й компоненты используются уже вычисленные k-е

Page 80: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 9 80

приближения предыдущих (1-й, 2-й, . . . , (m− 1)-й) компонент:

x(k)1 =

1

a11

(f1 − a12x

(k−1)2 − a13x

(k−1)3 − . . .− a1nx

(k−1)n

),

x(k)2 =

1

a22

(f2 − a21x

(k)1 − a23x

(k−1)3 − . . .− a2nx

(k−1)n

),

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·x

(k)m =

1

amm

(fm − am1x

(k)1 − am2x

(k)2 − . . .− amm−1x

(k)m−1−

−amm+1x(k−1)m+1 − . . .− amnx

(k−1)n

),

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

Если представить матрицу A в виде суммы A = A− + D + A+ (A− —нижняя треугольная, A+ — верхняя треугольная и D — диагональнаяматрицы с элементами исходной матрицы A), то методу Зейделя соответ-ствует матрица

P = −(A− A+)−1A− = −(A− +D)−1A−.

Можно доказать, что метод Зейделя гарантировано сходится, если:

• выполнено условие диагонального преобладания матрицы A; или

• матрица A является симметричной и положительно определенной.

В одинаковых условиях (при наличии диагонального преобладания) ме-тод Зейделя сходится примерно в два раза быстрее метода Якоби.

Однопараметрический метод итераций

Перепишем Ax = f в виде x = x − τ(Ax − f) = (E − τA)x + τ f , где τ —пока неопределенный параметр.

Мы фактически привели Ax = f к форме x = Px + g, где P = E − τAи g = τ f . Итерационная последовательность имеет вид

x(k) = Px(k−1) + g, (9.10)

Далее будем предполагать, что матрица исходной системы симметрич-на и положительно определена (т.е. A> = A и A > 0) и что известны

Page 81: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 9 81

границы спектра матрицы A (минимальное и максимальное собственныезначения). При этих предположениях мы не только определим диапазонзначений τ , гарантирующих сходимость, но и найдем оптимальное τ , прикотором величина погрешности приближений убывает с номером прибли-жения наиболее быстро.

Итак, замечая, чтоx∗ = Px∗ + g, (9.11)

x∗ — точное решение Ax = f , и вводя в рассмотрение вектор ошибки k-гоприближения r(k) = x(k) − x∗, получим, вычитая (9.11) из (9.10):

r(k) = Pr(k−1). (9.12)

Собственные значения матрицы A обозначим через λi, а собственныезначения P — через µi. Очевидно, что µi = 1− τλ.

Найдём Евклидову норму P . Так как E = E> и A = A>, то P =

E−τA = E>−τA> = P>. Если µi — собственное значение матрицы P , тоµ2i — будет собственным значением матрицы P>P = P 2. Действительно

из Px = µx следует, что P 2x = µPx = µ2x. Для подчинённой нормы 2

справедливо‖P‖2 =

√maxiµ2i = max

i|µi|.

По теореме 9.2 для сходимости итерационного процесса требуется, чтобывыполнялось ‖P‖2 = max

i|µi| 6 q < 1. Из этой же теоремы следует, что

‖r(k)‖22 6 max

iµ2i · ‖r(k−1)‖2

2. (9.13)

Таким образом, если maxi|µi| 6 q < 1, то погрешность будет убывать с

номером приближения как член геометрической прогрессии со знаменате-лем q.

Оптимизация параметра. В силу (9.13) для быстрого убывания нор-мы ошибки ‖r(k)‖ нужно, чтобы величина max

i|µi| была как можно мень-

ше. Кроме того для сходимости итерационного процесса необходимо, что-бы max

i|µi| 6 q < 1.

Page 82: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 9 82

Рис. 9.1: Выбор оптимального значения параметра τ .

Для удобства введём следующие обозначения

λ = miniλi, Λ = max

iλi.

На рис. 9.1 в системе координат λ и µ прямая

µ = 1− τλ (9.14)

проходит через точку (λ, µ) = (0, 1). Так как maxi|µi| < 1, то параметр τ

может меняться в пределах 0 < τ < 2/Λ. Следовательно, прямая (9.14)при различных τ описывает заштрихованную на рис. 9.1 область. Наиболь-шие отклонения прямой µ = 1 − τλ от нуля на отрезке λ 6 λ 6 Λ будутпри λ = λ или при λ = Λ. Из геометрических соображений очевидно, чтозначение max

i|µi| = max

i|1 − τλi| будет достигнуто либо при λ = λ, либо

при λ = Λ.Вспомним, что наша цель — это подобрать такое значение τ , чтобы

число maxi|µi| было как можно меньше. Глядя на рисунок, несложно за-

метить, что при искомом оптимальном значении τ прямая µ = 1 − τλ

должна пересечь с е р е д и н у отрезка [λ,Λ], то есть

µ = 0 = 1− τ · λ+ Λ

2︸ ︷︷ ︸сер. отр. [λ,Λ]

, откуда τопт =2

λ+ Λ.

Имеем

q = maxi|µi| = |1− τоптλ| = |1− τоптΛ| = 1− 2λ

λ+ Λ=λ− Λ

λ+ Λ. (9.15)

Page 83: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 9 83

Именно величина q определяет реальный темп убывания погрешности сномером приближения в рамках оптимального однопараметрического ите-рационного процесса. Имеет место оценка

‖r(k)‖ 6 qk‖r(0)‖. (9.16)

Откуда, получаем априорную оценку числа приближений, гарантирую-щих достижение заданной точности ε:

k > k0 =ln ε‖r(0)‖

ln q0

Найдем µA, используя норму 2. По условию матрица A — симметрич-ная, то есть A> = A. Тогда A>A = A2. Если λi — собственное значениематрицы A, то λ2

i — собственное значение матрицы A2 = A>A. Для нормыA получим

‖A‖2 =√

maxi|λ2i | = max

i|λi| A>0

= maxiλi = Λ.

Аналогично для обратной матрицы с помощью леммы 9.1

‖A−1‖2 =

√maxi

1

|λ2i |

= maxi

1

|λi|A>0= max

i

1

λi=

1

λ.

В результатеµA = Λ/λ.

Теперь можно в (9.15) выразить q через µA

q =µA − 1

µA + 1.

Если µA � 1 (число обусловленности велико), то

ln q0 = lnµA − 1

µA + 1= ln(µA − 1)− ln(µA + 1) ≈ −2/µA

иk0 ≈

µA2

lnε

‖r(0)‖ . (9.17)

3 а м е ч а н и е . Здесь приводятся некоторые оценки для систем с боль-шим числом обусловленности. Это не случайно. Дело в том, что с такими

Page 84: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Лекция 9 84

системами приходится иметь дело довольно часто при численном решенииуравнений с частными производными.

П р и м е р . Пусть надо решить систему из n = 104 линейных уравне-ний с симметричной положительно определенной матрицей. Метод Гауссатребует в этом случае выполнения порядка n3 ∼ 1012 элементарных опе-раций. В итерационных методах для перехода от одного приближения кследующему необходимо выполнить порядка n2 операций. Таким образом,объем вычислений, который сопряжен с методом итераций с одним опти-мальным параметром (k0n

2), согласно (9.17) порядка µA · ln 1ε ·108, и при не

слишком больших числах обусловленности этот метод эффективнее мето-да Гаусса.

Каноническая форма записи итерационных методов

Многообразие итерационных схем, созданных для решения различных ли-нейных систем, можно представить в канонической форме записи:

Bk+1X(k+1) −X(k)

τk+1+ AX(k) = f .

Принята следующая классификация:

• Bk = E — явные итерационные процессы,

• Bk 6= E — неявные итерационные процессы,

• Bk = B, τk = τ — стационарные итерационные процессы.

Нами были рассмотрены следующие частные случаи:

1. Bk = E, τk = τ — однопараметрический метод;

2. Bk = D, τk = 1 — метод Якоби;

3. Bk = D + A−, τk = 1 — метод Зейделя.

Page 85: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Метод Прогонки. 85

1.10 Метод Прогонки.

В общем случае системы с трёхдиагональной матрицей имеют вид{ajyj−1 − cjyj + bjyj+1 = −fj, j = 1, 2, . . . , n− 1,

y0 = κ1y1 + µ1, yn = κ2yn−1 + µ2.(10.1)

Или в матричном виде Ay = f :

−1 κ1 0a1 −c1 b1

a2 −c2 b2

. . . . . . . . .

an−1 −cn−1 bn−1

0 κ2 −1

︸ ︷︷ ︸

A

y0

y1

y2...

yn−1

yn

︸ ︷︷ ︸

y

=

−µ1

−f1

−f2...

−fn−1

−µ2

︸ ︷︷ ︸

f

В матрице A на главной диагонали и в векторе f стоят элементы со зна-ком «минус». Это объясняется применением метода прогонки для решенияразностных схем для дифференциальных уравнений второго порядка.6

Будем искать решение в виде

yj = αj+1yj+1 + βj+1, j = 0, 1, . . . , n− 1, (10.2)

где αj+1, βj+1 — неизвестные пока коэффициенты. Отсюда найдём

yj−1 = αjyj + βj = αj (αj+1yj+1 + βj+1)︸ ︷︷ ︸yj

+βj = αjαj+1yj+1 + (αjβj+1 + βj),

где j = 1, 2, . . . , n − 1. Подставляя полученные коэффициенты для yj иyj−1 в уравнение (10.1) и объединяя слагаемые с yj+1, приходим при j =

1, 2, . . . , n− 1 к уравнению

[αj+1(ajαj − cj) + bj]︸ ︷︷ ︸приравняем к нулю

yj+1 + [βj+1(ajαj − cj) + ajβj + fj]︸ ︷︷ ︸приравняем к нулю

= 0.

Последнее уравнение будет выполнено, если коэффициенты αj+1, βj+1

выбрать такими, чтобы выражения в квадратных скобках обращались в6Например, вторая производная в точке xk аппроксимируется разделённой разно-

стью 1h2

(yk−1 − 2yk + yk+1), где коэффициент при yk отрицательный.

Page 86: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Метод Прогонки. 86

нуль. А именно, достаточно положить

αj+1 =bj

cj − αjaj, βj+1 =

ajβj + fjcj − αjaj

, j = 1, 2, . . . , n− 1. (10.3)

Для того, чтобы применять последние соотношения нужно задать началь-ные значения α1, β1. С одной стороны y0 = α1y1 + β1, с другой стороныпо условию задано, что y0 = κ1y1 + µ1. Таким образом, получаем

α1 = κ1, β1 = µ1. (10.4)

Нахождение коэффициентов αj+1, βj+1 по формулам (10.3) и (10.4) на-зывается прямой прогонкой. После того как прогоночные коэффициентыαj+1, βj+1, j = 0, 1, . . . n − 1, найдены, решение системы (10.1) находитсяпо рекуррентной формуле (10.2), начиная с j = n − 1. Для начала счётапо этой формуле требуется знать yn, которое определяется из уравнений

yn = κ2yn−1 + µ2, yn−1 = αnyn + βn

и равно (κ2βn + µ2)/(1− κ2αn). Нахождение yj по формулам

yj = αj+1yj+1 + βj+1, j = n− 1, n− 2, . . . , 0,

yn =κ2βn + µ2

1− κ2αn(10.5)

называется обратной прогонкой.Метод прогонки можно применять, если знаменатели выражений (10.3),

(10.5) не обращаются в нуль. Достаточные для этого условия перечисленыв следующих двух теоремах.

Теорема 10.1 (достаточное условие применимости прогонки). Пусть

aj 6= 0, bj 6= 0,

|cj| > |aj|+ |bj|, j = 1, 2, . . . , n− 1 (диагональное преобладание), (10.6)

|κ1| 6 1, |κ2| < 1, (10.7)

тогда метод прогонки применим.

Page 87: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Метод Прогонки. 87

Доказательство. Сначала докажем по индукции, что при условиях тео-ремы |αj| 6 1, j = 1, . . . , n − 1. Базис индукции: α1 = κ1 и |κ1| 6 1,следовательно, |α1| 6 1. Индуктивный переход: пусть |αj| 6 1, докажем,что |αj+1| 6 1. Из оценок7

|cj − αjaj| > | |cj| − |αj| |aj| ||αj| 6 1

> | |cj| − |aj| |(10.6)> |bj| > 0,

т.е. знаменатели выражений (10.3) не обращается в нуль. Более того,

|αj+1| =|bj|

|cj − αjaj|6 1.

Следовательно, |αj| 6 1, j = 1, 2, . . . , n. Далее, учитывая условие теоремы|κ2| < 1 и только что доказанное |αn| 6 1, имеем

|1− κ2αn| > 1− |κ2| |αn| > 1− |κ2| > 0,

т.е. не обращается в нуль и знаменатель в выражении для yn.

Теорема 10.2 (альтернативный вариант). Пусть aj 6= 0, bj 6= 0, |cj| >|aj| + |bj|, j = 1, 2, . . . , n − 1, |κ1| 6 1, |κ2| 6 1, тогда метод прогонкиприменим.

Доказательство. Действуем аналогично предыдущему доказательству. Вданном случае из предположения |αj| 6 1 следует

|cj − αjaj| > | |cj| − |aj| | > |bj|, |αj+1| < 1,

т.е. все прогоночные коэффициенты, начиная со второго, по модулю строгоменьше единицы. При этом |1− κ2αn| > 1− |κ2| |αn| > 1− |αn| > 0.

Количество арифметических операций у метода прогонки оцени-вается ∼ 8n. Это очень мало сравнительно с другими методами решенияСЛАУ. Причина кроется в том, что матрица A содержит много нулевыхэлементов.

7Использованы неравенства «треугольника»: для любых a, b ∈ R справедливо, что|a|+ |b| > |a+ b| и |a− b| > | |a| − |b| |.

Page 88: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Метод Прогонки. 88

Устойчивость метода прогонки к погрешностям входных дан-ных. Если выполняются условия теоремы 10.1 или теоремы 10.2, то, какбыло доказано, |αj| 6 1, j = 1, 2, . . . , n. Пусть на каком-либо шаге вычис-лений была внесена погрешность. Тогда эта погрешность не будет возрас-тать при переходе к следующим шагам. Действительно, пусть в формулах(10.2) или (10.5) при j = j0 + 1 вместо yj0+1 вычислена величина yj0+1 =

yj0+1 +δj0+1. Тогда на следующем шаге вычислений, т.е. при j = j0, вместоyj0 = αj0+1yj0+1 + βj0+1 получим величину yj0 = αj0+1(yj0+1 + δj0+1) + βj0+1

и погрешность окажется равной

δj0 = yj0 − yj0 = αj0+1δj0+1.

Отсюда получим, что |δj0| 6 |αj0+1| |δj0+1| 6 |δj0+1|, т.е. погрешность невозрастает.

Page 89: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Численное решение дифференциальных уравнений 89

1.11 Численное решение дифференциальных уравнений

Будем рассматривать обыкновенные дифференциальные уравнения

F (x, u(x), u′(x), . . . , u(n)) = 0. (11.1)

Как известно, в общем случае такие уравнения имеют бесконечно мно-го решений. В приложениях требуется выделить одно из этих решений.Поэтому, часто уравнение (11.1) рассматривают в сочетании с дополни-тельными ограничивающими условиями. Рассмотрим основные типы до-полнительных условий, с которыми мы будем дальше работать.

1. Задача Коши для дифференциального уравнения первого порядка{u′ = f(x, u), x ∈ [a, b],

u(xa) = ua.(11.2)

2. Краевая задача для линейного дифференциального уравнения второгопорядка

u′′ + g(x)u′ + h(x)u = f(x), x ∈ [a, b],

α1u′(a) + β1u(a) = ua,

α2u′(b) + β2u(b) = ub.

(11.3)

Граничные условия принято разделять на следующие типы: (а) пер-вого рода, если αi = 0, i = 1, 2; (б) второго рода, если βi = 0, i = 1, 2;(в) третьего рода, если αi и βi одновременно отличны от нуля.

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

Многие методы решения дифференциальных задач сводятся к следу-ющему. На интересующем нас отрезке [a, b], на котором требуется найтичисленное решение задачи для дифференциального уравнения, вводитсянабор точек или сетка

ω = {x0, x1, . . . , xn}.

В дальнейшем мы всегда будем считать, что расстояние между соседни-ми узлами сетки xk и xk+1 есть константа h, называемая шагом сетки.

Page 90: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Численное решение дифференциальных уравнений 90

Кроме того полагаем x0 = a, xn = b. Теперь исходное дифференциальноеуравнение мы будем рассматривать только в узлах сетки ω

F (xk, u(xk), u′(xk), u

′′(xk), . . . , u(p)(xk)) = 0, k = 0, 1, . . . , n. (11.4)

Для краткости договоримся вместо u(xk) писать uk. Теперь осталось пе-рейти от дифференциального уравнения (11.4) к разностному. Для этогозаменим все вхождения символа uk на yk, а все вхождения символов про-изводной на соответствующие разностные производные. Например,

u′k →1

h(yk+1 − yk) или u′k →

1

2h(yk+1 − yk−1),

u′′k →1

h2(yk−1 − 2yk + yk+1).

Переход от символов производной к разностным производным неоднозна-чен. При выборе той или иной разностной формулы могут сыграть рольпорядок погрешности формулы (например, O(h) или O(h2)), а также чис-ло соседних узлов, задействованных в формуле (например, два узла xk иxk+1 или три узла xk−1 и xk+1).

Решением разностного уравнения будет сеточная функция yk = y(xk).Термин «сеточная» говорит от том, что область определения функцииy(x) есть не весь отрезок [a, b], а только узлы сетки ω. Итак, u(x) и y(x)

есть различные функции, но при определённых условиях можно считатьuk ≈ yk, k = 0, 1, . . . , n.

При использовании приближённых методов основным является вопросо сходимости. Понятие сходимости приближённого метода можно сфор-мулировать по-разному. Будем рассматривать понятие сходимости приh→ 0. Оно означает следующее. Фиксируем точку x и построим последо-вательность сеток ωh таких, что h→ 0 и xn = nh = x (при этом, очевидно,n→∞). Говорят, что численное решение сходится в точке x к точномурешению, если |yn − u(xn)| → 0 при h→ 0, xn = x.

Численное решение сходится на отрезке [a, b] к точному решению, еслионо сходится в каждой точке этого отрезка.

Погрешность решения — это числовая характеристика δh, показыва-ющая, насколько истинное решение u(xk) дифференциального уравнения

Page 91: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Численное решение дифференциальных уравнений 91

отклоняется от решения yk системы разностных уравнений. Для погреш-ности решения мы будем использовать величину δh = max

k|yk − u(xk)| =

||yk − u(xk)||∞, k = 0, 1, . . . , n.Говорят, что численное решение имеет p-ый порядок точности, если су-

ществует число p > 0 такое, что δh = O(hp) при h→ 0.Очевидно, в общем случае точное решение дифференциальной задачи

u(x) и решение разностной схемы yk, k = 0, 1, . . . , n не совпадают. Поэто-му, если решение дифференциального уравнения подставить в разностноеуравнение, последнее перестанет быть равенством из-за появления невяз-ки. Данная невязка называется погрешностью аппроксимации и обозна-чается ψ. Если при уменьшении шага h → 0 выполняется ψ = O(hp) длянекоторого p, то говорят, что погрешность аппроксимации имеет порядокp. Если ψk 6→ 0 при h→ 0, то говорят, что разностная схема не аппрокси-мирует дифференциальное уравнение.

Найти аналитически погрешность решения — это часто очень сложнаяили неразрешимая задача. Напротив, вычислить погрешность аппрокси-мации довольно легко. На практике важно знать, какой порядок точностиимеет та или иная разностная схема. Оказывается, что ответить на этотвопрос можно, зная порядок погрешности аппроксимации.

Теорема 11.1 (без доказательства). Пусть а) некоторая разностная схе-ма аппроксимирует задачу (11.2) или задачу (11.3), причём ψk = O(hp);б) решение разностной схемы yk, k = 0, 1, . . . , n устойчиво к погрешно-стям входных данных (т.е. малые погрешности в функции f из правойчасти (11.2) или (11.3) приводят к незначительным изменениям реше-ния yk). Тогда решение yk, k = 0, 1, . . . , n разностной схемы сходится крешению u(xk) дифференциального уравнения при h→ 0, и имеем местоследующая оценка погрешности δh = O(hp).

Мы не будем останавливаться на вопросе устойчивости решения yk,k = 0, 1, . . . , n разностных схем. Отметим лишь, что все рассматривае-мые далее методы устойчивы.

Page 92: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Численное решение дифференциальных уравнений 92

Метод Эйлера. Заменим в задаче Коши (11.2) производную правойразделённой разностью

yk+1 − ykh

= f(xk, yk), k = 0, 1, 2, . . . , n− 1, y0 = ua. (11.5)

Решение этой системы уравнений находится явным образом по рекуррент-ной формуле

yk+1 = yk + hf(xk, yk), k = 0, 1, . . . , n− 1, y0 = ua.

Геометрическая интерпретация метода состоит в замене точного реше-ния ломаной (рис. 11.1). При этом угол наклона отрезка ломаной приx ∈ [xk, xk+1] совпадает с углом наклона касательной к графику точногорешения u(x) в точке (xk, uk).

x0 = a x1 x2 b = xn

u(x)

yk+1−ykh = f(xk, yk)

yk+1−ykh = f(xk+1, yk+1)

yk+1−ykh = f(xk,yk)+f(xk+1,yk+1)

2

y0

y1y2

yn

Рис. 11.1: Геометрическая интерпретация метода Эйлера. Справа три мо-дификации метода для разных способов выбора углов наклона отрезковломаной.

Найдём погрешность аппроксимации аппроксимации. Для этого нужнов разностное уравнение (11.5) подставить точное решение u(x). Применимследующий метод. Зафиксируем узел xk и выразим значение точного ре-шения u(x) в соседних узлах xk±1, xk±2, . . . в виде разложения в ряд Тейло-ра в окрестности точки xk. В нашем случае в разностное выражение (11.5)входят только два соседних узла xk и xk+1. Представим uk+1 = u(xk+1) ввиде ряда Тейлора

uk+1 = uk + hu′k+1 +O(h2).

Подставим точное решение uk и uk+1 дифференциального уравнения (11.2)

Page 93: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Численное решение дифференциальных уравнений 93

в разностное уравнение (11.5) вместо yk и yk+1. Вычитая из правой частилевую, получим невязку

ψk =uk+1 − uk

h− f(xk, yk) = u′k +O(h)− f(xk, yk).

Из исходного уравнения (11.2) получаем, что u′k = f(xk, yk). Отсюда сле-дует, что ψn = O(h).

Интуитивно ясно, что качество приближения метода Эйлера определя-ется правильным выбором углов наклона отрезков ломаной. Можно рас-смотреть модификацию метода с выбором угла наклона таким же, как укасательной к графику u(x) в точке (xk+1, uk+1). Ясно, что в этом случаетакже будет ψk = O(h).

Лучшее приближение будет достигнуто, если угол наклона отрезков ло-манной будет заключен между углом касательной к u(x) в точках (xk, uk)

и (xk+1, uk+1). Так мы приходим к симметричной схеме.

Симметричная схема.yk+1 − yk

h=

1

2(f(xk, yk)+f(xk+1, yk+1)), k = 1, 2, . . . n−1, y0 = u0. (11.6)

Данный метод более сложен в реализации, чем метод Эйлера (11.5), таккак новое значение yk+1 определяется по найденному ранее yk путём ре-шения уравнения

yk+1 − 0,5hf(xk+1, yk+1) = Fk,

где Fk = yn + 0,5hf(xk, yk). По этой причине метод называется неявным.Преимуществом метода (11.6) по сравнению с (11.5) является более высо-кий порядок точности.

Для невязки

ψk =uk+1 − uk

h− 1

2(u(xk, yk) + u(xk+1, yk+1))

справедливо разложение

ψk = u′k+h

2u′′k+O(h2)− 1

2(u′k+u′′k+1) = u′k+

h

2u′′k−

1

2(u′k+u′k+hu′′k+O(h2)),

т.е. ψk = O(h2). Таким образом, метод (11.6) имеет второй порядок ап-проксимации, а, следовательно, и второй порядок точности.

Page 94: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Численное решение дифференциальных уравнений 94

Метод предиктор–корректор. Предположим, что приближённое зна-чение yk решения исходной задачи в точке x = xk уже известно. Длянахождения yk+1 = y(xk+1) поступим следующим образом. Сначала, ис-пользуя схему Эйлера

yk+1/2 − yk0,5h

= f(xk, yk), (11.7)

вычислим промежуточное значение yk+1/2, а затем воспользуемся разност-ным уравнением

yk+1 − ykh

= f(xk + 0,5h, yk+1/2), (11.8)

из которого явным образом найдём искомое значение yk+1.Для исследования невязки подставим промежуточное значение yk+1/2 =

yk + 0,5hfk, где fn = f(xn, yn), в уравнение (11.8). Тогда получим разност-ное уравнение

yk+1 − ykh

= f(xk + 0,5h, yk + 0,5hfk), (11.9)

невязка которого равна

ψk =uk+1 − uk

h− f(xk + 0,5h, uk + 0,5hfk).

Имеемuk+1 − uk

h= u′k + 0,5hu′′k +O(h2).

Используя формулу Тейлора для функции нескольких переменных8, по-лучим окрестности точки (xk, uk)

f(xk + 0,5h, uk + 0,5hf(xk, uk)) = f(xk, uk)+

+ 0,5h(∂f(xk, uk)

∂x+ f(xk, uk)

∂f(xk, uk)

∂u

)+O(h2) =

= f(xk, uk) + 0,5hu′′k +O(h2),

8Теорема. Пусть функция u(x1, x2, . . . , xm) непрерывно дифференцируема (n− 1)

раз в ε-окрестности точки M0(◦x1,

◦x2, . . . ,

◦xm) и n раз дифференцируема в самой точке

M0. Тогда для любой точкиM из указанной ε-окрестностиM0 справедлива следующаяформула

u(M) = u(M0) +1

1!du

∣∣∣∣M0

+1

2!d2u

∣∣∣∣M0

+ . . .+1

n!dnu

∣∣∣∣M0

+O(ρn+1),

где ρ = ρ(M,M0) — расстояние между точками M и M0.

Page 95: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Численное решение дифференциальных уравнений 95

так как в силу (11.2) справедливо равенство u′ = f(x, u) и, следовательно,

u′′ =∂f

∂x+ f

∂f

∂u(производная функции двух переменных).

Таким образом, метод (11.9) имеет второй порядок погрешности аппрок-симации, ψk = O(h2), и в отличии от (11.6) является явным.

Реализация метода (11.9) в виде двух этапов (11.7), (11.8) называетсяметодом предиктор–корректор (предсказывающе-исправляющим9), по-скольку на первом этапе приближённое значение предсказывается с невы-сокой точностью O(h), а на втором этапе это предсказанное значение ис-правляется, так что результирующая погрешность имеет второй порядокпо h.

Тот же самый метод можно реализовать несколько иначе. А именно,сначала вычислим последовательно функции

p1 = f(xk, yk), p2 = f(xn + 0,5h, yk + 0,5hp1),

а затем найдём yk+1 из уравнения (yk+1 − yk)/h = p2.Такая форма реализации метода предиктор–корректор называется ме-

тодом Рунге–Кутта. Поскольку требуется вычислить две промежуточныефункции p1 и p2, данный метод относится в двухэтапным методам.

Метод Рунге–Кутта.10 Явный m-этапный метод Рунге-Кутта состоит в сле-дующем. Пусть решение yk = y(xk) уже известно. Задаются числовые коэффициенты

ai, bij, i = 2, 3, . . . ,m, j = 1, 2, . . . ,m− 1,σi, i = 1, 2, . . . ,m,

и последовательно вычисляются функции

p1 = f(xk, yk),p2 = f(xk + a2h, yk + b21hp1),p3 = f(xk + a3h, yk + b31hp1 + b32hp2),· · ·pm = f(xk + amh, yk + bm1hp1 + bm2hp2 + . . .+ bm,m−1hpm−1).

Затем из формулыyk+1 − yk

h=

m∑i=1

σipi (11.10)

находится новое значение yk+1 = y(xk+1).9От англ. predict – предсказывать, correct – исправлять

10Мартин Вильгельм Кутта — немецкий физик и математик (1867–1944).

Page 96: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Численное решение дифференциальных уравнений 96

Коэффициенты ai, bij, σi выбираются из соображений точности. Например, для то-

го, чтобы уравнение (11.10) аппроксимировало исходное уравнение (11.2), необходимо

потребоватьm∑i=1

σi = 1. Отметим, что методы Рунге–Кутта при m > 5 не используются.

Для получения очередного значения yk+1 в методе Рунге–Кутта тре-буется выполнить много промежуточных вычислений. Но из-за высокогопорядка погрешности аппроксимации метода можно выбирать сетку с до-вольно крупным шагом h. В итоге общее число арифметических операцийуменьшается. Наиболее распространённым является метод Рунге–Куттачетвёртого порядка:

yk+1 = yk + h6(p1 + 2p2 + 2p3 + p4),

p1 = f(xk, yk),

p2 = f(xk + h2 , yk + h

2p1),

p3 = f(xk + h2 , yk + h

2p2),

p4 = f(xk + h, yk + hp3).

Page 97: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Глава 2

Практические занятия

2.1 Занятие 1

2.1.1 Ошибки в вычислениях, числа с плавающей точкой

1.1 Пусть надо решить систему двух линейных уравнений:

−10−7x1 + x2 = 1,

x1 + 2x2 = 4.

Решение. Первый метод. Исключая x1 из первого уравнения: x1 = 107x2−107, и подставляя это выражение во второе уравнение, получаем x2 =107+4102+2 .

Проведя вычисления с семью значащими цифрами, получаем x2 = 1.000000,x1 = 0.000000, что совершенно неверно, как видно из второго уравнения.

Второй метод. Исключая x1 из второго уравнения: x1 = 4 − 2x2,получаем для x2 формулу x2 = 1+4·10−7

1+2·10−7 . После вычислений получаемx2 = 1.000000, x1 = 2.000000 — правильное (с точностью по шести де-сятичных цифр) решение.

Представление чисел с плавающей точкой в Matlab По умолча-нию переменные имеют тип «плавающая точка двойной точности». Каж-дое число занимает 8 байт. Представление имеет следующую структуру:

8 байт︷ ︸︸ ︷b63︸︷︷︸

знак sb62 . . . b52︸ ︷︷ ︸порядок e

b51 . . . b0︸ ︷︷ ︸мантисса f

97

Page 98: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 1 98

число с пл. точкой =

(−1)s(2e−1023)(1.f) нормализованное, 0 < e < 2047,

(−1)s(2e−1022)(0.f) ненормализованное, e = 0, f > 0,

ошибка иначе.

Далеко не все действительные числа точно представимы числом с пла-вающей точкой. Множество F чисел с плавающей точкой имеет мощность|F | 6 264, в то время как |R| =∞. Расстояние между числом x ∈ F и бли-жайшим к нему числом y ∈ F (x < y) приблизительно пропорционально|x|. Чем дальше от нуля, тем реже встречаются числа из F среди чиселиз R.

Функция Matlabeps(x) вычисляет расстояние до ближайшего числас плавающей точкой, большего x.

1.2 Зная внутренне представление чисел системы Matlab, определить,чему равно eps(7) и eps(8). Ответы сравнить и объяснить, почему ониотличаются в два раза.

Решение. Имеем 710 = 1112 = 1, 112 · 22 = (−1)0(21025−1023)(1, 11). Отсю-да s = 0, e = 1025, f = 11 00 . . . 0︸ ︷︷ ︸

50 нулей2. Следующее число 7′ с плавающей

точкой, большее 7, будет иметь s = 0, e = 1025, f = 11 00 . . . 0︸ ︷︷ ︸49 нулей

12. Полу-

чаем, что eps(7) = 7′ − 7 = 2−50 ≈ 8.881784197001252 · 10−16. Аналогичноeps(8) = 8′ − 8 = 2−49 ≈ 1.776356839400251 · 10−15.

Ответ eps(7) в два раза меньше eps(8). Так происходит всякий разкогда переходим через пороговое значение вида 2k, k ∈ Z. В нашем случае7 < 23, а 8 = 23.

1.3 Объяснить, почему при вычислении в среде Matlab

100 + 2^−50получается ответ 100, но

1 + 2^−50

Page 99: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 1 99

возвращает ответ 1.000000000000001?

Решение. Найдем двоичное представление первой суммы: 100 + 2−50 =

11001002 + 0, 0 . . . 0︸ ︷︷ ︸49 нулей

12 = 1100100, 0 . . . 0︸ ︷︷ ︸49 нулей

12. Получилось 57 бит. Ман-

тисса имеет длину 52 бита, то есть данное число необходимо округлить(отрезать «лишние» 5 бит). После округления остаётся только первое сла-гаемое 100.

Найдем двоичное представление второй суммы: 1+2−50 = 12+0, 0 . . . 0︸ ︷︷ ︸49 нулей

12 =

1, 0 . . . 0︸ ︷︷ ︸49 нулей

12. Получилось 51 бит, что вполне умещается внутри мантис-

сы.

Замечание. 52 двоичных разряда соответствуют 15–16 десятичным.

2.1.2 Матричные вычисления в Matlab

Полезные функции:

• ones(m,n) и zeros(m,n) — создать матрицу размера m × n, все эле-менты которой 1 и 0. Пример:

ones(2,2) =

(1 1

1 1

), zeros(1,3) =

(0 0 0

).

• eye(n) — создать единичную матрицу размера n× n. Пример:

eye(3) =

1 0 0

0 1 0

0 0 1

.

• diag(v,k) — расположить элементы вектора v на k-ой диагоналиквадратной матрицы соответствующего размера. Пример:

v = [1 2] diag(v,0) =

(1 0

0 2

),

diag(v,1) =

0 1 0

0 0 2

0 0 0

, diag(v,-1) =

0 0 0

1 0 0

0 2 0

.

Page 100: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 1 100

Пусть далее A =

(1 2 3

4 5 6

).

• flipud(A) (от англ. flip up down), fliplr(A) (от англ. flip left right),’ (штрих) — перевернуть матрицу сверху вниз, слева направо, относи-тельно главной диагонали. Пример:

flipud(A) =

(4 5 6

1 2 3

), fliplr(A) =

(3 2 1

6 5 4

), A’ =

1 4

2 5

3 6

.

• prod(A,k), sum(x) — перемножить, просуммировать элементы матри-цы в направлении k. Пример:

prod(A,1) =(

4 10 18), prod(A,2) =

(6

120

),

sum(A,1) =(

5 7 9), sum(A,2) =

(6

15

).

• triu(A,k) (от англ. upper triangle), tril(A,k) (от англ. lower triangle)— вернуть верхнюю, нижнюю треугольную часть матрицы A, начинаяс k-ой диагонали. Пример:

triu(A,1) =

(0 2 3

0 0 6

), tril(A,0) =

(1 0 0

4 5 0

).

• repmat(B,m,n) — продублировать матрицу B по вертикали m раз ипо горизонтали n раз. Пример:

B =(

1 4)

repmat(B,2,3) =

(1 4 1 4 1 4

1 4 1 4 1 4

).

1.4 Пусть задан вектор x = [1,2,4,5,6,7]. Задать в Matlabматрицуопределителя Вандермонда:

∆ =

1 x0 x2

0 · · · xn0

1 x1 x21 · · · xn1

... ... . . . ...1 xn x2

n · · · xnn

.

Page 101: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 1 101

Решение. Неоптимальный подход:

x = [ 1 , 2 , 4 , 5 , 6 , 7 ] ;Delta = zeros ( length ( x ) ) ; % зарезервировать памятьfor i =1: length ( x )

for j =1: length ( x )Delta ( i , j ) = x ( i )^( j −1);

endendDelta % вывести на экран ответ

Оптимальный подход:

x = [ 1 , 2 , 4 , 5 , 6 , 7 ] ;temp = repmat (x ’ , 1 , length ( x ) ) ;power = repmat ( 0 : length ( x)−1 , length ( x ) , 1 ) ;Delta = temp .^ power % вычисляем и выводим на экран

Здесь имеем:

temp =

x0 x0 x0 · · · x0

x1 x1 x1 · · · x1... ... . . . ...xn xn xn · · · xn

, power =

0 1 2 · · · n

0 1 2 · · · n... ... . . . ...0 1 2 · · · n

.

1.5 Пусть задан вектор x = [1,2,4,5,6,7], y = 2.5 и k = 2. Вычис-лить в Matlabфрагмент многочлена Лагранжа:

(y − x0) . . . (y − xk−1)(y − xk+1) . . . (y − xn)

Решение. Неоптимальное:

Page 102: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 1 102

x = [ 1 , 2 , 4 , 5 , 6 , 7 ] ;k = 2 ;y = 2 . 5 ;r e s u l t = 1 ;for i =1: length ( x )

i f i == (k+1)cont inue ;

endr e s u l t = r e s u l t ∗ ( y − x ( i ) ) ;

endr e s u l t % выводим результат

Оптимальное решение:

x = [ 1 , 2 , 4 , 5 , 6 , 7 ] ;k = 2 ;y = 2 . 5 ;r e s u l t = y − x ;r e s u l t ( k+1) = 1 ;r e s u l t = prod ( r e s u l t ) % выводим результат

Здесь имеем последовательно:result = [ y − x0 . . . y − xk−1 y − xk y − xk+1 . . . y − xn ]

result = [ y − x0 . . . y − xk−1 1 y − xk+1 . . . y − xn ]

result = (y − x0) . . . (y − xk−1) · 1 · (y − xk+1) . . . (y − xn).

1.6 Пусть задана переменная m = 4. Предложить оптимальное решениев Matlabдля построения следующей матрицы:

C =

0 1 . . . m

1 2 . . . m+ 1

2 3 . . . m+ 2... ... . . .

m m+ 1 . . . m+m

Page 103: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 2 103

.

Указание. Представить искомую матрицу в виде C = A+ A>.

1.7 Пусть задан вектор x = [1,2,4,5,6,7] и m = 4. Вычислить в Mat-

labматрицу для метода среднеквадратического приближения:

n+ 1∑xi . . .

∑xmi∑

xi∑x2i . . .

∑xm+1i∑

x2i

∑x3i . . .

∑xm+2i

... ... . . .∑xmi

∑xm+1i . . .

∑xm+mi

.

Решение. Заметим, что элементы матрицы принадлежат множеству{∑x0

i , . . . ,∑x2mi }. Вычислим соответствующий массив B:

A(2m+1×n+1) =

x0 x1 · · · xn

x0 x1 · · · xn... ... ...x0 x1 · · · xn

. ∧

0 · · · 0

1 · · · 1... ...

2m · · · 2m

;

B = sum(A,2) =(∑

x0i

∑x1i · · ·

∑x2mi

)>.

Ответом будет D=C(B), где C — матрица из предыдущей задачи. МатрицаD имеет тот же размер, что и C. Её элемент dij равен bcij , т.е. элементумассива B с индексом cij.

2.2 Занятие 2

2.2.1 Метод дихотомии.

2.1 Уравнение f(x) = 0 решают методом дихотомии. Известно, что f(x)

непрерывна на [a, b] и f(a)f(b) < 0. Оцените сверху наибольшее числоитераций, необходимое для получения корня с заданной точностью ε.

Решение. На каждой итерации исходный отрезок [a, b] сужается в два ра-за: bn−an = (b−a)/2n. Критерий останова в методе дихотомии: bn−an < ε.

Page 104: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 2 104

Решая неравенство (b − a)/2n < ε и учитывая, что n ∈ N, получимn >

[log2

b−aε

]+1, где квадратные скобки — операция взятия целой части

от числа.

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

2.2 Методом простых итераций найти корни уравнения x2−a = 0 (квад-ратный корень из числа a).

Решение. 1 методx = x2 + x− a, ϕ(x) = x2 + x− a, ϕ′(x) = 2x+ 1;|ϕ′(x)| < 1 ⇒ |2x+ 1| < 1 ⇒

∣∣x+ 12

∣∣ < 12

Только для x ∈ (−1, 0) корень будет найден методом простых итераций.2 метод

x =a

x, ϕ(x) =

a

x, ϕ′(x) = −

a

x2.

Условие |ϕ′(x) < 1|,∣∣ ax2

∣∣ < 1 или |x| > √a.

Но при x0 >√a, 0 < x1 <

a

x0<√a т.е. 0 < x1 <

√a, и метод «зацик-

ливается».

Например, x0 = 2√a, x1 =

1

2

√a, x2 = 2

√a, x3 =

1

2

√a и т.д.

3 методЗапишем метод Ньютона

x = ϕ(x), ϕ(x) = x−f(x)

f ′(x)= x−

x2 − a2x

=1

2

x+a

x

.

2.3 Построить итерационный процесс вычисления корней уравненияx3 + 3x2 − 1 = 0 методом простой итерации.

Решение. Табличным способом выделим отрезки, на концах которых функ-

ция f(x) имеет разные знакиx −3 −2 −1 0 1 2 3

sign f(x) − + + − + + +

Таким образом, корни исходного уравнения лежат на отрезках [−3,−2],[−1, 0] и [0, 1], для каждого из которых построим свой итерационный про-цесс.

Page 105: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 2 105

Для x ∈ [−3,−2] разделим исходное уравнение на x2. В результатеполучим равносильное уравнение x = ϕ(x), ϕ(x) = 1

x2 − 3. Итерационныйпроцесс для нахождения первого корня: xn+1 = 1

x2n−3. Поскольку |ϕ′(x)| =∣∣− 2

x3

∣∣ 6 14 < 1 для x ∈ [−3,−2], то сходимость имеет место для всех

начальных приближений x0 ∈ [−3,−2].Для двух других отрезков исходное уравнение перепишем в виде x2(x+

3)− 1 = 0. Если x0 ∈ [−1, 0], то определим итерационный процесс xn+1 =

− 1√xn+3

; если x0 ∈ [0, 1], то xn+1 = 1√xn+3

. Можно показать, что в про-цессе итераций соответствующие отрезки отображаются в себя, поэто-му сходимость построенных итерационных процессов следует из оценки|ϕ′(x)| = 1

2

∣∣∣ 1√x+3

∣∣∣3 < 1.

2.4 Пусть ϕ(x) непрерывно дифференцируема и ϕ′(x) не меняет свойзнак на интервале [xn, xn+1]. Показать, что если ϕ′(x) > 0, то xn и xn+1

лежат по одну сторону от корня x∗; если же ϕ′(x) < 0, то корень x∗

заключен между соседними элементами xn и xn+1.

Решение. По теореме Лагранжа xn+1−x∗ = ϕ(xn)−ϕ(x∗) = (xn−x∗)ϕ′(ξ),где точка ξ лежит между точками xn, x∗. Если ϕ′(x) > 0, то разности(xn+1−x∗) и (xn−x∗) должны иметь одинаковый знак; если ϕ′(x) < 0, тознаки разностей должны отличаться.

x0 x2 x1x3x∗

ϕ′(x) < 0

x0

x2x1 x3 x∗

ϕ′(x) > 0

· · ·

Рис. 2.1: Задача 2.4

2.5 Определить область начальных приближений x0, для которых ите-

рационный процесс xn+1 =x3n + 1

20сходится.

Page 106: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 2 106

Решение. Уравнение x3−20x+ 1 = 0 имеет три различных вещественныхкорня: z1 < z2 < z3. В зависимости от выбора начального приближения x0

итерационный процесс либо расходится, либо сойдется к одному из корнейzi, i = 1, 2, 3.

Перепишем формулу итерационного процесса в виде

xn+1 − xn =x3n − 20xn + 1

20=

(xn − z1)(xn − z2)(xn − z3)

20.

Если xn < z1, то xn+1−xn < 0 и последовательность xn монотонно убывает.Это означает расходимость итерационного процесса при x0 < z1, так какxn < x0 < zi, i = 1, 2, 3. Аналогично показывается, что при z3 < x0

выполняются неравенства zi < xn < xn+1, и метод расходится.Точки x0 = z1, x0 = z2 и x0 = z3 являются неподвижными, а отобра-

жение xn+1 = (x3n + 1)/20 монотонно. Поэтому для z1 < x0 < z2 имеем

z1 < xn < xn+1 < z2. Таким образом, последовательность xn монотонновозрастает, ограничена сверху и сходится к точке z2. Аналогично доказы-вается, что для x0 ∈ (z2, z3) последовательность xn, монотонно убывая,сходится к z2.

2.6 Уравнение x + lnx = 0, имеющее корень z ≈ 0, 6, предлагается ре-шить одним из методов простой итерации:1) xn+1 = − lnxn; 2) xn+1 = e−xn;

3) xn+1 =xn + e−xn

2; 4) xn+1 =

3xn + 5e−xn

8.

Исследовать эти методы и сделать выводы о целесообразности использо-вания каждого из них.

2.7 Уравнение x = 2x−1, имеющее два корня z1 = 1 и z2 = 2, решаетсяметодом простой итерации. Исследовать его сходимость в зависимости отвыбора начального приближения x0.

2.8 Найти область сходимости метода простой итерации для следую-щих уравнений:

Page 107: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 2 107

1) x = e2x − 1, 2) x = 1/2− lnx, 3) x = tg x.

2.9 Доказать, что итерационный процесс xn+1 = cosxn сходится длялюбого начального приближения x0 ∈ R.

Решение. При любом x0 ∈ R x1 ∈ [−1, 1] и вообще xn ∈ [−1, 1], n > 1.Имеем ϕ(x) = cos(x), ϕ′(x) = − sin(x). Получаем, что |ϕ′(x)| < 1 при x ∈[−1, 1]. Функция ϕ(x) удовлетворяет условию Коши-Липшица, поэтомуитерационный процесс сходится.

2.2.3 Метод Ньютона.

2.10 Построить итерационный процесс Ньютона для вычисления p√a,

a > 0, где p ∈ R.Значение p

√a является корнем уравнения f(x) = xp − a = 0. Для этого

уравнения метод Ньютона имеет вид

xn+1 = xn −f(xn)

f ′(xn)= xn −

xpn − apxp−1

n

=p− 1

pxn +

a

pxp−1n

.

Для p = 2 получаем xn+1 =1

2

xn +a

xn

.

Говорят, что z является корнем кратности p, если

f(z)− f ′(z) = . . . = f (p−1)(z) = 0, f (p)(z) 6= 0.

Это равносильно следующему:Если функция представима в виде f(p) = (x − z)pg(x), p ∈ N, а в неко-торой окрестности точки z выполняется |g(x)| < ∞, g(z) 6= 0, то pназывают кратностью корня.

Для уравнения f(x) = 0 формула метода Ньютона имеет вид

xn+1 = xn −f(xn)

f ′(xn).

для нахождения простых корней и

f ′(xk)xk+1 − xk

p+ f(xk) = 0

для нахождения корней кратности p.

Page 108: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 3 108

2.11 Определить кратность корня z = 2 для уравнения

x3 − 7x2 + 16x− 12 = 0.

2.3 Занятие 3

2.3.1 Интерполяция по Лагранжу и Ньютону. Оценка остаточного члена.

3.1 Построить многочлен Лагранжа при n = 3 для следующих случаев:

1)x1 = −1, x2 = 0, x3 = 1,

f1 = 3, f2 = 2, f3 = 5;2)

x1 = 1, x2 = 2, x3 = 4,

f1 = 3, f2 = 4, f3 = 6;

Решение.

1) P3(x) = f1(x− x2)(x− x3)

(x1 − x2)(x1 − x3)+ f2

(x− x1)(x− x3)

(x2 − x1)(x2 − x3)+

+ f2(x− x1)(x− x2)

(x3 − x1)(x3 − x2)= 3

(x− 0)(x− 1)

(−1− 0)(−1− 1)+

+ 2(x− (−1))(x− 1)

(0− (−1))(0− 1)+ 5

(x− (−1))(x− 0)

(1− (−1))(1− 0)= 2x2 + x+ 2.

3.2 Приближение к числу ln 15,2 вычислено следующим образом. Най-дены точные значения ln 15 и ln 16 и построена линейная интерполяциямежду этими числами. Показать, что если a и a∗ — соответственно точноеи интерполированное значения ln 15,2, то справедлива оценка 0 < a−a∗ <4 · 10−4.

Решение. Запишем погрешность R(x) 6 |M2|2! |(x − 15)(x − 16)|, где M2 =

max156x616

|(lnx)′′| = max156x616

1/x2 = 1/225. Нас интересует погрешность в кон-

кретной точке: R(15,2) 60, 2 · 0, 8225 · 2 < 3 · 10−4.

3.3 Построить интерполяционный многочлен для функции f(x) = |x|по узлам −1, 0, 1.

Page 109: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 3 109

3.4 Построить интерполяционный многочлен для функции f(x) = x2

по узлам 0, 1, 2, 3.

3.5 С каким шагом следует составлять таблицу функции sinx на отрез-ке [0, π/2], чтобы погрешность кусочно-линейной интерполяции не превос-ходила величины 0, 5 · 10−6?

3.6 Построить многочлен P3(x) = a0 + a1x + a2x2 + a3x

3, удовлетворя-ющий условиям:

1. P3(−1) = 0, P3(1) = 1, P3(2) = 2, a3 = 1.

2. P3(0) = P3(−1) = P3(1) = 0, a2 = 1.

3. P3(−1) = 0, P3(1) = 1, P3(2) = 2, a1 = 1.

4. P3(−2) = P3(−1) = P3(1) = 0, a0 = 1.

2.3.2 Многочлены Чебышева

3.7 Вычислить многочлен Чебышёва T6(x) с помощью рекуррентногосоотношения:T0(x) = 1, T1(x) = x, Tn+1(x) = 2xTn(x)− Tn−1(x), n > 1.

Решение.

T2(x) = 2T1(x)− T0(x) = 2x2 − 1,

T3(x) = 2T2(x)− T1(x) = 4x3 − 3x,

T4(x) = 2T3(x)− T2(x) = 8x4 − 8x2 + 1,

T5(x) = 2T4(x)− T3(x) = 16x5 − 20x3 + 5x,

T6(x) = 2T5(x)− T4(x) = 32x6 − 48x4 + 18x2 − 1.

3.8 Найти все нули многочлена Чебышёва Tn(x).

Page 110: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 3 110

Решение. Воспользуемся тригонометрической формой записи многочленаЧебышёва: Tn(x) = cos(n ·arccosx). Решая уравнение cos(n ·arccosx) = 0,получим x

(n)k = cos 2k−1

2n π, k = 1, 2, . . . , n.

3.9 Найти многочлен, наименее уклоняющийся от нуля на отрезке [a, b],среди всех многочленов со старшим коэффициентом 1.

Решение. Функция может Tn(x) принимает аргумент из интервала [−1, 1],а нам нужно подавать аргумент из интервала [a, b]. Найдём линейное пре-образование [a, b] → [−1, 1]. Легко заметить, что преобразование x′ =2x−(b+2)b−a обладает нужным свойством. Сначала обратим внимание на глав-

ный коэффициент в представлении Tn(x) = 2n−1xn + . . .. Он равен 2n−1.Теперь рассмотрим главный коэффициент при подстановке x′:

Tn(x′) = Tn

(2x− (b+ 2)

b− a

)= 2n−1

(2x− (b+ 2)

b− a

)n+. . . =

22n−1

(b− a)nxn+. . .

Умножая весь многочлен на коэффициент (b− a)n21−2n, добъёмся, чтобыглавный множитель стал равен 1:

T[a,b]n (x) = (b− a)n21−2nTn

(2x− (b+ 2)

b− a

)= 1 · xn + . . . .

Осталось показать, что T[a,b]n (x) — наименее уклоняющийся от нуля на

отрезке [a, b], среди всех многочленов со старшим коэффициентом 1. До-казательство аналогично случаю T

[−1,1]n (x) (см. лекцию 4).

3.10 Среди всех многочленов вида a3x3 + 2x2 + a1x + a0 найти наиме-

нее уклоняющийся от нуля на отрезке [3, 5] (т.е. многочлен вида const ·T

[3,5]3 (x)).Важное замечание. В задаче зафиксирован не главный коэффициент при x3, а мно-

житель при x2. Теорема о наименее отклоняющемся от нуля многочлене не работает в

этом случае. То есть для всех многочленов P3(x) степени 3 с одинаковым коэффициен-

том 2 при x2 неравенство max[3,5]|P3(x)| > max

[3,5]|T [3,5]

3 (x)|, где T [3,5]3 (x) имеет коэффициент

Page 111: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 3 111

2 при x2 и корни как у T [3,5]3 (x), в общем случае не выполняется. Но термин «наиме-

нее отклоняющийся от нуля» нужно понимать как синоним «многочлен чебышёвского

типа», т.е. многочлен с корнями как у T [3,5]3 (x).

Решение. Построим вначале многочлен Чебышёва T [−1,1]3 (x) = 4x3 − 3x.

В условии задан отрезок [3, 5]. Линейное преобразование 2x−(5+3)5−3 = x− 4

осуществляет перевод [3, 5]→ [−1, 1]. Получаем T [3,5]3 (x) = T

[−1,1]3 (x−4) =

4x3− 48x2 + 189x− 244. Нам задан коэффициент при x2. Это значит, чтомногочлен нужно разделить на −24: −x3

6 + 2x2 − 638 + 61

6 .

3.11 Функция f(x) = sin 2x приближается многочленом Лагранжа на[0, 2] по n чебышёвским узлам: xi = 1 + cos 2i−1

2n π, i = 1, . . . , n. Найтинаибольшее целое p в оценке погрешности вида εn = 1

310−p, если n = 6.

Решение. Для интерполяции используется 6 чебышёвских узлов, следова-тельно, степень многочлена Лагранжа на единицу меньше: P5(x). Погреш-ность многочлена Лагранжа:

R5(x) = f(x)− P5(x) =(sinx)VI|x=ξ

(5 + 1)!· ω6(x),

где ξ ∈ [0, 2] — неизвестная точка из интервала и

ω6(x) = (x− x1)(x− x2) . . . (x− x6), xi — чебышёвские узлы.

Оценим сверху модуль производной M6 = max[0,2]|(sinx)VI| = 26. Имеем

ω6(x) = T[0,2]6 (x) — многочлен чебышёвского типа, у которого все 6 корней

принадлежат [0, 2] и старший коэффициент равен 1. Найдём max[0,2]|ω6(x)| =

max[0,2]|T [0,2]

6 (x)| см. лекц. 4= (2− 0)6 · 21−2·6 = 2−5. В итоге

|R6(x)| 6 M6

6!·max

[0,2]|ω6(x)| = 26

720· 2−5 =

1

360/

1

3· 10−2.

Ответ: p = 2.

Page 112: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 4 112

2.4 Занятие 4

2.4.1 Среднеквадратическое приближение

4.1 Провели эксперимент по измерению координаты x движущегосяпрямолинейно тела в зависимости от времени t. Были получены следу-

ющие данные:t 0 1 2 3x 2 7,1 13,9 23,2

. Получить с помощью метода наи-

меньших квадратов зависимость x(t), если известно, что тело движетсяравноускоренно (координата x имеет квадратичную зависимость от вре-мени t).

Решение. Координата тела, движущегося прямолинейно под действиемпостоянного ускорения выражается квадратичной зависимостью:

x(t) = a+ bt+ ct2.

С помощью метода наименьших квадратов определим числа a, b, c. Длякаждого значения t найдём квадрат невязки и затем все невязки сложим:

Φ(a, b, c) = (a− 2︸ ︷︷ ︸t=0

)2 + (a+ b+ c− 7,1︸ ︷︷ ︸t=1

)2 + (a+ 2b+ 4c− 13,9︸ ︷︷ ︸t=2

)2+

+ (a+ 3b+ 9c− 23,2︸ ︷︷ ︸t=3

)2.

Найдём минимум Φ(a, b, c):

∂Φ

∂a= 2(a−2)+2(a+b+c−7,1)+2(a+2b+4c−13,9)+2(a+3b+9c−23,2) =

= 8a+ 12b+ 28c− 92, 4 = 0

∂Φ

∂b= 2(a+ b+ c− 7,1) + 4(a+ 2b+ 4c− 13,9) + 6(a+ 3b+ 9c− 23,2) =

= 12a+ 28b+ 72c− 209 = 0

∂Φ

∂c= 2(a+ b+ c− 7,1) + 8(a+ 2b+ 4c− 13,9) + 18(a+ 3b+ 9c− 23,2) =

= 28a+ 72b+ 196c− 543 = 0

Решая совместно последние три уравнения получим: a = 2,04; b = 3,89;c = 1,05. Окончательно x(t) = 2,04 + 3,89t+ 1,05t2.

Page 113: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 4 113

4.2 Определить среднеквадратическое отклонение для результата преды-дущей задачи.

Решение. Для каждого момента времени определим невязку по формулеδi = x(ti) − xi, i = 0, 1, . . . , 3 (x(ti) — зависимость, полученная методомнаименьших квадратов; xi — значение координаты из таблицы):

t 0 1 2 3x 2 7,1 13,9 23,2δ 0,04 −0,12 0,12 −0,14

Вычислим среднеквадратическое отклонение√1

4(δ2

0 + δ21 + δ2

2 + δ23) =

√1

4(0, 042 + 0,122 + 0,122 + 0,142) ≈ 0,11.

4.3 Найти обобщённое решение (в смысле метода наименьших квадра-тов) переопределённой системы

x+ y = 1,

x− y = 2,

2x+ y = 2,4.

Решение. Составим Φ(x, y) = (x+ y − 1)2 + (x− y − 2)2 + (2x+ y − 2,4)2.

∂Φ

∂x= 2(x+ y − 1) + 2(x− y − 2) + 4(2x+ y − 2,4) = 12x+ 4y = 15,6 = 0,

∂Φ

∂y= 2(x+ y − 1) + 2(x− y − 2) + 2(2x+ y − 2,4) = 8x+ 2y = 10,8 = 0.

При решении системы из двух уравнений, получим: x = 1,5; y = −0,6.Невязки: |δ1| = 0,1; |δ2| = 0,1; |δ3| = 0.

2.4.2 Численное дифференцирование

4.4 Написать с помощью метода неопределённых коэффициентов фор-мулу для вычисления y′′1 по равноотстоящим узлам x0, x1, x2, x3.

Page 114: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 4 114

Решение. Метод неопределённых коэффициентов даёт результат, анало-гичный разложению y(x) в ряд Тейлора и выделению слагаемого y′′1 . Еслиу нас 4 узла, то в разложении функции y(x) в ряд Тейлора у нас бу-дут участвовать четыре слагаемых (столько же, сколько узлов), содержа-щие: y(x), y′(x), y′′(x) и y′′′(x). То есть y′′1 будет выражаться через y(x),y′(x), y′′(x) и y′′′(x), а погрешность будет выражаться через оставшие-ся члены: yIV (x), yV (x), . . . Ясно, что такая формула будет точна, еслиyIV (x) = yV (x) = . . . = 0. Последнее будет справедливо для любого мно-гочлена степени не выше 3. В частности, рассмотрим следующие четыремногочлена (столько же, сколько узлов)

z = 1, z = x− x0, z = (x− x0)2, z = (x− x0)

3

(выбор именно этих многочленов обусловлен удобством дальнейших рас-чётов).

Несложно показать, что, если подобрать числа ck таким образом, чтобы

z′′1 =3∑

k=0

zkck было точным равенством (для выбранных четырёх много-

членов z), то это будет значение ck(x) для многочлена Лагранжа в точкеx = x1.

Найдём производные:z 1 x− x0 (x− x0)

2 (x− x0)3

z′′ 0 0 2 6(x− x0). Для каж-

дой колонки запишем z′′1 =3∑

k=0

zkck:

0 = c0 · 1 + c1 · 1 + c2 · 1 + c3 · 1,0 = c0(x0 − x0) + c1(x1 − x0) + c2(x2 − x0) + c3(x3 − x0),

2 = c0(x0 − x0)2 + c1(x1 − x0)

2 + c2(x2 − x0)2 + c3(x3 − x0)

2,

6(x1 − x0) = c0(x0 − x0)3 + c1(x1 − x0)

3 + c2(x2 − x0)3 + c3(x3 − x0)

3.

Узлы xi, i = 0, 1, 2, 3 — равноотстоящие с шагом h, поэтому x1 − x0 = h,

Page 115: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 4 115

x2 − x0 = 2h, x3 − x0 = 3h:

0 = c0 + c1 + c2 + c3,

0 = c1 + 2c2 + 3c3,

2 = c1h2 + 4c2h

2 + 9c3h2,

6 = c1h2 + 8c2h

2 + 27c3h2.

Решая систему, получим:

c0 =1

h2, c1 = − 2

h2, c2 =

1

h2, c3 = 0.

Окончательно y′′1 ≈ 1h2 (y0 − 2y1 + y2).

4.5 С помощью разложения в ряд Тейлора определить порядок погреш-ности в формуле из предыдущей задачи.

Решение. На основании решения предыдущей задачи имеем:

y′′1 =1

h2(y0 − 2y1 + y2) +O(hp),

где порядок p нужно определить. Для этого разложим yi, i = 0, 2 в рядТейлора в окрестности точки x1 до члена h4 (сейчас точно неясно до како-го члена нужно раскладывать, но, если понадобится, разложение всегдаможно продолжить):

y(x0) = y(x1) + (x0 − x1)y′(x1) +

(x0 − x1)2

2!y′′(x1)+

+(x0 − x1)

3

3!y′′′(x1) +

(x0 − x1)4

4!yIV(x1) +O((x0 − x1)

5),

y(x2) = y(x1) + (x2 − x1)y′(x1) +

(x2 − x1)2

2!y′′(x1)+

+(x2 − x1)

3

3!y′′′(x1) +

(x2 − x1)4

4!yIV(x1) +O((x2 − x1)

5),

В более компактной записи:

y0 = y1 − hy′1 + h2y′′1/2− h3y′′′1 /6 + h4yIV1 /24 +O(h5),

Page 116: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 5 116

y2 = y1 + hy′1 + h2y′′1/2 + h3y′′′1 /6 + h4yIV1 /24 +O(h5).

Подставим полученные значения в формулу для численной производной:

1

h2(y0 − 2y1 + y2) =

1

h2

[h2y′′1 +

h4

12yIV

1 +O(h5)

]= y′′1 +

h2

12yIV

1 +O(h3)︸ ︷︷ ︸O(h2)

.

Так как четвёртая производная в общем случае отлична от нуля, то поря-док погрешности равен 2.

2.5 Занятие 5

2.5.1 Численное дифференцирование (продолжение)

5.1 Найти оптимальное значение шага при вычислении (√x)′|x=105 на

компьютере, используя числа с плавающей точкой двойной точности, поформуле центральной разности с машинной точностью. Определить с ка-кой точностью будет вычислена производная.

Решение. Из-за округления чисел в мантиссе любые вычисления на ком-пьютере ограничены машинной точностью δ. Формула средней разност-ной производной с шагом h:

y′(x) ≈ f(x+ h)− f(x− h)

2h.

В действительности компьютер вычисляет

y′(x) ≈ y(x+ h)− y(x− h)

2h, где y = y ± δ.

Для краткости пусть y+ = y(x+h), y− = y(x−h). Рассмотрим погрешность

∆ =

∣∣∣∣y′ − y+ − y−2h

∣∣∣∣ =

∣∣∣∣(y′ − y+ − y−2h

)+

(y+ − y+

2h− y− − y−

2h

)∣∣∣∣ 66

∣∣∣∣y′ − y+ − y−2h

∣∣∣∣+

∣∣∣∣ y+ − y+

2h

∣∣∣∣+

∣∣∣∣ y− − y−2h

∣∣∣∣ 66

|y′′′(η)|3

h2︸ ︷︷ ︸см. разложениев лекции №5

2h+

δ

2h6M3

3h2 +

δ

h= Φ(h),

Page 117: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 5 117

где M3 = max[x−h,x+h]

|y′′′(x)|.Минимизируем ошибку Φ(h):

hopt : Φ′(x) =2M3h

3− δ

h2= 0 ⇒ hopt = 3

√3δ

2M3.

Остаётся определить значения δ и M3.Найдём погрешность входных данных δ. Порядок

√x, где x ∼ 105 равен

∼ 10 Будем считать, что при использовании чисел с плавающей точкойдвойной точности машинная погрешность составляет 16 десятичных раз-рядов. Из представления

√105 = 10,x . . . . . . . . . x︸ ︷︷ ︸

16 десят. разр.

| xx . . . . . . . . . . . .︸ ︷︷ ︸не поместилось

в мантиссе

машинная точность в нашей задаче составит δ = ±10−14.Вычислим теперь M3. Найдем производные для нашей задачи:

y′ =1

2√x, y′′ = − 1

4x√x, y′′′ =

3

8x2√x.

y′′′(x) монотонно убывает при x > 0. Следовательно в качестве верхнейоценки M3 = max

[105−h,105+h]y′′′(x) можно взять легко вычисляемое значение

y′′′(100) = 38·105 = 3,75 · 10−6.

hopt = 3

√3

2· 10−14

3,75 · 10−6=

3√

4 · 10−9 ≈ 1,6 · 10−3.

Φ(hopt) ≈3,75 · 10−6 · (1,6 · 10−3)2

3+

10−14

1,6 · 10−3= 3,2 · 10−12 + 6 · 10−12 ∼

∼ 10−11 � 10−14 = δ.

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

5.2 Методом Рунге уточнить правую разностную производную и полу-чить в итоге формулу с погрешностью третьего порядка.

Page 118: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 5 118

2.5.2 Численное интегрирование

5.3 Доказать, что∫ba f(x) dx =

∑ni=1 f(xi−1)h + O(h) (формула левых

прямоугольников).

Решение. На лекции была рассмотрена формула центральных прямоуголь-ников

∫ba f(x) dx =

∑ni=1 f(xi−1/2)h + O(h2). Её порядок погрешности ра-

вен 2. В условии задачи приведена формула с меньшим порядком погреш-ности.Перейдём к доказательству.

Общая погрешность равна

Ψ =

b∫a

f(x) dx−n∑i=1

f(xi−1)h =n∑i=1

xi∫xi−1

[f(x)− f(xi−1)] dx

︸ ︷︷ ︸ψi

.

Подставим погрешность многочлена Лагранжа

ψi =

xi∫xi−1

f ′(x)

1!(x− xi−1) dx,

|ψi| 6M1,i

xi∫xi−1

(x− xi−1) dx =M1,i

2h2, где M1,i = max

[xi−1,xi]|f ′(x)|.

|Ψ| =∣∣∣∣∣n∑i=1

ψi

∣∣∣∣∣ 6n∑i=1

|ψi| =n∑i=1

M1,i

2h2 6

M1h

2

n∑i=1

h︸ ︷︷ ︸b−a

=M1(b− a)

2h = O(h),

где M1 = max[a,b]|f ′(x)|.

5.4 Показать, что2h∫−2h

|ω5(x)| dx = 193 h

6.

5.5 Вычислить интеграл1∫0

exp(x2) dx по формуле Ньютона–Котеса с уз-

лами 0, 1/4, 1/2, 3/4, 1 и оценить погрешность.

Page 119: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 5 119

Решение. Задано 5 равноотстоящих узлов. Приблизим функцию много-членом Лагранжа exp(x2) ≈ P4(x). Отсюда

1∫0

exp(x2) dx ≈1∫0

P4(x) dx =

1∫0

4∑k=0

exp(x2k)L

(k)4 (x)

L(k)4 (xk)

dx =

=4∑

k=0

exp(x2k)

1∫0

L(k)4 (x) dx

L(k)4 (xk)︸ ︷︷ ︸ck

=4∑

k=0

exp(x2k)ck.

Задача сводится к вычислению коэффициентов ck, зависящих только отнабора узлов x0, x1, x2, x3, x4, но не от интегрируемой функции.

c0 =

1∫0

L(0)4 (x) dx

L(0)4 (xk)

=

1∫0

(x− x1)(x− x2)(x− x3)(x− x4) dx

(x0 − x1)(x0 − x2)(x0 − x3)(x0 − x4)=

=

1∫0

(x− 14)(x− 1

2)(x− 34)(x− 1) dx

(0− 14)(0− 1

2)(0− 34)(0− 1)

=

1∫0

[x4 − 52x

3 + 3516x

2 − 2532x+ 3

32 ] dx

332

=

=7

90≈ 0,078.

c1 =

1∫0

L(1)4 (x) dx

L(1)4 (xk)

=

1∫0

(x− 0)(x− 12)(x− 3

4)(x− 1) dx

(14 − 0)(1

4 − 12)(1

4 − 34)(1

4 − 1)=

=

1∫0

[x4 − 94x

3 + 138 x

2 − 38x] dx

− 3128

=16

45≈ 0,356.

c2 =

1∫0

L(2)4 (x) dx

L(2)4 (xk)

=

1∫0

(x− 0)(x− 14)(x− 3

4)(x− 1) dx

(12 − 0)(1

2 − 14)(1

2 − 34)(1

2 − 1)=

=

1∫0

[x4 − 2x3 + 1916x

2 − 316x] dx

164

=2

15≈ 0,133.

Page 120: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 5 120

Так как узлы равноотстоящие, то c3 = c1 и c4 = c0. Заметим, что все ck > 0,k = 0, 1, 2, 3, 4. Это гарантирует устойчивость полученной квадратурнойформулы.

1∫0

exp(x2) dx ≈ exp(02)c0 + exp[(1/4)2]c1 + exp[(1/2)2]c2 + exp[(3/4)2]c3+

+ exp(12)c4 ≈ 1,463.

Погрешность равна

Ψ =

1∫0

[exp(x2)− P4(x)] dx =

1∫0

[exp(x2)](5)|x=ξ

5!ω5(x) dx, где ξ ∈ [0, 1].

Найдём 5-ю производную

(ex2

)′ = ex2 · 2x, (ex

2

)(IV) = ex2 · (12 + 48x2 + 16x4),

(ex2

)′′ = ex2 · (2 + 4x2), (ex

2

)(V) = ex2 · (120x+ 160x3 + 32x5).

(ex2

)′′′ = ex2 · (12x+ 8x3).

Очевидно M5 = max[0,1]|(ex2)(V)| = e · (120 + 160 + 32) = 312e. Оценим

погрешность сверху1

|Ψ| 6 M5

120

1∫0

|ω5(x)| dx =312e

24· 19

3

(1

4

)6

≈ 0,05.

Модуль пришлось поставить внутри интеграла, а не снаружи, так как∫10 ω5(x) dx = 0 (при равноотстоящих узлах с шагом xi−xi−1 = 1/4 функ-

ция ω5(x) нечётна относительно точки x = 1/2). Реальная погрешностьпри этом на один порядок (в 10 раз) оказалась меньше теоретической.

5.6 Иинтеграл I =1∫0

exp(x2) dx был вычислен с помощью составной

формулы трапеций с различными шагами h:1 Сейчас и в дальнейшем будем использовать следующую легко получаемую таб-

лицуh∫−h|ω3(x)| dx = 1

2h4,

2h∫−2h|ω5(x)| dx = 19

3h6,

3h∫−3h|ω7(x)| dx = 639

4h8,

4h∫−4h|ω9(x)| dx = 37186

3h10.

Page 121: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 6 121

h Sтр(h)

1/32 1,46309

1/64 1,46276

1/128 1,46268

1/256 1,46266

Какая погрешность содержится в ответе на при шаге h = 1/64? При какомшаге достигается точность ε = 10−5?

Решение. Для формулы трапеций справедливо равенство

I = Sтр(h) +O(h2) = Sтр(h) + ch2 +O(h3), где c = −f ′(b)−f ′(a)12 = const.

Отбросим малое слагаемое O(h3) и вычислим приближённо интеграл I сшагами h и h/2

I ≈ Sтр(h) + ch2, I ≈ Sтр(h/2) + c(h/2)2.

Отсюда c(h/2)2 ≈ [Sтр(h)− Sтр(h/2)]/3. Погрешность равна

|I − Sтр(h/2)| ≈ |Sтр(h)− Sтр(h/2)|3

.

По исходным данным составим таблицу

h/2 |Sтр(h)− Sтр(h/2)|/31/64 0,00011

1/128 0,00003

1/256 0,00001

Из полученных данных следует, что h = 1/64 погрешность будет порядка10−4. Для достижения точности ε = 10−5 следует выбрать шаг h = 1/256.

2.6 Занятие 6

2.6.1 Численное интегрирование (продолжение)

6.1 Оценить минимальное число разбиений отрезка N для вычисленияинтеграла I =

∫10 sin(x2)dx по составной квадратурной формуле трапеций

S(h), обеспечивающее точность ε = 10−4.

Page 122: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 6 122

Решение. По условию погрешность |Ψ| = |I − S(h)| 6 ε. Для составной

формулы трапеций S(h) = hn∑i=1

f(xi−1)+f(xi)2 справедливо |Ψ| 6 M2(b−a)

12 h2.

Очевидно, число разбиений отрезка N и длина частичного отрезка h свя-заны соотношением h = (b−a)/N . ОценимM2. В производной d2

dx2sin(x2) =

−4x4 sin(x2)︸ ︷︷ ︸f(x)

+ 2 cos(x2)︸ ︷︷ ︸g(x)

оба слагаемых убывают на отрезке [0, 1]. Следо-

вательно, максимум модуля производной будет достигаться на границеотрезка M2 = max(2, | − 4 sin 1 + 2 cos 1|) ≈ 2,29.

В итоге получаем M2(b−a)12 h2 6 ε или M2(b−a)3

12N2 6 ε. Так как N ∈ N, то

N >

[√M2(b−a)3

12ε

]+ 1, где [x] означает целую часть числа x. Окончательно

N >

[√2,29

12·10−4

]+ 1 = [43,7] + 1 = 44.

6.2 Предложить способ вычисления интеграла∫1

0lnx

1+x2dx по составнойквадратурной формуле с постоянным шагом h.

Решение. Интеграл является несобственным, так как limx→0+0

lnx1+x2 = −∞.

Заметим, что для любого α > 0

limx→0+0

xα lnx = limx→0+0

lnx

x−α

прав.Лопит.

= limx→0+0

x−1

−αx−α−1= 0.∫ 1

0

lnx

1 + x2dx =

∫ 1

0

(1 + x2 − x2) lnx

1 + x2dx =

∫ 1

0lnx dx−

∫ 1

0

x2 lnx

1 + x2dx

Первый интеграл вычисляется явно∫ 1

0lnx dx = x lnx|10 −

∫ 1

0x

1

xdx = −1.

Второй интеграл уже не является несобственным, следовательно, для еговычисления применима, например, составная формула Симпсона.

6.3 Построить квадратурную формулу для вычисления интеграла∫∞

1f(x)1+x2dx,

где |f(x)| 6 B = const с заданной точностью ε.

Page 123: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 6 123

Решение. Интеграл является несобственным так как верхний предел равен∞. Разобьём его на две части∫∞

1

f(x)

1 + x2dx =

∫∞A

f(x)

1 + x2dx+

∫∞A

f(x)

1 + x2dx = I1 + I2.

Подберём число A достаточно большим, чтобы |I2| 6 ε/2. Функция f(x)

по условию ограничена некоторой константой B. Будем считать, что зна-чение B нам известно

|I2| =

∣∣∣∣∣∣∞∫A

f(x)

1 + x2dx

∣∣∣∣∣∣ 6∞∫A

B

1 + x2dx = B arctg x|∞A = B

(π2− arctgA

).

B(π

2− arctgA

)6ε

2⇒ A > tg

(π2− ε

2B

).

В итоге по заданным ε и B находим значение A. Далее, например, с

помощью составной формулы Симпсона вычисляем I1 =A∫1

f(x)1+x2dx с точно-

стью ε2 . Общая погрешность результата составит ε

2 + ε2 = ε.

2.6.2 Матричные вычисления

6.4 Доказать, что для любых матриц A и B и фиксированной вектор-ной нормы ||x|| для подчинённой матричной нормы справедливо ||AB|| 6||A|| · ||B||.

6.5 Показать, как связаны между собой нормы ||x||1, ||x||2 и ||x||∞.

Решение.

6.6 Найти матричные нормы, подчинённые векторным нормам ||x||1,||x||2 и ||x||∞.

Решение. Для любого вектора x ∈ Rn справедливо

||Ax||∞ = maxi

∣∣∣∣∣∣n∑j=1

aijxj

∣∣∣∣∣∣ 6 maxi

n∑j=1

|aij|maxj|xj|

6 maxi

n∑j=1

|aij|

||x||∞.

Page 124: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 6 124

Покажем, что эта оценка достигается. Пусть максимум по i имеет ме-сто при i = k. Тогда для x = (sign(ak1), sign(ak2), . . . , sign(akn))

> имеем||x||∞ = 1 и точные равенства по всей цепочке выше. Таким образом,||A||∞ = max

i

(∑nj=1 |aij|

).

Аналогично показывается, что ||A||1 = maxj (∑n

i=1 |aij|).По определению

||A||2 = supx6=0

||Ax||2||x||2

= supx 6=0

√(Ax, Ax)

(x,x)= sup

x6=0

√(A>Ax,x)

(x,x).

Матрица B = A>A — симметричная и (Bx, x) = (Ax, Ax) > 0, сле-довательно, (во-первых) все её собственные значения λi(B) > 0, а (во-вторых) сама матрица B обладает ортонормированной системой собствен-ных векторов q1, . . . ,qn. Это означает, что Bqi = λiqi и

(qi,qj) =

{1, если i = j

0, если i 6= j. Любой вектор x представим в виде x =

n∑i=1

ciqi,

||x||22 =n∑n=1

c2i , поэтому (Bx,x) = (

∑ni=1 λiciqi,

∑ni=1 ciqi) =

∑ni=1 λic

2i . От-

сюда (Bx,x) 6 maxiλi||x||22. Получаем sup

x 6=0

√(Bx,x)(x,x) = max

iλi(B), а ра-

венство достигается на соответствующем максимальному λi собственномвекторе. Поэтому ||A||2 =

√maxiλi(A>A).

6.7 Найти матричные нормы, подчинённые векторным нормам ||x||1,||x||2 и ||x||∞ для матрицы

A =

−1 3 2

3 −3 4

1 9 7

.

Решение. Воспользуемся результатом предыдущей задачи

||A||∞ = maxi

n∑j=1

|aij|

=

= max (| − 1|+ |3|+ |2|, |3|+ | − 3|+ |4|, |1|+ |9|+ |7|) = 17.

Page 125: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 6 125

||A||1 = maxj

(n∑i=1

|aij|)

=

= max (| − 1|+ |3|+ |1|, |3|+ | − 3|+ |9|, |2|+ |4|+ |7|) = 15.

||A||2 =√

maxiλi(A>A). Найдём матрицу

B = A>A =

11 −3 17

−3 99 57

17 57 69

И её собственные значения

|B − λE| =

∣∣∣∣∣∣∣∣11− λ −3 17

−3 99− λ 57

17 57 69− λ

∣∣∣∣∣∣∣∣ = −λ3 + 179λ2 − 5132λ+ 4356.

Из уравнения |B − λE| = 0 получаем λ1 ≈ 143,43, λ2 ≈ 34,69 и λ3 ≈ 0,88.Выбираем максимальное с.з. λ1 и получаем ||A||2 =

√λ1 ≈ 11,96.

6.8 Можно ли утверждать, что если определитель матрицы мал, то мат-рица плохо обусловлена?

Решение. Пусть D = εE, где ε > 0 — малое число и E — единичнаяматрица. Определитель det(D) = εn весьма мал, тогда как матрица Dхорошо обусловлена, поскольку µ(D) = ||D|| ||D−1|| = 1.

Рассмотрим теперь матрицу

A =

1 −1 −1 · · · −1

0 1 −1 · · · −1... ... ... . . . ...0 0 0 · · · 1

,

у которой определитель равен 1, и вычислим её число обусловленности.

Page 126: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 7 126

Для этого построим в явном виде обратную матрицу.

A−1 =

1 1 2 4 · · · 2n−3 2n−2

0 1 1 2 · · · 2n−4 2n−3

... ... ... ... . . . ... ...0 0 0 0 · · · 1 1

0 0 0 0 · · · 0 1

,

||A−1||∞ = 1 + 1 + 2 + 22 + . . .+ 2n−2 = 2n−1, ||A||∞ = n и µ∞(A) = n2n−1,т.е. матрица A плохо обусловлена, хотя det(A) = 1.

2.7 Занятие 7

2.7.1 Решение дифференциальных уравнений

7.1 Проверить, аппроксимирует ли разностная схема уравнение

y′(x) = f(x, y(x))

а)1

3h(yk − yk−3) = fk−1;

б)1

8h(yk − 3yk−2 + 2yk−3) =

1

2(fk−1 + fk−2);

в)1

2h(3yk − 4yk−1 + yk−2) = fk.

7.2 Для задачи y′ + y = x+ 1, y(0) = 0 рассматривается схемаyk+1 − yk−1

2h+ yk = kh+ 1, y0 = 0, y1 = 0.

Каков порядок аппроксимации у данной схемы? Можно ли его улучшить?

7.3 Для задачи y′ + 5y = 5, y(0) = 2 построена разностная схемаyk+1 − yk−1

2h+ 5yk = 5, y0 = 2, y1 = 2− 5h.

Исследовать её аппроксимацию.

Page 127: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 7 127

7.4 Построить аппроксимацию второго порядка для заданной краевойзадачи

u′′(x) + u(x) = cos x+ 1,

u(1) = 2,

u′(3)− 3u(3) = 1,

Решение. Как видно из граничных условий, решение ищется на отрезке[1, 3]. Разобьём этот отрезок на n равных частей. Длина каждого частич-ного отрезка равна h = (3 − 1)/n. Введём в рассмотрение сетку ω =

{x0, x1, . . . , xn}, где x0 = 1, x1 = 1+h, x2 = 2+2h, . . . , xn−1 = 3−h, xn = 3.Рассмотрим также сеточную функцию yi = y(xi), определённую только вузловых точках xi, i = 0, 1, . . . , n.

Требуется построить систему линейных уравнений с неизвестными yi,где yi ≈ u(xi). Совокупность таких yi будет численным решением краевойзадачи.

Погрешность аппроксимации должна по условию задачи иметь порядок2 (т.е., например, уменьшение шага h вдвое должно уменьшать погреш-ность решения |yi − u(xi)| в четыре раза).

Заменим в уравнении производную разделённой разностью (см. лек-цию 5) u′′(xi) ≈ yi−1−2yi+yi+1

h2 . Исходное дифференциальное уравнение пе-рейдёт в разностное

u′′(x) + u(x) = cos x+ 1 → yi−1 − 2yi + yi+1

h2+ yi = cosxi + 1.

Убедимся, что получен второй порядок аппроксимации. В разностное урав-нение вместо сеточной функции подставим точное решение, т.е. заменимyi на ui = u(xi). Кроме этого разложим ui±1 в ряд Тейлора в окрестноститочки xi

ui±1 = ui ± hu′i +h2

2u′′i ±

h3

3!u′′′i +

h4

4!uIV(ξ±), ξ− ∈ [xi−1, xi], ξ

+ ∈ [xi, xi+1].

После сокращения имеем

u′′i −h2

12[uIV(ξ−) + uIV(ξ+)] + ui = cosxi + 1.

Page 128: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Занятие 7 128

Вычитая из последнего равенства исходное дифференциальное уравнение,получаем невязку ψ(1)

n = −h2

12 [uIV(ξ−) + uIV(ξ+)] = −h2

6 uIV(η) = O(h2), где

η ∈ [ξ−, ξ+]. Получен требуемый порядок аппроксимации.Очевидно, замена граничного условия u(1) = 2 на y0 = 2 не имеет

погрешности аппроксимации.В правом граничном условии нельзя заменить u′(3) левой разделённой

разностью, так как u′(3) = yn−yn−1h + O(h1). Выделим в O(h1) главный

член. Из формулы Тейлора в окрестности xn = 3 имеем

u(3− h) = u(3)− hu′(3) +h2

2u′′(3) +O(h3),

откуда

u′(3) =u(3)− u(3− h)

h+h

2u′′(3) +O(h2).

Из исходного уравнения следует, что u′′(3) + u(3) = cos(3) + 1. Такимобразом,

u(3)− u(3− h)

h+h

2[cos(3) + 1− u(3)] +O(h2)− 3u(3) = 1.

Невязка для правого граничного условия равна O(h2), что даёт второйпорядок аппроксимации.

Окончательный ответ — это система из n + 1 линейного уравнения снеизвестными y0, y1, . . . , yn

yi−1 − 2yi + yi+1

h2+ yi = cosxi + 1, где i = 1, 2, . . . , n− 1 и xi = 1 + ih,

y0 = 2,

yn − yn−1

h+ h

2 [cos(3) + 1− yn]− 3yn = 1.

Page 129: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Глава 3

Лабораторный практикум

3.1 ЛР 1. Распространение ошибок в вычислительных проце-дурах.

При построении математической модели и получении результата, на ошиб-ку полученного ответа влияют несколько факторов:

1. Ошибка математической модели — ошибка неучтенных параметровфизического явления. Например, полет тела, брошенного под углом кгоризонту с малыми скоростями можно описывать обычными балли-стическими уравнениями без учёта сопротивления воздуха. Как толь-ко скорости становятся значительными нужно вводить сопротивлениевоздуха. Далее следуют: учёт плотности, температуры воздуха, вет-ра, переменного ускорения свободного падения, вращения Земли и т.д.Построение адекватной математической модели описывается в курсематематического моделирования.

2. Ошибка входных данных — это ошибка измерений параметров физи-ческой модели. Во многих физических и технических задачах даннаяпогрешность достигает нескольких процентов. Она приводит к так на-зываемой неустранимой погрешности, которая не управляется мате-матически и, зачастую, приводит к парадоксальным результатам.

3. Ошибка численного метода — связана с тем, что исходные операторызаменяются приближёнными. Например, интеграл – суммой, диффе-ренцирование – конечной разностью, функцию – полиномом, беско-нечный ряд – конечной суммой элементов. Погрешность численного

129

Page 130: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

ЛР 1. Распространение ошибок в вычислительных процедурах. 130

метода обычно берут в 2-5 раза меньше неустранимой погрешности.Меньше брать невыгодно из-за увеличения объёма выполняемых вы-числений, больше — из-за снижения точности вычислений. Ошибкачисленного метода управляется математически.

4. Ошибка округления связана с ограниченной разрядной сеткой ком-пьютера, из-за чего, например, бесконечные десятичные дроби пред-ставляются в конечном виде.

3kНачнём со второго пункта. Рассмотрим многочлен Уилкинсона

P (x) = (x− 1)(x− 2)...(x− 20) = x20 − 210x19 + 20615x18 + . . .

Очевидно, корнями его являются x1 = 1, x2 = 2, . . ., x20 = 20. Выполнитев Matlab команду p=poly(1:20), которая позволяет получить коэффи-циенты полинома, корнями которого является аргумент функции. Набе-рите roots(p) и убедитесь, что корни полинома найдены верно. Измени-те значение, например, второго коэффициента на малую величину 10−7

(составляет ≈ 5 · 10−8% от числа) и снова выполните эту команду - по-ловина корней стала комплексными числами! Исходная задача оказаласьнеустойчивой к входным данным (их малое изменение ведет к сильномуизменению решения), в результате чего получился абсурдный результат.

3kРассмотрим представление числа в компьютере. Чаще всего в Mat-

lab производятся операции над числами с двойной точностью. Числоформата double — 64-разрядное число (8 байт), в котором 1 бит — знако-вый, 52 отводятся под мантиссу и 11 под порядок числа. (D = ±(1+m)·2n,m = 0,m1m2 . . .mk, m1 6= 0 — мантисса числа, n — порядок). Так как впорядке тоже есть знаковый бит, то множество его значений лежит от−210 + 1 = −1023 до 210 = 1024. В командном окне Matlab набери-те 2ˆ1023. Получилось число с десятичным порядком +308 (его легкооценить аналитически: 21024 ≈ 21000 = 1024100 ≈ (103)100 = 10300). Те-перь выполните 2ˆ1024 — получили Inf т.е. машинную бесконечность.Команда realmax как раз и выдаёт максимальное число, которое можнопредставить в Matlab, команда realmin — минимальное (по абсолютной

Page 131: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

ЛР 1. Распространение ошибок в вычислительных процедурах. 131

величине).3kТеперь посмотрим на мантиссу: 252 ≈ 4, 5 · 1015, таким образом, ман-

тисса содержит 15-16 десятичных знаков; все, что вылезет за эти пределы,будет отброшено. Установите формат отображения с плавающей точкой:format long e, выполните sqrt(2) (квадратный корень из 2). Посчитай-те число выданных цифр.

Точность Байты M0 (маш.ноль) M∞ (маш. бесконечность)Одинарная 4 1, 2 · 10−38 3, 4 · 1038

Двойная 8 2, 2 · 10−308 1, 8 · 10308

3kКазалось бы, такая точность представления способна удовлетворитьлюбые нужды исследователя. Однако, необходимо помнить, что, напри-мер, перед тем как два числа будут сложены они должны быть приведе-ны к единому порядку, а то, что при сложении выйдет за мантиссу будетотброшено! Поэтому, если сложить 10ˆ8+10ˆ-7 в мантиссу уложатся 15десятичных знаков и будет получен верный результат, а если выполнить10ˆ8+10ˆ-8, то малое число выйдет за разрядную сетку, и получим те же10ˆ8 (проверьте).

3k Получается парадоксальная ситуация: давайте прибавим к 1 малоечисло 10ˆ-16, но последовательно 10ˆ17 раз1(такие вычисления харак-терны для задач ЧМ — вычисление рядов, разнообразные итерационные,разностные задачи...). Легко найти ответ 11, однако, машинная арифме-тика даёт 1 — ошибка 1000%! Если бы мы начали с конца, т.е. сначаланашли сумму малых, а затем прибавили к единице, то получили бы вер-ный результат. Таким образом, машинное сложение, в общем случае, некоммутативно.

3k Знание этих фактов позволяет протестировать компьютер на по-грешность вычислении. Найдем значение выражения 1+ε−1

ε при ε = 2−n,n = 0, 1, 2, . . .. С точки зрения аналитической математики значение этого

1Цикл из 1017 итераций на компьютерах невысокой производительности может вы-числяться долго. Чтобы убедиться в округлении мантиссы достаточно меньшего коли-чества итераций, например 106. Прервать длительные вычисления в Matlab можноклавишами Ctrl+Break.

Page 132: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

ЛР 1. Распространение ошибок в вычислительных процедурах. 132

выражения постоянно и равно единице для любых n. Сделайте предпо-ложения, при каком значении n это выражение перестанет отличатьсяот единицы, чему будет равно; напишите программу, реализующую этоталгоритм с пошаговой выдачей номера шага, значения ε и результата вы-ражения.

4k Рассмотрим погрешности численных методов. Построим алгоритмвычисления интеграла In =

∫10 x

nex−1 dx, n = 1, 2, 3, . . . Интегрируя почастям, находим:

I1 =1∫0

xex−1 dx = xex−1|10 −1∫0

ex−1 dx = 1e

I2 =1∫0

x2ex−1 dx = x2ex−1|10 − 21∫0

xex−1 dx = 1− 2I1

· · ·

In =1∫0

xnex−1 dx = xnex−1|10 − n1∫0

xn−1ex−1 dx = 1− nIn−1

Вычислите значения интегралов, до n = 30. Заметьте, что подинтеграль-ная функция на всем отрезке интегрирования неотрицательна, следова-тельно, и значение интеграла — положительное число. Более того, подын-тегральная функция на данном интервале ограничена функцией y = 1,т.е. значение интеграла не может превышать единицы. Посмотрите, какэто согласуется с полученными результатами. Попытайтесь на основе по-лученных сведений о погрешностях объяснить данный феномен.

5k Напишите функцию вычисления значения синуса в виде конечнойсуммы ряда2 (sinx =

∑∞k=0(−1)k x2k+1

(2k+1)!). По признаку Лейбница погреш-ность вычисления сходящегося знакопеременного ряда не превышает поабсолютной величине первого из отброшенных членов. Вычисления чле-нов ряда проводите до вычисления члена по модулю не превышающего

2При работе со степенными рядами на компьютере для сокращения объёма вы-числений полезно рассмотреть выражение un+1/un. Например, в случае синуса: un =

(−1)nx2n+1

(2n+ 1)!и un+1 = (−1)n+1 x2n+3

(2n+ 3)!, откуда

un+1

un=

− x2(2n+ 2)(2n+ 3)

. Получаем,

u0 = x, u1 = u0 ·− x2

(2 · 0 + 2)(2 · 0 + 3), u2 = u1 · . . . и т.д. Такой подход позволяет обой-

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

Page 133: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

ЛР 2. Методы дихотомии, Ньютона, простых итераций. 133

10−17. Вычислите значение синуса в точках 0, π3 ,π2 , π, 2π, убедитесь, что

полученные значения с высокой степенью точности совпадают с действи-тельным значением синуса в этих точках. Далее проведите вычисления вточках 12π, 13π, 14π, выводя результаты по шагам (посчитанный член ичастичную сумму ряда). Полученные результаты объясняются погрешно-стями округления, в реальных программах значение аргумента приводит-ся к отрезку [0; π2 ].

3.2 ЛР 2. Методы дихотомии, Ньютона, простых итераций.

Решение данных уравнений подразумевает два этапа:

1. Локализация корней — выделение отрезков, на которых находится неболее одного корня.

2. Поиск корня с заданной точностью.

В качестве функции f(x) рассмотрим полином: f(x) = x3 − 3x2 − 9x− 5.Известно, что корни полинома Pn(x) =

∑nk=0 akx

k (в общем случае ком-плексные) лежат внутри круга |xp| 6 1 + 1

|an| max(|a0|, |a1|, . . . , |an−1|). Мытолько что применили аналитический подход к сужению области нахож-дения корней.

3k Напишите файл-функцию f.m и постройте график функции на от-резке [−10; 10], включив командой grid on отображение линий сетки. Вы-делите отрезки, содержащие нули функции (графический способ это одиниз методов локализации корней). Очевидно, функция имеет корни одинар-ной и двойной кратности. Запишите вектор p, содержащий коэффициентыполинома, и найдите его корни, выполнив команду roots(p).

3k Напишите программу, реализующую нахождение корня одинарнойкратности методом деления отрезка пополам. Обратите внимание, что ме-тод дихотомии предполагает, что значения функции на концах отрезкаразличаются по знаку. Выведите на экран число итераций.

3kНапишите программу нахождения решений уравнения f(x) = 0 ме-тодом Ньютона и используйте её для поиска всех корней полинома. Вы-

Page 134: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

ЛР 2. Методы дихотомии, Ньютона, простых итераций. 134

ведите на экран число итераций.4k Для кратного корня использовать модифицированный метод Нью-

тона. Выведите на экран число итераций.3k Найдем методом простых итераций корни уравнения x2 − a = 0

(квадратный корень из числа a). Приведем уравнение к виду, удобномудля использования метода: x = 1

2

(ax + x

). Можно убедиться, что правая

часть уравнения удовлетворяет условию сходимости метода (в отличие оттаких представлений как: x = x2 + x − a, x = a

x). Напишите программувычисления квадратного корня с машинной точностью.

4kИсследовать область сходимости представления x = x2 +x−a. Про-извести расчёт в найденной области и за её пределами.

3k В Matlab для решения уравнений вида f(x) = 0 есть функцияfzero, в качестве параметров которой передаётся имя файл-функции иначальное приближение корня (или отрезок его содержащий). Обратитевнимание, что fzero так же как и метод дихотомии требует, чтобы припереходе через корень функция меняла знак (например, с её помощью неудастся найти нули функции, f(x) = sinx + 1, корни полинома двойнойкратности и т.д.)

5kСделайте предположения о том, где находятся корни уравнения sinx =

x/2 и найдите их, используя все изученные методы.

Реализация функциями MATLAB

fzero — поиск нулей функции

roots — поиск корней полинома

Контрольные вопросы

1. Из каких соображений, и какими методами можно локализовать ис-комый корень?

2. Каким образом реализуется заданная точность поиска в методе по-ловинного деления и в методе Ньютона? Чем различаются условия

Page 135: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

ЛР 3. Интерполяция функций. Полиномы Лагранжа, Ньютона. 135

прекращения итераций?

3. Почему с помощью метода половинного деления не удаётся находитькорни двойной кратности?

4. Сравните (перечислите преимущества и недостатки) методов Ньютонаи половинного деления.

5. Назовите условия применимости метода Ньютона.

6. Оцените скорость сходимости в методе Ньютона при поиске корнейодинарной и двойной кратности.

7. Назовите условия сходимости метода простых итераций.

8. Каким образом можно априорно вычислить примерное количествоитераций, требуемых для нахождения корня с заданной точностью,для всех изученных методов?

3.3 ЛР 3. Интерполяция функций. Полиномы Лагранжа, Нью-тона.

Пусть есть прибор, который в дискретные моменты времени выдаёт сиг-нал по закону f(t) = sinπt. Допустим, наблюдатель зарегистрировал пятьотсчётов в моменты времени ti = i

4 , i = 0, 1, 2, 3, 4. Задачей наблюдателя(который не знает закона выдачи сигнала) является получение прибли-жённого значения функции на отрезке [0, 1] в любой момент времени.

3k Используя линейную интерполяцию, найдите значения функции вточках: t = 0, 1

6 ,13 ,

12 и сравните с реальным значением синуса в этих точ-

ках. Постройте графики синуса и ломаной, проходящей через пять задан-ных точек. Отметьте, насколько сильно они различаются в разных частяхграфика. Чем это обусловлено?

3kПостройте по заданным пяти точкам интерполяционный многочленЛагранжа или Ньютона и, используя его, найдите значения функции вточках t = 0, 1

6 ,13 ,

12 , Сравните результаты со значениями, полученными

Page 136: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

ЛР 3. Интерполяция функций. Полиномы Лагранжа, Ньютона. 136

при линейной интерполяции, и значениями синуса в этих точках. Построй-те графики синуса и интерполяционного многочлена. Какую максималь-ную ошибку мы допускаем при аппроксимации синуса данным полино-мом? Сравните экспериментальную погрешность с теоретической.

4kВ программе сделать возможность строить многочлен Лагранжа илиНьютона для произвольного набора точек t = t0, t1, . . . , tn.

5kПри вычислении многочлена стараться заменить циклы матричнымиоперациями (см. первое практическое занятие).

3k Найдите значение интерполяционного полинома при t = 2. Почемуоно так сильно отличается от значения синуса в этой точке?

4k Задайте функцию Рунге f(x) = 11+25x2 на отрезке [−5, 5] в десяти

равноотстоящих точках. Сравните значения функции и интерполяцион-ного полинома при x = 4, 5. Постройте графики функции и полинома назаданном отрезке и объясните поведение интерполяционного полинома.Посмотрите, что будет происходить при постепенном увеличении числаузлов интерполяции и подумайте, как можно избавиться от получившего-ся эффекта.

6kДля приближения функции Рунге используйте Чебышёвские узлы.Постройте графики функции и многочлена.

Реализация функциями Matlab. Для одномерной интерполяции вMatlab есть функция interp1. Изучите её и постройте графики интер-полированных функций из примеров, рассмотренных выше.

Контрольные вопросы

1. Системами каких функций можно приближать заданную табличнофункцию? Из каких соображений выбирается эта система? Приведитепримеры.

2. Чем различается построение интерполяционных полиномов Лагранжаи Ньютона?

3. Сколько полиномов и какой степени можно провести через n точек?

Page 137: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

ЛР 4. Дифференцирование функции, заданной таблично. 137

4. Пусть таблично заданно достаточное количество точек некоторой сте-пенной функции. Возможно ли и как восстановить коэффициенты это-го многочлена?

5. Каким образом за счёт выбора узлов можно добиться уменьшенияошибки интерполяции?

6. Выпишите формулы для оценки погрешности интерполяции в точкеи на отрезке.

7. Что называется кусочной интерполяцией и каковы критерии её при-менимости?

8. Каким образом следует поступить, если ставится не прямая, а обрат-ная задача: требуется найти значение x, при котором f(x) принимаетзаданное значение?

3.4 ЛР 4. Дифференцирование функции, заданной таблично.

3kВыберите некоторую функцию (например, sinx, cosx, expx, shx, chx,lnx, . . . ) и некоторую точку x из области определения функции. Найди-те значение производной функции в выбранной точке (используя любуюформулу численного дифференцирования) с точностью 10−3, 10−6. Поль-зоваться точным значением производной в качестве эталона запрещено3.

4k Выберите некоторую функцию (например, sinx, cosx, expx, shx,chx, lnx, . . . ) и некоторую точку x из области определения функции.Сравните погрешности у формул с разными порядками погрешностей (на-пример, y′(x) ≈ y(x+h)−y(x)

h и y′(x) ≈ y(x+h)−y(x−h)2h ) для последовательности

убывающих шагов (например, h = 12 ,

14 ,

18). С какими скоростями убыва-

ют погрешности для каждой формулы? Дайте теоретическую оценку иподтвердите ответ экспериментом4.

3В данном задании лучше использовать формулу y′(x) ≈ f(x)−f(x−h)h

или формулуy′(x) ≈ f(x+h)−f(x−h)

2h. Погрешность для этих формул легко получить из разложения

f(x± h) в ряд Тейлора в окрестности точки x.4Напомним, что y′(x) = y(x+h)−y(x)

h+ O(h1) и формула имеет первый порядок по-

грешности; y′(x) = y(x+h)−y(x−h)2h

+O(h2) и формула имеет второй порядок погрешности.

Page 138: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

ЛР 4. Дифференцирование функции, заданной таблично. 138

5kНеустойчивость численного дифференцирования. Выберите некото-рую функцию (например, sinx, cosx, expx, shx, chx, lnx, . . . ) и неко-торую точку x из области определения функции. Попробуйте применитьформулу y′(x) ≈ y(x+h)−y(x)

h для стремящейся к нулю последовательностиh = 1

2 ,14 ,

18 ,

116 , . . .). Будет ли погрешность ε =

∣∣∣y′(x)− y(x+h)−y(x)h

∣∣∣ монотон-но убывать при уменьшении h? Сравните практический и теоретическийрезультаты.

Реализация функциями Matlab.

р = polyfit(x,y,n) — вычисление коэффициентов полинома наилучше-го (среднеквадратического) приближения степени n.

k = polyder(p) — получение коэффициентов k полинома, получающего-ся при дифференцировании полинома, заданного коэффициентами p.

у = polyval(p,x) — вычисление значения полинома с коэффициента-ми p в точках x.

Контрольные вопросы

1. Как теоретически узнать погрешность формулы численного диффе-ренцирования? Как узнать порядок погрешности?

2. Какие есть способы получения формул численного дифференцирова-ния?

3. Какие есть способы практической (при вычислении на компьютере)оценки погрешности численного дифференцирования?

4. Являются ли формулы численного дифференцирования устойчивымик погрешностям входных данных? Ответ обоснуйте.

5. Опишите, как имея в распоряжении формулу для численного диффе-ренцирования с порядком точности p, получить формулу с большимпорядком точности (метод Рунге).

Page 139: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

ЛР 5. Интегрирование функций. Формулы трапеций, Симпсона. 139

3.5 ЛР 5. Интегрирование функций. Формулы трапеций, Симп-сона.

3kЗадайте функцию f(x) = x3 на отрезке [0, 1]. Очевидно, определённыйинтеграл от функции f(x) на этом отрезке равен 1

4 . Напишите программу,вычисляющую значение интеграла по формулам трапеций и Симпсона.Какую максимальную теоретическую ошибку мы при этом допускаем?Найдите реальное значение погрешности (абсолютное значение разностимежду теоретическим и аналитическим решением). Почему при вычисле-нии интеграла по формуле Симпсона от данной функции ошибка равнанулю? Какие бы получились значения погрешностей для квадратичнойи линейной функций (предположите и проведите численный экспериментдля f2(x) = x2, f1(x) = x/2 на отрезке [0, 1]).

4kИспользуя соотношение∫1

01

1+x2dx = arctg(1) найдите значение числаπ с точностью 10−6. В данном задании в процессе вычислений нельзя ис-пользовать встроенную константу pi для определения величины шага. Изкаких соображений выбирался шаг для получения указанной точности?

5kРеализовать предыдущее задание, определяя точность методом Рун-ге. При численном вычислении интегралов последовательно с шагами h иh/2 можно сократить число арифметических операций. Заметим, что при-ближённое значение интеграла Ih/2 есть сумма, часть слагаемых которойвозможно уже участвовало при вычислении Ih. Поэтому можно получитьIh/2, используя числовое значение Ih. Это позволяет избежать повторногосуммирования части слагаемых5.

5 Продемонстрируем это на примере метода трапеций для шагов h и h/2:

Ih = h

(1

2f0 + f1 + . . .+ fn−1 +

1

2fn

),

Ih/2 =h

2

(1

2f0 + f1/2 + f1 + f3/2 + . . .+ fn−1 + fn−1/2 +

1

2fn

).

Очевидно, что Ih/2 =Ih2

+h

2

(f1/2 + f3/2 + . . .+ fn−3/2 + fn−1/2

).

Page 140: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

ЛР 6. Решение систем линейных уравнений. 140

Реализация функциями Matlab. q = quad(fun,a,b) — вычисле-ние интеграла от функции fun (встроенной или описанной файл-функцией)на отрезке [a, b]. Алгоритм основан на квадратурной формуле Симпсонас автоматическим подбором шага.

Контрольные вопросы

1. В каких случаях имеет смысл использовать неравномерное распре-деление узлов? Каким образом алгоритмически можно реализоватьавтоматический подбор шага?

2. Какая ошибка допускается, если подынтегральная функция заменя-ется интерполяционным полиномом, а затем производится аналитиче-ское вычисление интеграла?

3. Какой метод — прямоугольников (с выбором центральной точки) илитрапеций — даёт в общем случае меньшую ошибку?

4. Каким образом можно уточнить значение интеграла, уже вычислен-ного по формулам трапеций и прямоугольников?

3.6 ЛР 6. Решение систем линейных уравнений.

3k Задайте матрицу A и вектор-столбец f системы линейных уравненийAX = f , используя генератор случайных чисел. Очевидно, можно по-лучить решение таким образом: X = A−1f (предварительно проверив,что матрица A не вырожденная) или по правилу Крамера (xi = detAi

detA ,где Ai — матрица, получающаяся из матрицы A заменой i-го столбца настолбец правой части f). Реализуйте и проверьте работоспособность этихметодов. Несмотря на простоту использования в Matlab, эти вариантычрезвычайно неэкономичны по числу операций.

3kНапишите программу нахождения решения системы линейных урав-нений методом Гаусса с выбором главного элемента.

3k Функция rref Matlab также приводит матрицу [A f] к диаго-нальному виду, из которого сразу же видно решение системы. Также па-

Page 141: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

ЛР 7. Метод Эйлера. Схемы Рунге-Кутта решения ОДУ. 141

кет содержит операцию левого матричного деления, с помощью которойочень просто найти решение: X = A\f. Более того, эта операция позволяетрешать недоопределённые и переопределённые системы линейных уравне-ний, выбирая алгоритм решения в зависимости от вида матрицы A.

3k Задайте случайным образом матрицу A размерности 20× 20 и век-тор X. Определите число обусловленности матрицы A с помощью функ-ции cond. Изменяя значения некоторых элементов матрицы A, добейтесь,чтобы её число обусловленности стало больше 103. Используя A и X, най-дите вектор f = AX. Полагая вектор X неизвестным, решите системулинейных уравнений всеми предложенными выше методами и сравнитенайденные решения с уже известным. Какой из методов дал более точныйрезультат? Обратите внимание на решения, полученные обычным методомГаусса и методом с выбором главного элемента.

Реализация функциями Matlab.

\ — операция левого матричного деления

rref(A) — приведение матрицы к диагональному виду

inv(A) — нахождение обратной матрицы

cond(A) — нахождение числа обусловленности матрицы

3.7 ЛР 7. Метод Эйлера. Схемы Рунге-Кутта решения ОДУ.

Рассмотрим обыкновенное дифференциальное уравнение p-го порядка:

y(p) = f(x, y, y′, y′′, . . . , y(p−1))

Путём введения замены, данное уравнение можно свести к системе линей-ных уравнений первого порядка:{

yk+1 = y′k, k = 1, 2, . . . , p− 1,

y′p = f(x, y1, y2, . . . , yp),

Page 142: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

ЛР 7. Метод Эйлера. Схемы Рунге-Кутта решения ОДУ. 142

где y1 = y. Данная система может быть записана в векторной форме:dy

dx= f(x, y)

Для получения единственного решения из системы нужно наложить p до-полнительных условий на функции yk(x). Для задачи Коши данные усло-вия задаются в одной точке: yk(x0) = ηk, k = 1, 2, . . . , p. Эти условиярассматриваются как задание начальной точки для интегральной кривойв (p+ 1)-мерном пространстве (x, y1, y2, . . . , yp). Если правые части систе-мы непрерывны и ограничены в некоторой окрестности начальной точки(x0, η1, η2, . . . , ηp), то решение задачи Коши существует, но может быть неединственно. Если правые части к тому же удовлетворяют условию Лип-шица по переменным yk, то решение существует и единственно, т.е. задачаКоши поставлена корректно.

Рассмотрим уравнение 1-го порядка:{dydx = f(x, y)

y(x0) = η

и пусть данная задача Коши поставлена корректно. Будем искать числен-ное решение уравнения на отрезке [x0, X]. Введем на этом отрезке сеткуωh = {xi, i = 0, 1, . . . , N}, таким образом, чтобы x0 < x1 < . . . < xN = X.Обозначим hi = xi+1 − xi, i = 0, 1, . . . , N − 1 шаг сетки. Заменив произ-водную в уравнении правой разностью, получим

yi+1 − yihi

= fi, i = 0, 1, . . . , N − 1,

где fi = f(xi, yi).Зная y(x0) = η, можно найти все остальные значения yi по формуле:

yi+1 = yi + hifi, i = 0, 1, . . . , N − 1. Данный метод нахождения числен-ного решения называется методом Эйлера (или методом ломаных). Схе-мы, в которых значение функции явно выражается через уже найденныезначения, называются явными, иначе - неявными. Таким образом, схемаЭйлера является явной. Оценка погрешности для данного метода даетO(max(hi)), что предполагает малый шаг сетки для получения удовле-творительного решения.

Page 143: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

ЛР 7. Метод Эйлера. Схемы Рунге-Кутта решения ОДУ. 143

3k Найдите численное решение следующего ОДУ методом Эйлера (наравномерной сетке) и сравните его с аналитическим:{

dydx = x2,

y(0) = 1.

4k Matlab имеет множество функций для численного решения обык-новенных дифференциальных уравнений и их систем. Солверы ode23 иode45 основаны на формулах Рунге-Кутты 2,3 и 4,5 порядков соответ-ственно. Разберем пример их использования на примере задачи о колеба-ниях под воздействием внешней силы:{

y′′ + 2y′ + 10y = sin t,

y(0) = 1, y′(0) = 0.

Сводим к системе уравнений первого порядка:y′1 = y2,

y′2 = −2y2 − 10y1 + sin t,

y1(0) = 1, y2(0) = 0.

function t e s t ode :Y0 = [ 1 ; 0 ] ; % вектор начальных условий[T Y] = ode45 ( ’ o s c i l ’ , [ 0 15 ] ,Y0 ) ; % получение решения

% на отрезке 0<t<15function F=o s c i l ( t , y ) % составляем функциюF=[y ( 2 ) ; −2∗y(2)−10∗y(1)+ sin ( t ) ] ; % из правых частей

вектор Y(:,l) содержит решение исходного уравнения,вектор Y(:,2) содержит производную решения уравнения.

4k Постройте графики координаты y1(t) и скорости y2(t). Воспользо-вавшись знаниями теории обыкновенных дифференциальный уравненийможно получить аналитическое решение:

y = e−t(C1 cos 3t+ C2 sin 3t) +1

85(9 sin t− 2 cos t),

где для данной задачи Коши C1 = 8785 , C2 = 26

85 . Постройте график ана-литического решения и сравните с численным, полученным при помощиode23 и ode45.

Page 144: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

ЛР 7. Метод Эйлера. Схемы Рунге-Кутта решения ОДУ. 144

5kРешите следующее дифференциальное уравнение:{y′′ = − 1

t2 ,

y(t0) = ln t0, при t0 = 0, 01

и сверьте численное решение с аналитическим y = ln t.

Реализация функциями Matlab. ode45, ode23, ode113, ode15s,

ode23s, ode23t, ode23tb.

Page 145: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Глава 4

Приложения

4.1 Список тем для реферативно-расчётной работы

1. Нахождение всех корней (в том числе комплексных) произвольногомногочлена степени 6 20 методом парабол.Литература: [4] гл.5, §2, п.8.

2. Интерполяция сплайнами (вычисления методом прогонки)Литература: [4] гл.2, §1, п.9; [5] гл.3, §4.

3. Интерполяция многочленами ЭрмитаЛитература: [4] гл.2, §1, п.6; [5] гл.3, §3.

4. Интегрирование методом Симпсона с автоматическим выбором шагаЛитература: [5] гл.4, §1, п.5.

5. Решение краевой задачи для дифференциального уравнение 2-го по-рядка с граничным условием 1-го рода методом прогонки

6. Решение краевой задачи для дифференциального уравнение 2-го по-рядка с граничным условием 2-го рода методом прогонки

7. Решение краевой задачи для дифференциального уравнение 2-го по-рядка с граничным условием 3-го рода методом прогонки

8. Решение системы линейных уравнений методом Якоби

9. Решение системы линейных уравнений методом Зейделя

10. Решение системы линейных уравнений методом вращений

145

Page 146: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Определитель Вандермонда 146

11. Решение системы линейных уравнений методом LU -разложений

12. Вычисление обратной матрицы методом LU -разложений

13. Численное решение дифференциальных уравнений методом Рунге-Кутты 4-го порядка

14. Интегрирование методом Гаусса Литература: [5] гл.4, §3.

15. Решение системы нелинейных уравнений методом Ньютона Литера-тура: [5] гл.5, §4.

16. Численное решение дифференциальных уравнений методом АдамсаЛитература: [5] гл.6, §3.

17. Поиск собственных значений матрицы степенным методом

18. Решение системы линейных уравнений методом релаксации

19. Решение системы линейных уравнений методом наискорейшего гра-диентного спуска

4.2 Определитель Вандермонда

Будем вычислять определитель Вандермонда индуктивно, избавляясь наk-ом шаге от xk. Вначале имеем:

∆(x1, x2, . . . , xn) =

∣∣∣∣∣∣∣∣∣∣∣∣∣

1 1 · · · 1

x1 x2 · · · xn

x21 x2

2 · · · x2n

... ... . . . ...xn−1

1 xn−12 · · · xn−1

n

∣∣∣∣∣∣∣∣∣∣∣∣∣.

Page 147: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Определитель Вандермонда 147

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

∆(x1, x2, . . . , xn) =

∣∣∣∣∣∣∣∣∣∣∣∣∣

1 0 · · · 0

x1 x2 − x1 · · · xn − x1

x21 x2

2 − x21 · · · x2

n − x21

... ... . . . ...xn−1

1 xn−12 − xn−1

1 · · · xn−1n − xn−1

1

∣∣∣∣∣∣∣∣∣∣∣∣∣=

=

∣∣∣∣∣∣∣∣∣∣x2 − x1 x3 − x1 · · · xn − x1

x22 − x2

1 x23 − x2

1 · · · x2n − x2

1... ... . . . ...

xn−12 − xn−1

1 xn−13 − xn−1

1 · · · xn−1n − xn−1

1

∣∣∣∣∣∣∣∣∣∣.

Теперь вычтем из каждой строки предыдущую, умноженную на x1:

∆(x1, x2, . . . , xn) =

=

∣∣∣∣∣∣∣∣∣∣x2 − x1 x3 − x1 · · · xn − x1

x2(x2 − x1) x3(x3 − x1) · · · xn(xn − x1)... ... . . . ...

xn−22 (x2 − x1) xn−2

3 (x3 − x1) · · · xn−2n (xn − x1)

∣∣∣∣∣∣∣∣∣∣.

Вынесем из каждого столбца общий множитель:

∆(x1, x2, . . . , xn) = (x2−x1)(x3−x1) . . . (xn−x1)

∣∣∣∣∣∣∣∣∣∣1 1 · · · 1

x2 x3 · · · xn... ... . . . ...

xn−22 xn−2

3 · · · xn−2n

∣∣∣∣∣∣∣∣∣∣=

= (x2 − x1)(x3 − x1) . . . (xn − x1)∆(x2, . . . , xn).

С определителем ∆(x2, . . . , xn) выполним такие же вычисления:

∆(x1, x2, . . . , xn) =

= (x2 − x1)(x3 − x1) . . . (xn − x1) · (x3 − x2) . . . (xn − x2)∆(x3, . . . , xn)

Page 148: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Модифицированный метод Ньютона 148

Продолжив вычисления получим:

∆(x1, x2, . . . , xn) = (x2 − x1)(x3 − x1) . . . (xn − x1)·· (x3 − x2) . . . (xn − x2) . . . (xn − xn−1) =

∏i<j

(xj − xi).

4.3 Ряд Тейлора

Теорема 11.2. Если функция f(x) имеет n+ 1 производную на отрезкес концами a и x, то для произвольного положительного числа p спра-ведливо, что

f(x) =n∑k=0

f (k)(a)

k!(x− a)k +Rn+1(x),

где остаточный член Rn+1(x) может быть представлен в одной из сле-дующих форм:

1. форма Шлёмильха—Роша:Rn+1(x) =

(x−ax−ξ

)p(x−ξ)n+1

n!p f (n+1)(ξ), где ξ ∈ [a, x];

2. форма Лагранжа:Rn+1(x) = (x−a)n+1

(n+1)! f(n+1)(ξ), ξ ∈ [a, x];

3. форма Коши:Rn+1(x) = (x−a)n+1(1−θ)n

n! f (n+1)[a+ θ(x− a)], где 0 < θ < 1;

4. интегральная форма:

Rn+1(x) = 1n!

x∫a

(x− t)nf (n+1)(t) dt;

5. форма Пеано:Rn+1(x) = o[(x− a)n].

4.4 Модифицированный метод Ньютона

Покажем, что модифицированный метод Ньютона имеет квадратичнуюскорость сходимости.

Page 149: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Модифицированный метод Ньютона 149

Пусть уравнение f(x) = 0 имеет корень x∗ кратности p. Последнее поопределению кратного корня означает, что

f(x∗) = f ′(x∗) = f ′′(x∗) = . . . = f (p−1)(x∗) = 0, но f (p)(x∗) 6= 0.

Из обоих частей модифицированного метода Ньютона

xn+1 = xn −pf(xn)

f ′(xn)отнимем x∗

xn+1 − x∗ = xn − x∗ −pf(xn)

f ′(xn)=

(xn − x∗)f ′(xn)− pf(xn)

f ′(xn).

Если обозначить F (x) = (x− x∗)f ′(x)− pf(x), то числитель можно заме-нить на F (xn):

xn+1 − x∗ =F (xn)

f ′(xn). (4.1)

Несложно заметить, что

F (x) = (x− x∗)f ′(x)− pf(x) ⇒ F (x∗) = 0,

F ′(x) = (x− x∗)f ′′(x)− (p− 1)f ′(x) ⇒ F ′(x∗) = 0,

F ′′(x) = (x− x∗)f ′′′(x)− (p− 2)f ′′(x) ⇒ F ′′(x∗) = 0,

· · · · · ·F (p−1)(x) = (x− x∗)f (p)(x)−

−(p− (p− 1))f (p−1)(x) ⇒ F (p−1)(x∗) = 0,

F (p)(x) = (x− x∗)f (p+1)(x)−−(p− p))f (p)(x) = (x− x∗)f (p+1)(x) ⇒ F (p)(x∗) = 0.

Разложим теперь F (xn) в ряд Тейлора с центром в точке x∗. Остаточныйчлен запишем в интегральной форме.

F (xn) = F (x∗)︸ ︷︷ ︸=0

+F ′(x∗)︸ ︷︷ ︸=0

(xn − x∗) + F ′′(x∗)︸ ︷︷ ︸=0

(xn − x∗)2

2!+ . . .+

+ F (p−1)(x∗)︸ ︷︷ ︸=0

(xn − x∗)p−1

(p− 1)!+

1

(p− 1)!

xn∫x∗

F (p)(t)(xn − t)p−1 dt =

=1

(p− 1)!

xn∫x∗

F (p)(t)(xn − t)p−1 dt.

Page 150: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Модифицированный метод Ньютона 150

Вспомним, что F (p)(t) = (t− x∗)f (p+1)(t). Тогда

F (xn) =1

(p− 1)!

xn∫x∗

(xn − t)p−1(t− x∗)f (p+1)(t) dt.

Так как функция (xn − t)p−1(t − x∗) не меняет знак на отрезке [x∗, xn],то можно применить теорему о среднем и вынести f (p+1)(t) из-под знакаинтеграла:

F (xn) =f (p+1)(ξn)

(p− 1)!

xn∫x∗

(xn − t)p−1(t− x∗) dt, где ξn ∈ [x∗, xn].

Легко получить, чтоxn∫x∗

(xn − t)p−1(t− x∗) dt =(xn − x∗)p+1

p(p+ 1).

В итоге

F (xn) =f (p+1)(ξn)

(p− 1)!· (xn − x∗)

p+1

p(p+ 1)=f (p−1)(ξn)(xn − x∗)p+1

(p+ 1)!.

Числитель выражения (4.1) получен, рассмотрим теперь знаменатель.Разложим f ′(xn) в ряд Тейлора с центром разложения x∗. Остаточный

член ряда запишем в форме Лагранжа:

f ′(xn) = f ′(x∗)︸ ︷︷ ︸=0

+ f ′′(x∗)︸ ︷︷ ︸=0

(xn − x∗) + f ′′′(x∗)︸ ︷︷ ︸=0

(xn − x∗)2

2!+ . . .+

+ f (p−1)(x∗)︸ ︷︷ ︸=0

(xn − x∗)(p−2)

(p− 2)!+ f (p)(ηn)

(xn − x∗)(p−1)

(p− 1)!=

= f (p)(ηn)(xn − x∗)(p−1)

(p− 1)!, где ηn ∈ [x∗, xn].

Вернёмся теперь к (4.1):

xn+1−x∗ =F (xn)

f ′(xn)=

(f (p+1)(ξn)(xn − x∗)p+1

(p+ 1)!

)/(f (p)(ηn)

(xn − x∗)(p−1)

(p− 1)!

)=

=1

p(p− 1)· f

(p−1)(ξn)

f (p)(ηn)(xn − x∗)2.

Page 151: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Модифицированный метод Ньютона 151

Обозначим погрешность приближения |xn+1−x∗| на шаге n+ 1 через εn+1

и аналогично εn = |xn − x∗|. Пусть

Mp+1 = maxx|f (p+1)(x)|, mp = min

x|f (p)(x)|.

В итоге справедлива оценка:

εn+1 6Mp+1

p(p− 1)mp· ε2

n.

Page 152: ЯРОШЕВИЧВ.А.miet.aha.ru/cm/ChislMet-2017(1_26).pdf · 2017-04-17 · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé

Литература

[1] Косарев В. И. 12 лекций по вычислительной математике (вводныйкурс) // М.: Издательство МФТИ, 2000.

[2] Турчак Л.И., Плотников П. В. Основы численных методов. Учебноепособие. // М.: Физматлит, 2005

[3] Бахвалов Н. С., Лапин А. В., ЧижонковЕ. В. Численные методы в за-дачах и упражнениях // М.: Бином, 2010.

[4] Калиткин Н.Н. Численные методы // М.: Наука, 1978.

[5] Самарский А.А., Гулин А. В. Численные методы // М.: Наука, 1989.

152