Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы научных вычислений. Введение в численные методы для физиков и инженеров
.pdf
В. Е. Зализняк
ОСНОВЫ НАУЧНЫХ
ВЫЧИСЛЕНИЙ
Введение в численные методы
для физиков и инженеров
Красноярский государственный педагогический университет
имени В. П. Астафьева
МоскваИжевск
2019

УДК 519 . 6
ББК (В) 22.19, (В) 22.193
Интернет-магазин
• физика
• математика
• биология
• нефтегазовые
http://shop.rcd.ru
технологии
Зализняк В. Е.
Основы научных вычислений. Введение в численные методы для физиков и инженеров. — Москва–Ижевск: НИЦ «Регулярная и хаотическая
динамика»; Институт компьютерных исследований, 2019. — 264 с.
Книга предназначена для использования в курсе численных методов. В ней
рассматриваются такие вопросы как решение уравнений, вычисление собственных значений и интегралов, интерполяция и аппроксимация функций, а также
численное решение задачи Коши и краевой задачи для обыкновенных дифференциальных уравнений. Книга содержит множество примеров, демонстрирующих
применение рассматриваемых методов. В дополнение, приводится разнообразный
справочный материал и краткий обзор библиотек программ, широко используемых в научных вычислениях.
Для студентов естественно-научных и технических специальностей высших
учебных заведений.
ISBN 978-5-4344-0764-9
c
Зализняк В. Е., 2019
c
НИЦ «Регулярная и хаотическая динамика», 2019
http://shop.rcd.ru
http://ics.org.ru
ББК (В) 22.19, (В) 22.193

Посвящается Илье и Лилиане

Оглавление
Предисловие .............................. 7
В
ВЕДЕНИЕ . Возникновение ошибок вычислений при выполнении
арифметических операций на компьютере .......... 8
Г
ЛАВА 1. Решение уравнения f (x)=0 ............... 13
1.1. Методделенияотрезкапополам............... 15
1.2. Вычисление корней с использованием итерационных функ-
ций ............................... 15
1.2.1. Одноточечныйитерационныйпроцесс ........ 21
1.2.2. Многоточечный итерационный процесс . . . . . . . 28
1.2.3. Одноточечный итерационный процесс с памятью . . 29
1.3. Заключительныезамечания.................. 31
Г
ЛАВА 2. Решение систем линейных уравнений ......... 33
2.1. Необходимые сведения из линейной алгебры . . . . . . . . 34
2.2. Системылинейныхуравнений ................ 37
2.3. Типы матриц, часто встречающиеся при решении задач . 38
2.4. Источникиошибок....................... 41
2.5. Числообусловленности .................... 42
2.6. Прямыеметоды......................... 44
2.6.1. Основныепринципыпрямыхметодов ........ 45
2.6.2. Оценка ошибки приближенного решения . . . . . . 48
2.6.3.Заключительныезамечания.............. 48
2.7. Итерационныеметоды..................... 49
2.7.1. Основные принципы итерационных методов . . . . 49
2.7.2. МетодЯкоби ...................... 52
2.7.3. МетодГаусса–Зейделя................. 54
2.7.4. Методрелаксации ................... 56
2.7.5. Вариационно-итерационные методы . . . . . . . . . 61
2.8. Какие методы более эффективны: прямые или итерацион-
ные? ............................... 66

Оглавление 5
ГЛАВА 3. Вычисление собственных значений и векторов .... 67
3.1. Основные сведения из линейной алгебры, относящиеся к
задаченасобственноезначение ............... 68
3.2. Локализациясобственныхзначений............. 69
3.3. Степеннойметод........................ 70
3.4. Методобратнойитерации................... 73
3.5. Итерациисосдвигомначала ................. 75
3.6. Применение ортогональных преобразований (QR-метод) . 78
3.7. Заключительныезамечания.................. 81
Г
ЛАВА 4. Решение систем нелинейных уравнений ........ 82
4.1. Методпростойитерации ................... 83
4.2. МетодНьютона ........................ 89
4.3. Методскубическойсходимостью .............. 93
4.4. МодификацииметодаНьютона................ 95
4.5. ПовышениенадёжностиметодаНьютона.......... 97
ЛАВА 5. Численное интегрирование ............... 101
Г
5.1. Простейшиеквадратурныеформулы............. 102
5.2. Вычисление интегралов с заданной точностью . . . . . . . 108
5.3. ФормулыГаусса–Кристоффеля................ 113
5.4. Несобственныеинтегралы .................. 119
5.4.1. Бесконечныепределыинтегрирования........ 119
5.4.2. Подынтегральная функция имеет особенность . . . 120
5.5. Многомерноеинтегрирование ................ 121
Г
ЛАВА 6. Введение в конечно-разностные схемы для обыкновен-
ных дифференциальных уравнений .............. 132
6.1. Простейший пример конечно-разностной схемы . . . . . . 133
6.2. Определения аппроксимации и устойчивости . . . . . . . . 135
6.2.1. Аппроксимация дифференциального уравнения раз-
ностнойсхемой..................... 136
6.2.2. Замена производных разностными отношениями . . 141
6.2.3. Определение устойчивости разностной схемы . . . 144
6.2.4. Сходимость как следствие аппроксимации и устой-
чивости ......................... 145
6.3. ЧисленноерешениезадачиКоши .............. 146
6.3.1. Необходимое условие устойчивости разностных схем
длялинейныхзадач .................. 148
6.3.2.МетодыРунге–Кутта ................. 152
6.3.3.МетодыАдамса..................... 156

6Оглавление
6.3.4. Исследование устойчивости разностных схем
вслучаенелинейныхзадач.............. 160
6.3.5. Системы дифференциальных уравнений . . . . . . . 162
6.3.6. Методы решения жёстких систем дифференциаль-
ныхуравнений ..................... 167
6.4. Численноерешениекраевыхзадач.............. 171
6.4.1. Методстрельбы .................... 172
6.4.2. Сведение разностной схемы к системе уравнений . 174
6.4.3. Метод последовательных приближений . . . . . . . 178
6.4.4.Методустановления.................. 179
6.4.5. Аппроксимация граничных условий в случае, когда
на границе задано значение производной . . . . . . 183
6.5. Оценка ошибки приближённого решения . . . . . . . . . . 186
Г
ЛАВА 7. Интерполяция и приближение функций ........ 192
7.1. Интерполяция ......................... 192
7.1.1. Интерполяционные полиномы Лагранжа и Ньютона 193
7.1.2. Тригонометрические интерполяционные полиномы . 197
7.1.3. Сплайн-интерполяция .................200
7.1.4. Двумернаяинтерполяция ............... 204
7.2. Приближение функций и представление данных . . . . . . 206
7.2.1. Методнаименьшихквадратов ............ 207
7.2.2. Приближение функции набором ортогональных
функций......................... 211
7.2.3. Использование интерполяционных полиномов
дляприближенияфункций .............. 219
П
РИЛОЖЕНИЕ A. Узлы и веса некоторых квадратурных формул
Гаусса–Кристоффеля ....................... 222
П
РИЛОЖЕНИЕ B. Преобразование некоторых регулярных обла-
стей интегрирования в прямоугольные области ....... 233
П
РИЛОЖЕНИЕ C. Условия устойчивости для некоторых разност-
ных схем Рунге–Кутта, Адамса и предиктор-корректор .. 235
П
РИЛОЖЕНИЕ D. Краткий обзор программного обеспечения .. 236
Литература ............................... 260
Предметный указатель ........................ 262

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

ВВЕДЕНИЕ
Возникновение ошибок вычислений
привыполненииарифметических
операций на компьютере
Компьютерная арифметика отличается от привычной нам арифметики. В традиционной математике числа могут иметь бесконечное число
цифр. В компьютерной арифметике каждое допустимое число имеет конечное число цифр. Входные данные и результаты арифметических операций помещаются в оперативную память компьютера в определённой
форме. Вещественные числа представляются в следующей стандартной
форме (форма с плавающей точкой):
x = ±b
Здесь x — вещественное число, b есть основание системы счисления
(обычно используются основания 2, 8 и 16), c называется характеристикой, m
называется мантиссой (она определяет дробную часть числа),
b
а ± обозначает знак числа x.Мантиссачислаx =0удовлетворяет условию
1
b
что обеспечивает единственность представления (0.1). Любое вещественное число можно представить в форме с плавающей точкой, и это
может быть сделано в любой системе счисления с основанием b>0.Однако некоторые вещественные числа (например, иррациональные) невозможно записать в оперативную память компьютера точно. Все числа,
которые могут быть помещены в оперативную память, представляются там в определённом виде. При этом их характеристики ограничены:
c cp, а мантиссы имеют вид конечных дробей по основанию b:
c
m
a
m
1
=
b
b
c
mb. (0.1)
m
< 1,
b
a
2
+
+ ...+
2
b
a
k
,
k
b

Возникновение ошибок вычислений 9
где коэффициенты anудовлетворяют условиям
1 a
П
РИМЕР 0.1 (ДВОИЧНОЕ ПРЕДСТАВЛЕНИЕ ВЕЩЕСТВЕННОГО ЧИСЛА). Рас-
смотрим вещественное число x =8.75. Представим это число в двоичной
форме (b =2). Сначала мы перепишем число x ввиде0.546875 · 2
b −1, 0 an b −1,n=2,...,k.
1
4
,тогда характеристика c,согласно(0.1),равна4 (100 вдвоичнойформе).
Дробная часть числа представляется в виде
1
1
32
1
+
,
64
k
.
тогда коэффициенты a
a1a2a3a4a5a6a7... a
1 0 0 0 1 1 0 ... 0
0.546875 =
равны
n
+
2
Для простоты, числа, которые могут быть помещены в оперативную память, мы будем называть машинными числами, и они образуют
конечное подмножество множества вещественных чисел. Для описания
машинных чисел мы ввели параметры b, c
и k, но использовать эти
m,cp
параметры на практике не очень удобно. Обычно для описания машинных чисел вводится другой набор параметров: b, ε
и k. Эти парамет-
0,ε1
ры, как и предыдущие, зависят от конкретного компьютера и определяются следующим образом:
cm−1
= b
ε
0
= b
ε
1
ε
c
= b
∞
,
1−k
,
p
(1 −b−k).
Эти параметры имеют следующие значения: ε
машинное число, ε
— минимальное машинное число и ε1есть мини-
0
—максимальное
∞
мальное расстояние между двумя машинными числами на интервале от 1
до b.Параметрε
единицы, так как все числа вида 1+x из интервала [1, 1+ε
машинным числом 1 сошибкой,непревосходящейε
интервалы (−∞, −ε
также называют относительной ошибкой определения
1
), (−ε0, 0), (ε0, 0), (1−ε1/b, 1), (1, 1+ε1) и (ε∞, ∞)
∞
] заменяются
1
.Следовательно,
1
не содержат машинных чисел. Наряду со стандартной точностью, существует возможность более точного представления машинных чисел.

10 Введение
Это можно осуществить, увеличив число цифр в мантиссе и расширив
область допустимых значений характеристик. Тогда машинные числа с
повышенной точностью будут определяться некоторыми параметрами
∗
m
,c
∗
,k∗.
p
b, c
Например, определяющие параметры для PC представлены в Таблице 0.1.
Таблица 0.1.
Одинарная точность Двойная точность
b 2 2
c
m
c
p
−125 −1 021
128 1 024
k 24 53
2
128
−126
2
−23
2
(1 −2
−24
) 2
ε
0
ε
1
ε
∞
1 024
−1 022
2
−52
2
(1 −2
−53
)
Если число x ∈ [− ε∞,ε∞], то оно заменяется машинным числом xm.
В процессе такой замены используется какой-нибудь способ приближения (усечение или округление) и в качестве x
шее к x число. В результате такой замены возникает ошибка x − x
Для ε
|x − x
двух значений: 0 или ε
Поэтому параметр ε
|x| ε∞эта ошибка оценивается величиной ε1|x|,тоесть
0
| ε1|x|.Если|x|∈(0,ε0),тогдаxmможет принимать одно из
m
, и понятно, что в обоих случаях |x −xm| ε0|x|.
0
также называют абсолютной ошибкой определения
0
выбирается ближай-
m
m
нуля. Эти оценки можно объединить в следующее выражение:
.
x
= x(1 + α)+β, |α| ε1, |β| ε0, (0.2)
m
которое справедливо для всех x ∈ [−ε
∞,ε∞
].
На компьютерах арифметические операции выполняются над машинными числами. Во многих случаях результат этих операций может
не быть машинным числом, или, другими словами, результат арифметической операции (машинный результат), будучи машинным числом,
может не совпадать с точным результатом. Например, для точного представления частного двух машинных чисел a и b часто требуется бес-
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
