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

ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

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

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

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

Версия 1.23 (15.04.2016)

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

МИЭТ — 2016

Page 2: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Оглавление

1 Лекции 5

1.1 Лекция 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.2 Лекция 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.2.1 Метод деления отрезка пополам. . . . . . . . . . . . 12

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

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

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

1.3 Лекция 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

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

1.4 Лекция 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

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

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

ших квадратов) . . . . . . . . . . . . . . . . . . . . . 32

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

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

1.5 Лекция 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

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

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

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

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

гочлена Лагранжа. . . . . . . . . . . . . . . . . . . . 39

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

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

2

Page 3: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Оглавление 3

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

вания . . . . . . . . . . . . . . . . . . . . . . . . . . 43

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

1.6 Лекция 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

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

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

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

1.7 Лекция 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

1.7.1 Метод Рунге . . . . . . . . . . . . . . . . . . . . . . 52

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

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

1.8 Лекция 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

1.8.1 Устойчивость квадратурных формул к погрешностям

входных данных . . . . . . . . . . . . . . . . . . . . 59

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

1.9 Лекция 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

1.10 Метод Прогонки. . . . . . . . . . . . . . . . . . . . . . . . . 65

1.11 Численное решение дифференциальных уравнений . . . . . 69

2 Практические занятия 77

2.1 Занятие 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

2.1.1 Ошибки в вычислениях, числа с плавающей точкой 77

2.1.2 Матричные вычисления в MATLAB . . . . . . . . . . 79

2.2 Занятие 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

2.2.1 Метод дихотомии. . . . . . . . . . . . . . . . . . . . 84

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

2.2.3 Метод Ньютона. . . . . . . . . . . . . . . . . . . . . 87

2.3 Занятие 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

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

точного члена. . . . . . . . . . . . . . . . . . . . . . 88

2.3.2 Многочлены Чебышева . . . . . . . . . . . . . . . . 90

Page 4: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Оглавление 4

2.4 Занятие 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

2.4.1 Среднеквадратическое приближение . . . . . . . . . 92

2.4.2 Численное дифференцирование . . . . . . . . . . . . 94

2.5 Занятие 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

2.5.1 Численное дифференцирование (продолжение) . . . 96

2.5.2 Численное интегрирование . . . . . . . . . . . . . . 98

2.6 Занятие 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

2.6.1 Численное интегрирование (продолжение) . . . . . . 102

2.6.2 Матричные вычисления . . . . . . . . . . . . . . . . 104

2.7 Занятие 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

2.7.1 Решение дифференциальных уравнений . . . . . . . 106

3 Лабораторный практикум 110

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

рах. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

3.2 ЛР 2. Методы дихотомии, Ньютона, простых итераций. . . 114

3.3 ЛР 3. Интерполяция функций. Полиномы Лагранжа, Нью-

тона. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

3.4 ЛР 4. Дифференцирование функции, заданной таблично. . 118

3.5 ЛР 5. Интегрирование функций. Формулы трапеций, Симп-

сона. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

3.6 ЛР 6. Решение систем линейных уравнений. . . . . . . . . 122

3.7 ЛР 7. Метод Эйлера. Схемы Рунге-Кутта решения ОДУ. . 123

4 Приложения 126

4.1 Список тем для реферативно-расчётной работы . . . . . . . 126

4.2 Определитель Вандермонда . . . . . . . . . . . . . . . . . . 127

4.3 Ряд Тейлора . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

4.4 Модифицированный метод Ньютона . . . . . . . . . . . . . 129

Литература 133

Page 5: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Глава 1

Лекции

1.1 Лекция 1

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

Редкая техническая, инженерная, физическая задача может быть реше-

на точно и иметь «краcивый» ответ. В практической деятельности чело-

веку часто бывает достаточно иметь приближение к точному ответу с

некоторой допустимой погрешностью.

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

ных математиков. Можно упомянуть методы, названные в честь Ньютона,

Лагранжа, Чебышёва.

Итак, численные методы имеют дело с приближёнными вычислениями.

Важно понимать какая ошибка может быть в итоге допущена. Основные

источники ошибок:

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

рассматривать как плоскость, если речь идет о расстояниях < 25 км.

5

Page 6: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 1 6

В других случаях следует рассматривать Землю как шар со радиусом

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 7: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 1 7

запятой, тем больший (если цифра слева от запятой) или меньший (если

цифра справа от запятой) «вес» имеет цифра в числе. То есть важны не

только цифры, но и их позиции. Отсюда происходит название «позицион-

ная».

Примеры:

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 8: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 1 8

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

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 9: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 1 9

-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 10: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 1 10

малая отрицательная погрешность в задании 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 11: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 1 11

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 12: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 2 12

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 13: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 2 13

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

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 14: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 2 14

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 15: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 2 15

и согласно (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).

Page 16: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 2 16

Следствие (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, . . .

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

ϕ(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−11− q

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

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

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

Page 17: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 2 17

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 18: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 2 18

Отсюда

|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 19: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 2 19

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 20: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 2 20

Иллюстрация теоремы приведена на рис. 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 называется простым.

Только простой корень метод Ньютона находит быстро. Поиск кратного

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

сти 2 (то есть f(x∗) = f ′(x∗) = 0, но f ′′(x∗) 6= 0). Очевидно, в выражении

Page 21: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 2 21

(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.

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

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

.

Page 22: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 2 22

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

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

Page 23: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 3 23

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.

Page 24: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 3 24

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

терполяции.

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

не выше n (некоторые коэффициенты, включая главный коэффициент,

могут равняться нулю). Потребуем, чтобы Pn(x) совпадал с функцией в

табличных точках, то есть пусть Pn(xk) = yk, где k = 0, 1, . . . , n. Получим

систему уравнений относительно ai, k = 0, 1, . . . , n:anx

n0 + an−1x

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

anxn1 + an−1x

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

· · ·anx

nn + an−1xn−1n + . . .+ a1xn + a0 = yn.

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

приложение):

∆ =

∣∣∣∣∣∣∣∣∣∣1 x0 x20 · · · xn0

1 x1 x21 · · · xn1... ... . . . ...

1 xn x2n · · · 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 25: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 3 25

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

онного полинома:

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 26: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 3 26

Многочлен Лагранжа Многочлен Ньютона

удобно, если тре-

буется приближать

различные функции,

заданные табличными

значениями в одних и

тех же точках

• удобно, если в качестве результата нуж-

на непосредственно формула, приближа-

ющая функцию 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 27: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 3 27

где ξ — некоторое фиксированное значение на отрезке [a, b]. Очевидно, на

[a, b] функция ϕ(x) имеет (n + 2) нуля. Это узлы интерполяции и точка

= ξ. Согласно теореме Ролля, существует точка 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,−89 ,−7

9 , . . . ,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 28: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 3 28

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,40

8 1,01 0,24 0,17

10 1,88 0,3 0,11

20 40,0 0,12 0,01

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

Page 29: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 4 29

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) arccosx). (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 30: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 4 30

Из системы{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 = sin

(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 31: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 4 31

ξ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 32: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 4 32

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+a2 + b−a

2 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 33: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 4 33

который минимизирует сумму квадратов отклонений полинома от задан-

ных значений функции:

Φ(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 приближением к

функции по табличным данным.)

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

среднеквадратичным отклонением ∆ = 1n+1

n∑i=0

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

Page 34: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 4 34

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

(ошибки измерения, экспериментальный «шум» и т.д.) Интерполяцион-

ный полином, построенный по этим точкам, плохо отражает поведение

функции 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 35: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 4 35

заданы значение функции 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 36: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 4 36

si(xi) = f(xi),

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

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

Page 37: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 5 37

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−12h2

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

Page 38: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 5 38

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

ется тождество.

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

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

h(x− xi) +

fi+1 − 2fi + fi−12h2

(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−1xn−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 39: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 5 39

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

в ряд Фурье.

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 40: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 5 40

Отсюда

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 41: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 5 41

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

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 42: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 5 42

Для краткости заменим 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!+ h3

f ′′′(ξ+)

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

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

f ′i =fi+1 − fi−1

2h+ h2

f ′′′(ξ−) + 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!+ h4

f IV(ζ−)

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

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

2!+ h3

f ′′′(x)

3!+ h4

f 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 43: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 5 43

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

ет пропорционально шагу h. Погрешность O(h2) говорит о том, что

ошибка убывает пропорционально квадрату шага h. Например,

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

h погрешность ε погрешность ε

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

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

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

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

Рассмотрим влияние погрешности входных данных на результат вычис-

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

заданы значения функции yi, которые отличаются от точных значений

yi = y(xi), т.е. yi = yi ± δi, где δi — погрешность входных данных. Ве-

личина δ = maxiδ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 44: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 5 44

Пример. 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 45: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 5 45

Подставляя найденное выражение в равенство (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 46: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 6 46

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)22

f ′′(ζi)

]dx =

=

xi∫xi−1

(x− xi−1/2)22

f ′′(ζi) dx.

Page 47: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 6 47

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

|ψi| 6M2,i

xi∫xi−1

(x− xi−1/2)22

dx =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 48: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 6 48

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

|ψ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 49: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 6 49

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

[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 50: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 6 50

Привлекая последнюю лемму, получим что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 51: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 6 51

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

h погрешность ε погрешность ε

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

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

Оценки для погрешностей Ψпрям, Ψтрап и Ψсимп были получены в пред-

положении существования непрерывных производных соответствующего

порядка. Например, если у функции нет 4-ой непрерывной на [a, b] произ-

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

Page 52: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 7 52

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 53: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 7 53

где 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 54: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 7 54

где 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 55: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 7 55

Если задана погрешность для ответа ε, то на каждой части [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)

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

носит название формулы Ньютона-Котеса3.3Роджер Котес (Roger Cotes) — английский математик (1682–1716).

Page 56: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 7 56

Исследуем теперь возможность поставить в (7.1) знак = вместо ≈.Пусть f(x) = a0 + a1x+ . . .+ amx

m, 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] получается составная формула Ньютона–Котеса.

Примеры составных формул уже встречались при рассмотрении методов

прямоугольников, трапеций и Симпсона.

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

2 h3(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 57: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 8 57

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 58: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 8 58

Рассмотрим разность числителей из (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.

Доказательство. Так как формула Ньютона–Котеса основана на много-

члене Лагранжа степени n, то она точна для любого многочлена степени

n. Доказательство теоремы достаточно провести только для частного слу-

чая многочлена (n+1)-ой степени f(x) = (x−xn/2)n+1, xn/2 = 0,5(x0+xn).

Ясно, что любой другой многочлен степени n + 1 можно представить в

виде αf(x) + g(x), где α ∈ R — некоторое число, а g(x) — некоторый

многочлен степени не выше n.

Поскольку функция f(x) нечётна относительно x = xn/2, тоxn∫x0

f(x) dx =

0. Формула Ньютона–Котеса имеет видxn∫x0

f(x) dx ≈n∑k=0

ckf(xk). Покажем,

что для выбранного многочлена f(x) имеет место не приближённое ра-

венство (≈), а точное (=).Так как xi − xi−1 = h = const и xn/2 — середина отрезка [x0, xn], то

xn/2 − xk = xn−k − xn/2, k = 0, 1, . . . , n/2− 1,

Page 59: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 8 59

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

(xk − xn/2)n+1 = −(xn−k − xn/2)n+1.

Из последней леммы ck = cn−k. В итоге имеем

n∑k=0

ckf(xk) =

=

n/2−1∑k=0

ck(xk − xn/2)n+1 + cn/2(xn/2 − xn/2)n+1 +n∑

k=n/2+1

ck(xk − xn/2)n+1 =

=

n/2−1∑k=0

ck(xk − xn/2)n+1 + 0 +

n/2−1∑k=0

cn−k(xn−k − xn/2)n+1 =

=

n/2−1∑k=0

(ck − cn−k)(xk − xn/2)n+1 лемма= 0.

Получилось, чтоn∑k=0

ckf(xk) = 0 иxn∫x0

f(x) dx = 0, следовательно,xn∫x0

f(x) dx =

n∑k=0

ckf(xk).

1.8.1 Устойчивость квадратурных формул к погрешностям входных данных

Изучим влияние погрешности входных данных на результат численно-

го интегрирования. Рассмотрим в общем виде квадратурную формулу

Ньютона–Котеса (неважно простую или составную)

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.

Page 60: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 8 60

Вместо (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 пропорциональна наи-

большей из погрешностей входных данных maxk|δ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| (будет намного больше). Случай

(б) неустойчив.

Подводя итог, скажем, что для устойчивости квадратурных формул

необходима положительность коэффициентов 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.

Page 61: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 8 61

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.

Далее можно проводить вычисления с требуемой точностью по любой

квадратурной формуле.

б) Интегрирование по частям

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).

Page 62: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 8 62

в) Разбиение на два интеграла

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, поэтому, если

отбросить слагаемые с номерами большими m, мы допустим погрешность

не более, чем модуль последнего оставшегося слагаемого

1

2m!

1

2m+ 1/2δ2m+1/2 6

ε

2.

Считаем, что точность ε фиксирована. Чтобы выполнялось последнее

неравенство, мы будем варьировать m и δ.

Если выбрать очень малое δ (� 0,1) потребуется совсем немного слага-

емых m, но от такого δ пострадает погрешность интеграла I2, куда входит

величина M2 (для формулы прямоугольников или трапеций) или M4 (для4

Теорема (признак Лейбница). Если члены знакочередующегося ряда

S = p1 − p2 + p3 − . . .+ (−1)k−1pk + . . . , где все pk > 0,

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

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

|Sn − S| 6 pn.

Page 63: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 8 63

формулы Симпсона). В самом деле, 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 64: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Лекция 9 64

1.9 Лекция 9

Методы Гаусса, прогонки, Якоби и Зейделя пока можно найти в книжке

Косарева.

Page 65: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Метод Прогонки. 65

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 стоят элементы со знаком

«минус». Это объясняется применением метода прогонки для решения

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

Будем искать решение в виде

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

выбрать такими, чтобы выражения в квадратных скобках обращались в5Например, вторая производная в точке xk аппроксимируется разделённой разно-

стью 1h2

(yk−1 − 2yk + yk+1), где коэффициент при yk отрицательный.

Page 66: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Метод Прогонки. 66

нуль. А именно, достаточно положить

α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 + µ21− κ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 67: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Метод Прогонки. 67

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

ремы |αj| 6 1, j = 1, . . . , n − 1. Базис индукции: α1 = κ1 и |κ1| 6 1,

следовательно, |α1| 6 1. Индуктивный переход: пусть |αj| 6 1, докажем,

что |αj+1| 6 1. Из оценок6

|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 содержит много нулевых

элементов.6Использованы неравенства «треугольника»: для любых a, b ∈ R справедливо, что

|a|+ |b| > |a+ b| и |a− b| > | |a| − |b| |.

Page 68: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Метод Прогонки. 68

Устойчивость метода прогонки к погрешностям входных данных. Ес-

ли выполняются условия теоремы 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 69: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Численное решение дифференциальных уравнений 69

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}.

Page 70: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Численное решение дифференциальных уравнений 70

В дальнейшем мы всегда будем считать, что расстояние между соседни-

ми узлами сетки xk и xk+1 есть константа h, называемая шагом сетки.

Кроме того полагаем 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] к точному решению,

если оно сходится в каждой точке этого отрезка.

Page 71: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Численное решение дифференциальных уравнений 71

Погрешность решения — это числовая характеристика δh, показыва-

ющая, насколько истинное решение u(xk) дифференциального уравнения

отклоняется от решения yk системы разностных уравнений. Для погреш-

ности решения мы будем использовать величину δh = maxk|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 72: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Численное решение дифференциальных уравнений 72

далее методы устойчивы.

Метод Эйлера. Заменим в задаче Коши (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. Представим

Page 73: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Численное решение дифференциальных уравнений 73

uk+1 = u(xk+1) в виде ряда Тейлора

uk+1 = uk + hu′k+1 +O(h2).

Подставим точное решение uk и uk+1 дифференциального уравнения (11.2)

в разностное уравнение (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 − ykh

=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))

Page 74: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Численное решение дифференциальных уравнений 74

справедливо разложение

ψ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) имеет второй порядок ап-

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

Метод предиктор–корректор. Предположим, что приближённое значе-

ние yk решения исходной задачи в точке x = xk уже известно. Для нахож-

дения yk+1 = y(xk+1) поступим следующим образом. Сначала, используя

схему Эйлераyk+1/2 − yk

0,5h= f(xk, yk), (11.7)

вычислим промежуточное значение yk+1/2, а затем воспользуемся разност-

ным уравнениемyk+1 − yk

h= 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).

Используя формулу Тейлора для функции нескольких переменных7, по-7Теорема. Пусть функция 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 75: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Численное решение дифференциальных уравнений 75

лучим окрестности точки (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),

так как в силу (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) называется

методом предиктор–корректор (предсказывающе-исправляющим8), по-

скольку на первом этапе приближённое значение предсказывается с невы-

сокой точностью O(h), а на втором этапе это предсказанное значение ис-

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

по h.

Тот же самый метод можно реализовать несколько иначе. А именно,

сначала вычислим последовательно функции

p1 = f(xk, yk), p2 = f(xn + 0,5h, yk + 0,5hp1),

а затем найдём yk+1 из уравнения (yk+1 − yk)/h = p2.

Такая форма реализации метода предиктор–корректор называется ме-

тодом Рунге–Кутта. Поскольку требуется вычислить две промежуточные

функции p1 и p2, данный метод относится в двухэтапным методам.

Метод Рунге–Кутта.9 Явный m-этапный метод Рунге-Кутта состоит в следу-ющем. Пусть решение yk = y(xk) уже известно. Задаются числовые коэффициенты

ai, bij, i = 2, 3, . . . ,m, j = 1, 2, . . . ,m− 1,σi, i = 1, 2, . . . ,m,

8От англ. predict – предсказывать, correct – исправлять9Мартин Вильгельм Кутта — немецкий физик и математик (1867–1944).

Page 76: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Численное решение дифференциальных уравнений 76

и последовательно вычисляются функции

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).

Коэффициенты 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 77: ЯРОШЕВИЧВ.А.1_23).pdf · 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−71+2·10−7 . После вычислений получаем

x2 = 1.000000, x1 = 2.000000 — правильное (с точностью по шести деся-

тичных цифр) решение.

Представление чисел с плавающей точкой в MATLAB По умолчанию

переменные имеют тип «плавающая точка двойной точности». Каждое

число занимает 8 байт. Представление имеет следующую структуру:

8 байт︷ ︸︸ ︷b63︸︷︷︸

знак sb62 . . . b52︸ ︷︷ ︸порядок e

b51 . . . b0︸ ︷︷ ︸мантисса f

77

Page 78: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 1 78

число с пл. точкой =

(−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 79: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 1 79

возвращает ответ 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

),

Page 80: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 1 80

diag(v,1) =

0 1 0

0 0 2

0 0 0

, diag(v,-1) =

0 0 0

1 0 0

0 2 0

.

Пусть далее 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

).

Page 81: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 1 81

1.4 Пусть задан вектор x = [1,2,4,5,6,7]. Задать в MATLABматрицу

определителя Вандермонда:

∆ =

1 x0 x20 · · · xn0

1 x1 x21 · · · xn1... ... . . . ...

1 xn x2n · · · xnn

.

Решение. Неоптимальный подход:

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);end

end

Delta % вывести на экран ответ

Оптимальный подход:

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

.

Page 82: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 1 82

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)

Решение. Неоптимальное:

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 ;

end

r e s u l t = r e s u l t ∗ ( y − x ( i ) ) ;

end

r 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).

Page 83: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 1 83

1.6 Пусть задана переменная m = 4. Предложить оптимальное реше-

ние в MATLABдля построения следующей матрицы:

C =

0 1 . . . m

1 2 . . . m+ 1

2 3 . . . m+ 2... ... . . .

m m+ 1 . . . m+m

.

Указание. Представить искомую матрицу в виде C = A+ A>.

1.7 Пусть задан вектор x = [1,2,4,5,6,7] и m = 4. Вычислить в

MATLABматрицу для метода среднеквадратического приближения:

n+ 1∑xi . . .

∑xmi∑

xi∑x2i . . .

∑xm+1i∑

x2i∑x3i . . .

∑xm+2i

... ... . . .∑xmi

∑xm+1i . . .

∑xm+mi

.

Решение. Заметим, что элементы матрицы принадлежат множеству

{∑x0i , . . . ,∑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.

Page 84: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 2 84

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 <ε. Решая неравенство (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+ 1

2

∣∣ < 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 метод

Запишем метод Ньютона

Page 85: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 2 85

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], для каждого из которых построим свой итерационный про-

цесс.

Для x ∈ [−3,−2] разделим исходное уравнение на x2. В результате

получим равносильное уравнение x = ϕ(x), ϕ(x) = 1x2 − 3. Итерационный

процесс для нахождения первого корня: xn+1 = 1x2n−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)| = 12

∣∣∣ 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, то разности

Page 86: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 2 86

(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сходится.

Решение. Уравнение 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.

Page 87: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 2 87

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 Найти область сходимости метода простой итерации для следую-

щих уравнений:

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−1n

=p− 1

pxn +

a

pxp−1n

.

Page 88: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 3 88

Для 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.

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;

Page 89: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 3 89

Решение.

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.

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, удовлетворя-

ющий условиям:

Page 90: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 3 90

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).

Решение. Воспользуемся тригонометрической формой записи многочлена

Чебышёва: 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′ =

Page 91: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 3 91

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) имеет

коэффициент 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−12n π, i = 1, . . . , n. Найти

Page 92: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 4 92

наибольшее целое p в оценке погрешности вида εn = 1310−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.

2.4 Занятие 4

2.4.1 Среднеквадратическое приближение

4.1 Провели эксперимент по измерению координаты x движущегося

прямолинейно тела в зависимости от времени t. Были получены следу-

ющие данные:t 0 1 2 3

x 2 7,1 13,9 23,2. Получить с помощью метода наи-

меньших квадратов зависимость x(t), если известно, что тело движется

равноускоренно (координата x имеет квадратичную зависимость от вре-

мени t).

Решение. Координата тела, движущегося прямолинейно под действием

постоянного ускорения выражается квадратичной зависимостью:

x(t) = a+ bt+ ct2.

Page 93: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 4 93

С помощью метода наименьших квадратов определим числа 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.

4.2 Определить среднеквадратическое отклонение для результата преды-

дущей задачи.

Решение. Для каждого момента времени определим невязку по формуле

δi = x(ti) − xi, i = 0, 1, . . . , 3 (x(ti) — зависимость, полученная методом

наименьших квадратов; xi — значение координаты из таблицы):

t 0 1 2 3

x 2 7,1 13,9 23,2

δ 0,04 −0,12 0,12 −0,14

Вычислим среднеквадратическое отклонение√1

4(δ20 + δ21 + δ22 + δ23) =

√1

4(0, 042 + 0,122 + 0,122 + 0,142) ≈ 0,11.

Page 94: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 4 94

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.

Решение. Метод неопределённых коэффициентов даёт результат, анало-

гичный разложению 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

(выбор именно этих многочленов обусловлен удобством дальнейших рас-

чётов).

Page 95: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 4 95

Несложно показать, что, если подобрать числа ck таким образом, чтобы

z′′1 =3∑

k=0

zkck было точным равенством (для выбранных четырёх многочле-

нов z), то это будет значение ck(x) для многочлена Лагранжа в точке

x = x1.

Найдём производные:z 1 x− x0 (x− x0)2 (x− x0)3z′′ 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,

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),

Page 96: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 5 96

где порядок 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)44!

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)44!

yIV(x1) +O((x2 − x1)5),

В более компактной записи:

y0 = y1 − hy′1 + h2y′′1/2− h3y′′′1 /6 + h4yIV1 /24 +O(h5),

y2 = y1 + hy′1 + h2y′′1/2 + h3y′′′1 /6 + h4yIV1 /24 +O(h5).

Подставим полученные значения в формулу для численной производной:

1

h2(y0 − 2y1 + y2) =

1

h2

[h2y′′1 +

h4

12yIV1 +O(h5)

]= y′′1 +

h2

12yIV1 +O(h3)︸ ︷︷ ︸

O(h2)

.

Так как четвёртая производная в общем случае отлична от нуля, то поря-

док погрешности равен 2.

2.5 Занятие 5

2.5.1 Численное дифференцирование (продолжение)

5.1 Найти оптимальное значение шага при вычислении (√x)′|x=105 на

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

формуле центральной разности с машинной точностью. Определить с ка-

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

Page 97: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 5 97

Решение. Из-за округления чисел в мантиссе любые вычисления на ком-

пьютере ограничены машинной точностью δ. Формула средней разност-

ной производной с шагом 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),

где M3 = max[x−h,x+h]

|y′′′(x)|.Минимизируем ошибку Φ(h):

hopt : Φ′(x) =2M3h

3− δ

h2= 0 ⇒ hopt = 3

√3δ

2M3

Найдем производные для нашей задачи:

y′ =1

2√x, y′′ = − 1

4x√x, y′′′ =

3

8x2√x.

Величина производной имеет порядок ∼ 10−2. Это легко получить, если

рассмотреть близкую к x = 105 точку x = 100, в которой y′(100) = 12·10 =

0,05. Будем считать, что при использовании чисел с плавающей точкой

двойной точности машинная погрешность составляет 16 десятичных раз-

рядов. Из представления

y′(105) = 0,0xx . . . . . . . . . x︸ ︷︷ ︸16 десят. разр.

| xx . . . . . . . . . . . .︸ ︷︷ ︸не поместилосьв мантиссе

Page 98: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 5 98

машинная точность в нашей задаче составит δ = ±10−17.

y′′′(x) монотонно убывает при x > 0. Следовательно в качестве верхней

оценки M3 = max[105−h,105+h]

y′′′(x) можно взять легко вычисляемое значение

y′′′(100) = 38·105 = 3,75 · 10−7.

hopt = 3

√3

2· 10−17

3,75 · 10−7=

3√

40 · 10−12 ≈ 2 · 10−4.

Φ(hopt) ≈3,75 · 10−7 · (2 · 10−4)2

3+

10−17

2 · 10−4= 5 · 10−15 + 5 · 10−14 ∼

∼ 10−14 � 10−17 = δ.

5.2 Методом Рунге уточнить правую разностную производную и полу-

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

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,

Page 99: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 5 99

|ψ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 = 19

3 h6.

5.5 Вычислить интеграл1∫0

exp(x2) dx по формуле Ньютона–Котеса с

узлами 0, 1/4, 1/2, 3/4, 1 и оценить погрешность.

Решение. Задано 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.

Page 100: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 5 100

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)(14 − 12)(14 − 3

4)(14 − 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)(12 − 14)(12 − 3

4)(12 − 1)=

=

1∫0

[x4 − 2x3 + 1916x

2 − 316x] dx

164

=2

15≈ 0,133.

Так как узлы равноотстоящие, то 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. Оценим

Page 101: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 5 101

погрешность сверху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:

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.

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 102: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 6 102

Отсюда 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.

Решение. По условию погрешность |Ψ| = |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.

Page 103: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 6 103

6.2 Предложить способ вычисления интеграла∫10

lnx1+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.∫ 10

lnx

1 + x2dx =

∫ 10

(1 + x2 − x2) lnx

1 + x2dx =

∫ 10

lnx dx−∫ 10

x2 lnx

1 + x2dx

Первый интеграл вычисляется явно∫ 10

lnx dx = x lnx|10 −∫ 10x

1

xdx = −1.

Второй интеграл уже не является несобственным, следовательно, для его

вычисления применима, например, составная формула Симпсона.

6.3 Построить квадратурную формулу для вычисления интеграла∫∞1

f(x)1+x2dx,

где |f(x)| 6 B = const с заданной точностью ε.

Решение. Интеграл является несобственным так как верхний предел ра-

вен ∞. Разобьём его на две части∫∞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 = ε.

Page 104: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 6 104

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||∞.Покажем, что эта оценка достигается. Пусть максимум по i имеет ме-

сто при i = k. Тогда для x = (sign(ak1), sign(ak2), . . . , sign(akn))> имеем

||x||∞ = 1 и точные равенства по всей цепочке выше. Таким образом,

||A||∞ = maxi

(∑nj=1 |aij|

).

Аналогично показывается, что ||A||1 = maxj (∑n

i=1 |aij|).По определению

||A||2 = supx 6=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) = (∑n

i=1 λiciqi,∑n

i=1 ciqi) =∑n

i=1 λic2i .

Page 105: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 6 105

Отсюда (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.

||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.

Page 106: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 7 106

Из уравнения |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, и вычислим её число обусловленности.

Для этого построим в явном виде обратную матрицу.

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))

Page 107: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 7 107

а)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−12h

+ yk = kh+ 1, y0 = 0, y1 = 0.

Каков порядок аппроксимации у данной схемы? Можно ли его улучшить?

7.3 Для задачи y′ + 5y = 5, y(0) = 2 построена разностная схема

yk+1 − yk−12h

+ 5yk = 5, y0 = 2, y1 = 2− 5h.

Исследовать её аппроксимацию.

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 будет численным решением краевой

задачи.

Page 108: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 7 108

Погрешность аппроксимации должна по условию задачи иметь порядок

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.

Вычитая из последнего равенства исходное дифференциальное уравнение,

получаем невязку ψ(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.

Page 109: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Занятие 7 109

Невязка для правого граничного условия равна 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−1h

+ h2 [cos(3) + 1− yn]− 3yn = 1.

Page 110: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Глава 3

Лабораторный практикум

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

При построении математической модели и получении результата, на ошиб-

ку полученного ответа влияют несколько факторов:

1. Ошибка математической модели — ошибка неучтенных парамет-

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

лом к горизонту с малыми скоростями можно описывать обычными

баллистическими уравнениями без учёта сопротивления воздуха. Как

только скорости становятся значительными нужно вводить сопротив-

ление воздуха. Далее следуют: учёт плотности, температуры воздуха,

ветра, переменного ускорения свободного падения, вращения Земли

и т.д. Построение адекватной математической модели описывается в

курсе математического моделирования.

2. Ошибка входных данных — это ошибка измерений параметров физи-

ческой модели. Во многих физических и технических задачах данная

погрешность достигает нескольких процентов. Она приводит к так

называемой неустранимой погрешности, которая не управляется ма-

тематически и, зачастую, приводит к парадоксальным результатам.

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

ры заменяются приближёнными. Например, интеграл – суммой, диф-

ференцирование – конечной разностью, функцию – полиномом, бес-

конечный ряд – конечной суммой элементов. Погрешность численного

110

Page 111: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

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

метода обычно берут в 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 112: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

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

величине).

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 (проверьте). Получается парадоксальная ситуация: давайте при-

бавим к 1 малое число 10ˆ-16, но последовательно 10ˆ17 раз1(такие

вычисления характерны для задач ЧМ — вычисление рядов, разнообраз-

ные итерационные, разностные задачи...). Легко найти ответ 11, однако,

машинная арифметика даёт 1 — ошибка 1000%! Если бы мы начали с

конца, т.е. сначала нашли сумму малых, а затем прибавили к единице,

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

общем случае, не коммутативно.

3k Знание этих фактов позволяет протестировать компьютер на по-

грешность вычислении. Найдем значение выражения 1+ε−1ε при ε = 2−n,

n = 0, 1, 2, . . .. С точки зрения аналитической математики значение этого

выражения постоянно и равно единице для любых n. Сделайте предпо-1Цикл из 1017 итераций на компьютерах невысокой производительности может вы-

числяться долго. Чтобы убедиться в округлении мантиссы достаточно меньшего ко-личества итераций, например 106. Прервать длительные вычисления в MATLAB можноклавишами Ctrl+Break.

Page 113: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

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

ложения, при каком значении 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)!). По признаку Лейбница погреш-

ность вычисления сходящегося знакопеременного ряда не превышает по

абсолютной величине первого из отброшенных членов. Вычисления чле-

нов ряда проводите до вычисления члена по модулю не превышающего

10−17. Вычислите значение синуса в точках 0, π3 ,π2 , π, 2π, убедитесь, что

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 114: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

ЛР 2. Методы дихотомии, Ньютона, простых итераций. 114

полученные значения с высокой степенью точности совпадают с действи-

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

точках 12π, 13π, 14π, выводя результаты по шагам (посчитанный член и

частичную сумму ряда). Полученные результаты объясняются погрешно-

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

к отрезку [0; π2 ].

3.2 ЛР 2. Методы дихотомии, Ньютона, простых итераций.

Решение данных уравнений подразумевает два этапа:

1. Локализация корней — выделение отрезков, на которых находится не

более одного корня.

2. Поиск корня с заданной точностью.

В качестве функции f(x) рассмотрим полином: f(x) = x3 − 3x2 − 9x− 5.

Известно, что корни полинома Pn(x) =∑n

k=0 akxk (в общем случае ком-

плексные) лежат внутри круга |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 115: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

ЛР 2. Методы дихотомии, Ньютона, простых итераций. 115

4kДля кратного корня использовать модифицированный метод Ньюто-

на. Выведите на экран число итераций.

3k Найдем методом простых итераций корни уравнения x2 − a = 0

(квадратный корень из числа a). Приведем уравнение к виду, удобному

для использования метода: x = 12

(ax + x

). Можно убедиться, что правая

часть уравнения удовлетворяет условию сходимости метода (в отличие от

таких представлений как: x = x2 + x − a, x = ax). Напишите программу

вычисления квадратного корня с машинной точностью.

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 116: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

ЛР 3. Интерполяция функций. Полиномы Лагранжа, Ньютона. 116

3. Почему с помощью метода половинного деления не удаётся находить

корни двойной кратности?

4. Сравните (перечислите преимущества и недостатки) методов Ньютона

и половинного деления.

5. Назовите условия применимости метода Ньютона.

6. Оцените скорость сходимости в методе Ньютона при поиске корней

одинарной и двойной кратности.

7. Назовите условия сходимости метода простых итераций.

8. Каким образом можно априорно вычислить примерное количество

итераций, требуемых для нахождения корня с заданной точностью,

для всех изученных методов?

3.3 ЛР 3. Интерполяция функций. Полиномы Лагранжа, Ньюто-на.

Пусть есть прибор, который в дискретные моменты времени выдаёт сиг-

нал по закону f(t) = sinπt. Допустим, наблюдатель зарегистрировал пять

отсчётов в моменты времени ti = i4 , i = 0, 1, 2, 3, 4. Задачей наблюдателя

(который не знает закона выдачи сигнала) является получение прибли-

жённого значения функции на отрезке [0, 1] в любой момент времени.

3k Используя линейную интерполяцию, найдите значения функции в

точках: x = 0, 16 ,13 ,

12 и сравните с реальным значением синуса в этих

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

заданных точек. Отметьте, насколько сильно они различаются в разных

частях графика. Чем это обусловлено?

3k Постройте по заданным пяти точкам интерполяционный многочлен

Лагранжа или Ньютона и, используя его, найдите значения функции в

точках x = 0, 16 ,13 ,

12 , Сравните результаты со значениями, полученными

при линейной интерполяции, и значениями синуса в этих точках. По-

стройте графики синуса и интерполяционного многочлена. Какую макси-

Page 117: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

ЛР 3. Интерполяция функций. Полиномы Лагранжа, Ньютона. 117

мальную ошибку мы допускаем при аппроксимации синуса данным поли-

номом? Сравните экспериментальную погрешность с теоретической.

4kВ программе сделать возможность строить многочлен Лагранжа или

Ньютона для произвольного набора точек x = x0, x1, . . . , xn.

5kПри вычислении многочлена стараться заменить циклы матричными

операциями (см. первое практическое занятие).

3k Найдите значение интерполяционного полинома при t = 2. Почему

оно так сильно отличается от значения синуса в этой точке?

4k Задайте функцию Рунге f(x) = 11+25x2 на отрезке [−5, 5] в десяти

равноотстоящих точках. Сравните значения функции и интерполяционно-

го полинома при x = 4, 5. Постройте графики функции и полинома на

заданном отрезке и объясните поведение интерполяционного полинома.

Посмотрите, что будет происходить при постепенном увеличении числа

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

ся эффекта.

6kДля приближения функции Рунге используйте Чебышёвские узлы.

Постройте графики функции и многочлена.

Реализация функциями MATLAB. Для одномерной интерполяции в MAT-

LAB есть функция interp1. Изучите её и постройте графики интерполи-

рованных функций из примеров, рассмотренных выше.

Контрольные вопросы

1. Системами каких функций можно приближать заданную таблично

функцию? Из каких соображений выбирается эта система? Приведите

примеры.

2. Чем различается построение интерполяционных полиномов Лагранжа

и Ньютона?

3. Сколько полиномов и какой степени можно провести через n точек?

Page 118: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

ЛР 4. Дифференцирование функции, заданной таблично. 118

4. Пусть таблично заданно достаточное количество точек некоторой сте-

пенной функции. Возможно ли и как восстановить коэффициенты это-

го многочлена?

5. Каким образом за счёт выбора узлов можно добиться уменьшения

ошибки интерполяции?

6. Выпишите формулы для оценки погрешности интерполяции в точке и

на отрезке.

7. Что называется кусочной интерполяцией и каковы критерии её при-

менимости?

8. Каким образом следует поступить, если ставится не прямая, а обрат-

ная задача: требуется найти значение x, при котором f(x) принимает

заданное значение?

3.4 ЛР 4. Дифференцирование функции, заданной таблично.

Новый вариант лабы (05 апреля 2016 года) 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). С какими скоростями убыва-

ют погрешности для каждой формулы? Дайте теоретическую оценку и3В данном задании лучше использовать формулу y′(x) ≈ f(x)−f(x−h)

hили формулу

y′(x) ≈ f(x+h)−f(x−h)2h

. Погрешность для этих формул легко получить из разложенияf(x± h) в ряд Тейлора в окрестности точки x.

Page 119: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

ЛР 4. Дифференцирование функции, заданной таблично. 119

подтвердите ответ экспериментом4.

5k Выберите некоторую функцию (например, sinx, cosx, expx, shx,

chx, lnx, . . . ) и некоторую точку x из области определения функции.

Попробуйте применить формулу y′(x) ≈ y(x+h)−y(x)h для стремящейся к

нулю последовательности h = 12 ,

14 ,

18 ,

116 , . . .). Будет ли погрешность ε =∣∣∣y′(x)− y(x+h)−y(x)

h

∣∣∣ монотонно убывать при уменьшении h? Сравните прак-тический и теоретический результаты.

Старый вариант лабы 3k Таблично задайте значения функции f(x) =

sinx на отрезке [0, π] в 10 равноотстоящих точках. Далее, используя толь-

ко эти величины, будет искаться численная производная. Используя ин-

терполяцию, найдите коэффициенты полинома, проходящего через эти

точки. Воспользовавшись функцией MATLAB polyder, вычислите коэф-

фициенты полинома, получающегося при дифференцировании данного.

3k Найдите численные производные функции в точках x = 0, π6 ,π4 ,

π3 ,

π2 и

сравните их с точным аналитическим значением производной. Постройте

графики значений численного и аналитического решения на отрезке [0, π].

Какую практическую ошибку мы допускаем, аппроксимируя производную

данным полиномом5?

5kНайдите значение производной в точке π5 с точностью 10−3, 10−6. Поль-

зоваться значением cos π5 в качестве эталона запрещено

6.

4Напомним, что y′(x) = y(x+h)−y(x)h

+ O(h1) и формула имеет первый порядок по-грешности; y′(x) = y(x+h)−y(x−h)

2h+O(h2) и формула имеет второй порядок погрешности.

5 Формулы численного дифференцирования тесно связаны с производной много-члена Лагранжа. Однако для оценки погрешности численной формулы неудобно оце-нивать производную погрешности многочлена Лагранжа Rn(x). Например, в случаепроизводной первого порядка

R′n(x) =1

(n+ 1)!

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

].

Присутствие производной неизвестной нам функции ξ(x) мешает оценить R′n(x).6В данном задании лучше использовать формулу y′(x) ≈ f(x)−f(x−h)

hили формулу

y′(x) ≈ f(x+h)−f(x−h)2h

. Погрешность для этих формул легко получить из разложенияf(x± h) в ряд Тейлора в окрестности точки x.

Page 120: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

ЛР 5. Интегрирование функций. Формулы трапеций, Симпсона. 120

Реализация функциями MATLAB.

р = polyfit(x,y,n) — вычисление коэффициентов полинома наилуч-

шего (среднеквадратического) приближения степени n.

k = polyder(p) — получение коэффициентов k полинома, получаю-

щегося при дифференцировании полинома, заданного коэффициента-

ми p.

у = polyval(p,x) — вычисление значения полинома с коэффициен-

тами p в точках x.

Контрольные вопросы

1. Как теоретически узнать погрешность формулы численного диффе-

ренцирования? Как узнать порядок погрешности?

2. Какие есть способы получения формул численного дифференцирова-

ния?

3. Какие есть способы практической (при вычислении на компьютере)

оценки погрешности численного дифференцирования?

4. Являются ли формулы численного дифференцирования устойчивыми

к погрешностям входных данных? Ответ обоснуйте.

5. Опишите, как имея в распоряжении формулу для численного диффе-

ренцирования с порядком точности p, получить формулу с большим

порядком точности (метод Рунге).

3.5 ЛР 5. Интегрирование функций. Формулы трапеций, Симп-сона.

3k Задайте функцию f(x) = x3 на отрезке [0, 1]. Очевидно, определённый

интеграл от функции f(x) на этом отрезке равен 14 . Напишите програм-

му, вычисляющую значение интеграла по формулам трапеций и Симпсо-

на. Какую максимальную теоретическую ошибку мы при этом допускаем?

Page 121: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

ЛР 5. Интегрирование функций. Формулы трапеций, Симпсона. 121

Найдите реальное значение погрешности (абсолютное значение разности

между теоретическим и аналитическим решением). Почему при вычисле-

нии интеграла по формуле Симпсона от данной функции ошибка равна

нулю? Какие бы получились значения погрешностей для квадратичной и

линейной функций (предположите и проведите численный эксперимент

для f2(x) = x2, f1(x) = x/2 на отрезке [0, 1]).

4kИспользуя соотношение∫10

11+x2dx = arctg(1) найдите значение числа

π с точностью 10−6. В данном задании в процессе вычислений нельзя ис-

пользовать встроенную константу pi для определения величины шага. Из

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

5k В предыдущем задании при численном вычислении интегралов по-

следовательно с шагами h и h/2 можно сократить число арифметических

операций. Заметим, что приближённое значение интеграла Ih/2 есть сум-

ма, часть слагаемых которой можно уже участвовало при вычислении Ih.

Поэтому можно получить Ih/2, модифицируя Ih. Это позволяет избежать

повторного суммирования части слагаемых.

Реализация функциями MATLAB. q = quad(fun,a,b) — вычисле-

ние интеграла от функции fun (встроенной или описанной файл-функцией)

на отрезке [a, b]. Алгоритм основан на квадратурной формуле Симпсона с

автоматическим подбором шага.

Контрольные вопросы

1. В каких случаях имеет смысл использовать неравномерное распре-

деление узлов? Каким образом алгоритмически можно реализовать

автоматический подбор шага?

2. Какая ошибка допускается, если подынтегральная функция заменя-

ется интерполяционным полиномом, а затем производится аналитиче-

ское вычисление интеграла?

3. Какой метод — прямоугольников (с выбором центральной точки) или

трапеций — даёт в общем случае меньшую ошибку?

Page 122: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

ЛР 6. Решение систем линейных уравнений. 122

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] к диаго-

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

кет содержит операцию левого матричного деления, с помощью которой

очень просто найти решение: X = A\f. Более того, эта операция поз-

воляет решать недоопределённые и переопределённые системы линейных

уравнений, выбирая алгоритм решения в зависимости от вида матрицы A.

3kЗадайте случайным образом матрицу A размерности 20×20 и вектор

X. Определите число обусловленности матрицы A с помощью функции

cond. Изменяя значения некоторых элементов матрицы A, добейтесь, что-

бы её число обусловленности стало больше 103. Используя A и X, най-

дите вектор f = AX. Полагая вектор X неизвестным, решите систему

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

найденные решения с уже известным. Какой из методов дал более точный

результат? Обратите внимание на решения, полученные обычным методом

Гаусса и методом с выбором главного элемента.

Реализация функциями MATLAB.

Page 123: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

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

\ — операция левого матричного деления

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),

где 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) = η

Page 124: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

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

и пусть данная задача Коши поставлена корректно. Будем искать числен-

ное решение уравнения на отрезке [x0, X]. Введем на этом отрезке сетку

ωh = {xi, i = 0, 1, . . . , N}, таким образом, чтобы x0 < x1 < . . . < xN = X.

Обозначим hi = xi+1 − xi, i = 0, 1, . . . , N − 1 шаг сетки. Заменив произ-

водную в уравнении правой разностью, получимyi+1 − yi

hi= 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)), что предполагает малый шаг сетки для получения удовлетво-

рительного решения.

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.

Page 125: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

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

function t e s t ode :

Y0 = [ 1 ; 0 ] ; % вектор начальных условий

[T Y] = ode45 ( ’ o s c i l ’ , [0 15] ,Y0 ) ; % получение решения

% на отрезке 0<t <15

function F=o s c i l ( t , y ) % составляем функцию

F=[y ( 2 ) ; −2∗y(2)−10∗y(1)+ s in ( 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.

5k Решите следующее дифференциальное уравнение:{y′′ = − 1

t2 ,

y(t0) = ln t0, при t0 = 0, 01

и сверьте численное решение с аналитическим y = ln t.

Реализация функциями MATLAB. ode45, ode23, ode113, ode15s,

ode23s, ode23t, ode23tb.

Page 126: ЯРОШЕВИЧВ.А.1_23).pdf · 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. Решение системы линейных уравнений методом вращений

126

Page 127: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Определитель Вандермонда 127

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 x22 · · · x2n... ... . . . ...

xn−11 xn−12 · · · xn−1n

∣∣∣∣∣∣∣∣∣∣∣∣∣.

Page 128: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Определитель Вандермонда 128

Вычитая первый столбец из всех последующих и разложив полученный

определитель по первой строке имеем:

∆(x1, x2, . . . , xn) =

∣∣∣∣∣∣∣∣∣∣∣∣∣

1 0 · · · 0

x1 x2 − x1 · · · xn − x1x21 x22 − x21 · · · x2n − x21... ... . . . ...

xn−11 xn−12 − xn−11 · · · xn−1n − xn−11

∣∣∣∣∣∣∣∣∣∣∣∣∣=

=

∣∣∣∣∣∣∣∣∣∣x2 − x1 x3 − x1 · · · xn − x1x22 − x21 x23 − x21 · · · x2n − x21

... ... . . . ...

xn−12 − xn−11 xn−13 − xn−11 · · · xn−1n − xn−11

∣∣∣∣∣∣∣∣∣∣.

Теперь вычтем из каждой строки предыдущую, умноженную на x1:

∆(x1, x2, . . . , xn) =

=

∣∣∣∣∣∣∣∣∣∣x2 − x1 x3 − x1 · · · xn − x1

x2(x2 − x1) x3(x3 − x1) · · · xn(xn − x1)... ... . . . ...

xn−22 (x2 − x1) xn−23 (x3 − x1) · · · xn−2n (xn − x1)

∣∣∣∣∣∣∣∣∣∣.

Вынесем из каждого столбца общий множитель:

∆(x1, x2, . . . , xn) = (x2−x1)(x3−x1) . . . (xn−x1)

∣∣∣∣∣∣∣∣∣∣1 1 · · · 1

x2 x3 · · · xn... ... . . . ...

xn−22 xn−23 · · · 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 129: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Модифицированный метод Ньютона 129

Продолжив вычисления получим:

∆(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−θ)nn! 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 130: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Модифицированный метод Ньютона 130

Пусть уравнение 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∗)22!

+ . . .+

+ 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 131: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Модифицированный метод Ньютона 131

Вспомним, что 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∗)22!

+ . . .+

+ 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 132: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Модифицированный метод Ньютона 132

Обозначим погрешность приближения |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· ε2n.

Page 133: ЯРОШЕВИЧВ.А.1_23).pdf · 1.1 Лекция1 ïîãðåøíîñòü. ìàò äåëüìî èçìåðåíèÿ ÷èñëåííûé äìåòî ñòîé÷èâûéó ñòîé÷èâûéíåó

Литература

[1] КосаревВ.И. 12 лекций по вычислительной математике (вводный

курс) // М.: Издательство МФТИ, 2000.

[2] ТурчакЛ.И., ПлотниковП.В. Основы численных методов. Учебное

пособие. // М.: Физматлит, 2005

[3] БахваловН.С., ЛапинА.В., ЧижонковЕ. В. Численные методы в за-

дачах и упражнениях // М.: Бином, 2010.

[4] КалиткинН.Н. Численные методы // М.: Наука, 1978.

[5] СамарскийА.А., ГулинА.В. Численные методы // М.: Наука, 1989.

133