Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы научных вычислений. Введение в численные методы для физиков и инженеров

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
В. Е. Зализняк
ОСНОВЫ НАУЧНЫХ
ВЫЧИСЛЕНИЙ
Введение в численные методы
для физиков и инженеров
Красноярский государственный педагогический университет
имени В. П. Астафьева
МоскваИжевск
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.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
,
1k
,
p
(1 bk).
Эти параметры имеют следующие значения: ε машинное число, ε
— минимальное машинное число и ε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|∈(00),тогдаxmможет принимать одно из
m
, и понятно, что в обоих случаях |x xm| ε0|x|.
0
также называют абсолютной ошибкой определения
0
выбирается ближай-
m
m
нуля. Эти оценки можно объединить в следующее выражение:
.
x
= x(1 + α)+β, |  ε1, |β| ε0, (0.2)
m
которое справедливо для всех x [ε
∞,ε∞
].
На компьютерах арифметические операции выполняются над ма­шинными числами. Во многих случаях результат этих операций может не быть машинным числом, или, другими словами, результат арифме­тической операции (машинный результат), будучи машинным числом, может не совпадать с точным результатом. Например, для точного пред­ставления частного двух машинных чисел a и b часто требуется бес-
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]