Министерство образования и науки РФ
ГОУ ВПО “УГТУ-УПИ”
Курсовая работа
по “Вычислительной математике”
на тему: “Некоторые дополнительные вычислительные методы”
Семестр № 3
Преподаватель Кочнев В.П.
Студент гр. № р-23021д Логиновских М.А.
Номер зачетной книжки 17309013
Екатеринбург
2004
_____________________________________________________________________________
Домашнее задание по ________________________________ № ________________
№ записи в книге регистрации __________________ дата регистрации ___________200_г.
Преподаватель _________________________________________
Студент _________________________________________ группа № ________________
Деканат ФДО _______________
СОДЕРЖАНИЕ
1. Решение систем линейных уравнений …………………………………………………… 3
а) Схема Халецкого ……………………………………………………………………....... 3
б) Метод Зейделя и условия сходимости ………………………………………………… 5
2. Методы решения нелинейных уравнений ……………………………………………….. 6
а) Метод хорд ………………………………………………………………………………. 7
б) Метод Ньютона (метод касательных) …………………………………………………. 8
в) Метод итерации ………………………………………………………………………… 9
3. Интерполирование и экстраполирование ……………………………………………….. 11
а) Интерполирование с помощью многочленов ………………………………………… 11
б) Интерполяционный многочлен Лагранжа ……………………………………………. 12
в) Интерполяционные многочлены Стирлинга и Бесселя ……………………………… 13
г) Тригонометрическое интерполирование …………………………………….………... 15 д) Интерполяция сплайнами ……………………………………………………..………... 15
4. Численное дифференцирование и интегрирование ……………………………….…….. 16
а) Постановка задачи численного интегрирования ……………………………………... 16
б) Составные квадратурные формулы ………………………………………………….… 17
5. Приближенное вычисление обыкновенных дифференциальных уравнений ………….. 18
а) Метод Рунге-Кутта ……………………………………………………………………… 18
б) Экстраполяционные методы Адамса ………………………………………………….. 20
в) Метод Милна ……………………………………………………………………………. 20
г) Краевые задачи для обыкновенных дифференциальных уравнений ………………... 21
6. Приближенные методы решения дифференциальных уравнений с частными производными ………………………………………………………………………………… 21
а) Классификация дифференциальных уравнений второго порядка …………………… 22
б) Постановка краевых задач ……………………………………………………………… 23
в) Метод конечных разностей (метод сеток) …………………………………………….. 24
г) Разностные схемы для решения уравнения теплопроводности ……………………… 25
д) Разностные схемы для решения уравнения колебания струны ……………………… 26
7. Список литературы ………………………………………………………………………… 27
1. Решение систем линейных уравнений
Системы линейных уравнений (СЛУ) имеют в вычислениях очень большое значение, так как к ним может быть приведено приближенное решение широкого круга задач. Так, основными источниками возникновения СЛУ являются теория электрических цепей, уравнения балансов и сохранения в механике, гидравлике и т.д. Существует несколько способов решения таких систем, которые в основном делятся на два типа: 1) точные методы
, представляющие собой конечные алгоритмы для вычисления корней системы, 2) итерационные методы
, позволяющие получать корни системы с заданной точностью путем сходящихся бесконечных процессов. Заметим, что даже результаты точных методов являются приближенными из-за неизбежных округлений. Для итерационных процессов также добавляется погрешность метода.
Пример системы линейных уравнений:
Или в матричном виде: ,
где матрица коэффициентов системы;
- вектор неизвестных; - вектор свободных членов.
Схема Халецкого
Запишем систему линейных уравнений в матричном виде: ,
где A=[aij
] – квадратная матрица порядка nи
, - векторы-столбцы.
Представим матрицу Aв виде произведения нижней треугольной матрицы B=[bij
] и верхней треугольной матрицы C=[cij
] с единичной диагональю , где
и .
Тогда элементы bij
и cij
определяются по формулам
и
Отсюда искомый вектор xможет быть вычислен из уравнений и .
Так как матрицы Bи C – треугольные, то системы легко решаются:
и
Из этих двух формул видно, что числа yi
выгодно вычислять вместе с коэффициентами cij
. Этот метод получил название схемы Халецкого
. В схеме применяется обычный контроль с помощью сумм. Если матрица A – симметрическая aij
=aji
, то
Пример. Решить систему
Решение.
В первый раздел таблицы впишем матрицу коэффициентов системы, ее свободные члены и контрольные суммы. Далее так как , то первый столбец из раздела 1 переносится в первый столбец раздела II. Чтобы получить первую строку раздела II, делим все элементы первой строки раздела I на элемент, в нашем случае на 3.
Имеем: ; ; ; ; .
Переходим к заполнению второго столбца раздела II, начиная со второй строки. Пользуясь формулами, определяем : ; ; .
Далее определяя по формулам, заполняем вторую сетку для раздела II:
Затем переходим к третьему столбцу, вычисляя его элементы и по формулам и т.д., пока не будет заполнена вся таблица раздела II. Таким образом, заполнение раздела II происходит способом “елочки”: столбец - строка, столбец - строка и т.д.
В разделе Ш, пользуясь формулами, определяем и .
Текущий контроль осуществляется с помощью столбца ∑, над которым производятся те же действия, что и над столбцом свободных членов.
I | 3 | 1 | -1 | 2 | 6 | 11 | ||||||
I | -5 | 1 | 3 | -4 | -12 | -17 | ||||||
I | 2 | 0 | 1 | 1 | 1 | 3 | ||||||
I | 1 | -5 | 3 | 3 | 3 | -1 | ||||||
II | 3 | 0.333333 | -0.333333 | 2 | 2 | 3.666667 | ||||||
II | -5 | 2.666667 | -0.25 | 0.25 | -0.75 | 0.5 | ||||||
II | 2 | -0.666667 | 2 | -1.25 | -1.75 | -2 | ||||||
II | 1 | -5.333333 | 6 | 2.5 | 3 | 4 | ||||||
III | 2 | 1 | ||||||||||
III | -0.75 | -1 | ||||||||||
III | -1.75 | 2 | ||||||||||
III | 3 | 3 |
Метод Зейделя и условия сходимости
Этот метод представляет собой модификацию метода простой итерации. Его смысл заключается в том, что при вычислении (k+1)-го приближения неизвестной xi
учитываются уже вычисленные ранее (k+1)-е приближения x1,
x2
, ..., xi-1
. Пусть дана приведенная линейная система (i = 1, 2, …n). Выберем произвольно начальные приближения корней , стараясь, чтобы они в какой-то мере соответствовали искомым неизвестным x1
, x2
, x3
, ..., xn
. Предположим, что k-е приближение корней известно, тогда в соответствии с идеей метода будем строить (k+1)–е приближение по следующим формулам:
Обычно процесс Зейделя сходится быстрее, чем метод простой итерации. Бывает, что процесс Зейделя сходится, когда простая итерация расходится и т.п. Правда, бывает и наоборот. Во всяком случае, достаточные условия сходимости для метода простой итерации достаточны и для сходимости метода Зейделя. То есть процесс итерации сходится, если выполнено одно из условий
1) или 2) .
Пример. Методом Зейделя решить систему уравнений
Решение. Приведем эту систему к виду, удобному для итерации,
В качестве нулевых приближений корней возьмем: ; ; .
Применяя процесс Зейделя, последовательно получим:
и т.д.
Результаты вычислений с точностью до четырех знаков помещены в таблице:
0 | 1,2000 | 0,0000 | 0,0000 |
1 | 1,2000 | 1 ,0600 | 0,9480 |
2 | 0,9992 | 1,0054 | 0,9991 |
3 | 0,9996 | 1.0001 | 1,0001 |
4 | 1 ,0000 | 1,0000 | 1,0000 |
5 | 1 ,0000 | 1,0000 | 1,0000 |
Точные значения корней: .
2. Методы решения нелинейных уравнений
Как известно, далеко не всякое уравнение f(x)=0 можно решить точно, т.е. не всегда можно найти число такое что f()≡0. В первую очередь это относится к трансцендентным уравнениям. Кроме того, даже для алгебраических уравнений степени выше четвертой не существуют формулы, выражающей их решения через коэффициенты уравнения при помощи арифметических операций и извлечение корней. Для уравнений третьей и четвертой степени формулы для отыскания корней существуют, но они настолько сложны, что практически не применяются. Поэтому большое значение имеет приближенное вычисление корней уравнения f(x)=0. Для этого существует множество методов некоторые, из которых мы рассмотрим.
Метод хорд
Пусть дано уравнение f(x)=0, где функция f(x) определена и непрерывна на интервале
[a, b] и f(a)f(b)<0. Пусть для определенности f(a)<0 и f(b)>0. Разделим отрезок [a, b] в отношении - f(a):f(b). Это даст нам приближенное значение корня x1
= a + h1
, где
.
Далее этот прием применяем к одному из отрезков [a, x1
] или [x1
, b], на концах которого функция f(x) имеет противоположные знаки. Аналогично находим второе приближение x2
и т.д. Геометрически этот способ эквивалентен замене кривой y = f(x) хордой, проходящей через точки А[a, f(a)] и B[b, f(b)].
f(b)
|
f(a)
|
ξ x3
x2
x1
b=x0
a=x0
x1
x2
b
|
a
f(b)
Действительно, уравнение хорды АВ имеет вид
При х = х1
и y = 0, получим
Полагая, что на отрезке [a, b] вторая производная f''(x) сохраняет постоянный знак, метод хорд сводится к двум различным вариантам.
Из рис. 1 видно, что конец а неподвижен и последовательные приближения: x0
=b;
образуют ограниченную монотонно убывающую последовательность, причем a<ξ<…<xn
+1
<xn
<…<x1
<x0
.
Из рис. 2 видно, что неподвижен конец b и последовательные приближения: x0
=a;
образуют ограниченную монотонно возрастающую последовательность, причем
x0
<x1
<x2
<…<xn
<xn+1
<…<ξ<b.
Таким образом, для вычисления корня уравнения имеем две различные вычислительные формулы. За неподвижный конец выбираем тот конец, для которого знак функции f(x) совпадает со знаком второй производной f''(x).
Пример. Найти положительный корень уравнения с точностью до 0,002.
Решение. Прежде всего отделяем корень. Так как и , то искомый корень лежит в интервале . Полученный интервал велик, поэтому разделим его пополам. Так как то . Последовательно применяя формулы, будем иметь:
Так как и при имеем , то можно принять:
Таким образом, , где . Заметим, что точный корень уравнения есть .
Метод Ньютона (метод касательных)
Пусть корень ξ уравнения f(x)=0, отделен на отрезке [a, b], причем первая и вторая производные f'(x) и f''(x) непрерывны и сохраняют определенные знаки при . Найдя какое-нибудь n-ое приближение корня , мы можем уточнить его по методу Ньютона следующим образом. Пусть ξ=xn
+hn
, где hn
- величина малая. Отсюда по формуле Тейлора получим: f(xn
+ hn
) ≈ f(xn
)+hn
f¢(xn
)=0. Следовательно, . Подставив полученное выражение в формулу ξ=xn
+hn
, найдем следующее значение корня:
Графическое нахождение корня методом Ньютона (рис. 3).
Если в качестве начального приближения выбрать точку х0
=В0
, то процесс быстро сходится. Если же выбрать точку х0
=А, то х1
[a, b], и процесс нахождения корня расходится. Рекомендуется: в качестве х0
выбирать такую точку, где f(x0
)f''(x0
)>0.
Пример. Вычислить методом Ньютона отрицательный корень уравнения
с пятью верными знаками.
Решение. Полагая в левой части уравнение получим . Следовательно, искомый корень находится в интервале . Сузим найденный интервал. Так как то . В этом последнем интервале и .Так как и , то можем принять за начальное приближение . Последовательные приближения вычисляем по следующей схеме:
0 | -11 | 3453 | -5183 | 0,7 |
1 | -10,3 | 134,3 | -4234 | 0,03 |
2 | -10,27 | 37,8 | -4196 | 0,009 |
3 | -10,261 | 0,2 | - | - |
Останавливаясь на , проверяем знак значения . Так как , то, и любое из этих чисел дает искомое приближение.
Метод итерации
Заменим уравнение f(x)=0 эквивалентным x=φ(x). Выберем некоторое начальное приближение x0
и вычислим дальнейшие приближения по формулам x1
= φ(x0
), x2
= φ(x1
), …, xn
= φ(xn
-1
). Если последовательность xn
имеет предел, то итерационный процесс
xn
= φ(xn
-1
) (n=1, 2, …) называется сходящимся. Пусть функция φ(x) непрерывна. Переходя к пределу в равенстве xn
= φ(xn
-1
), получим
Следовательно, является корнем уравнения x=φ(x) и может быть вычислен по формуле xn
= φ(xn
-1
) (n=1, 2, …) с любой точностью. Для данного метода существуют две теоремы:
Теорема 1. Пусть корень уравнения x=φ(x), а также его последовательные приближения x0
, xn
= φ(xn
-1
) (n=1, 2, …) содержатся в интервале [a, b] и на [a, b]. Тогда справедливы утверждения:
итерационный процесс xn
= φ(xn
-1
) сходится к корню уравнения ;
;
.
Следствие 1. Если требуется найти корень с точностью ε, то кончаем итерационный процесс тогда, когда <ε, т.е. когда .
Следствие 2. Так как =φ() и =φ(x
n-1
), то -x
n
= φ()-φ(x
n-1
). По теореме Лагранжа . Из этого следует, что если φ'(x)>0 на (a, b), то последовательные приближения xn
= φ(xn
-1
) (n=1, 2, …) сходятся к корню монотонно; если φ'(x)<0 на (a, b), то последовательные приближения колеблются около корня.
Теорема 2. Если на [a, b], а корень и начальное приближение x0
находятся на более узком отрезке [α, β], где , то справедливы заключения теоремы 1.
Привести уравнение f(x)=0 к виду x=φ(x) таким образом, чтобы получить сходящийся итерационный процесс, можно различными способами. Рассмотрим два из них:
1) уравнение f(x)=0 равносильно при λ≠0 уравнению λf(x)=0 и уравнению x= λf(x)+x. Обозначим λf(x)+x через φ(x), получим x= φ(x). Параметр λ подберем так, чтобы функция φ'(x)= λf'(x)+1 на [a, b] была по модулю меньше единицы.
2) если , то итерационный процесс расходится. Заменим уравнение x=φ(x) эквивалентным ему уравнением x=ψ(x), где ψ(x) – функция, обратная функции φ(x). Так как , то итерационный процесс xn
=ψ(xn
-1
) будет сходящимся.
Пример. Методом итерации найти корень уравнения 5x-8lnx=8 с точностью 0,01.
Решение. Запишем уравнение в виде и построим соответствующие графики:
Уравнение имеет два корня: . За начальные приближения возьмем z0
=0,5 и x0
=3,5. Для уточнения запишем . Здесь
Следовательно, итерационный процесс сходится. Погрешность оценим по формуле , результаты вычислений приведены в таблице:
n | x | 1+lnx | ||
0 1 2 3 4 |
3,5 3,605 3,651 3,672 3,682 |
2,253 2,282 2,295 2,301 |
3,605 3,651 3,672 3,682 |
------ 0,105 0,046 0,021 0,010 |
Так как φ’(z0
)≈3>1, то итерационный процесс расходится. Найдем функцию , обратную функции φ(x). Так как , то итерационный процесс будет сходится. , результаты вычислений приведены в таблице:
n | zn
|
|||
0 1 2 |
0,5 0,503 0,503 |
-0,688 -0,686 ------ |
0,503 0,504 ------ |
------ 0,0015 0,0005 |
3. Интерполирование и экстраполирование
Задача интерполирования состоит в том, чтобы по значениям функции f(x) в нескольких точках отрезка восстановить ее значения в остальных точках данного отрезка. Разумеется, такая постановка задачи допускает сколь угодно много решений. Задача интерполирования возникает, например, в том случае, когда известны результаты измерений yk
= f(xk
) некоторой физической величины f(x) в точках xk
, k = 0, 1,…, n и требуется определить ее значение в других точках. Интерполирование используется также при необходимости сгущения таблиц, когда вычисление значений f(x) по точным формулам трудоемко. Иногда возникает необходимость приближенной замены (аппроксимации) данной функции (обычно заданной таблицей) другими функциями, которые легче вычислить. При обработке эмпирических (экспериментальных) зависимостей, результаты обычно представлены в табличном или графическом виде. Задача заключается в аналитическом представлении искомой функциональной зависимости, то есть в подборе формулы, корректно описывающей экспериментальные данные.
Интерполирование с помощью многочленов
Пусть функциональная зависимость задана таблицей y0 =
f(x0
); …, y1
= f(x1
); …, yn
=
f(xn
). Обычно задача интерполирования формулируется так: найти многочлен P(x) = Pn
(x) степени не выше n, значения которого в точках xi
(i = 0, 1 2,…, n) совпадают со значениями данной функции, то есть P(xi
) = yi
. Геометрически это означает, что нужно найти алгебраическую кривую вида проходящую через заданную систему точек Мi
(xi
, yi
) (см. рис. 4). Многочлен Р(х) называется интерполяционным многочленом. Точки xi
(i = 0, 1, 2,…, n) называются узлами интерполяции.
Для любой непрерывной функции f(x) сформулированная задача имеет единственное решение. Действительно, для отыскания коэффициентов а0
, а1
, а2
,…, аn
получаем систему линейных уравнений определитель которой отличен от нуля, если среди точек xi
(i = 0, 1, 2,…, n) нет совпадающих. Решение системы можно записать различным образом. Однако наиболее употребительна запись интерполяционного многочлена в форме Лагранжа или в форме Ньютона.
Инт
ерполяционный многочлен Лагранжа
Пусть на отрезке [a,b
] некоторая функция f(x
) задана лишь в некоторых точках , т.е. известны ее значения , которые, собирают в таблицу:
x
|
x0
|
x1
|
... | xn
|
f(x)
|
y0
|
y1
|
... | yn
|
Кроме того, пусть задана некоторая точка . Построим по таблице следующий многочлен: .
Этот многочлен называется многочленом Лагранжа
.
Его основные свойства:
1) это - многочлен степени ;
2) , т.е. многочлен Лагранжа имеет в точках те же значения, что и функция ;
3) если фиксировать любое число то окажется выполненным неравенство
где на участке , т.е. число ограничивает производную го порядка функции .
Сказанное означает, что если функция задана своей таблицей и требуется найти значение где-то в промежуточной точке c,
то можно по таблице построить многочлен Лагранжа и его значение в этой точке принять за значение функции. Отыскание промежуточного значения функции называется интерполяцией
; когда это делается с помощью многочлена Лагранжа, то говорят об интерполяционном многочлене Лагранжа
или об интерполяции по Лагранжу.
Пример. Построить интерполяционный многочлен Лагранжа для функции заданной таблицей
x | 1 | 2 | 3 | 5 |
y | 1 | 5 | 14 | 81 |
И найти значение функции при x=4.
Решение. Используя формулу Лагранжа найдем:
После некоторых преобразований получим Тогда f(4)≈L3
(4)=36,5.
Интерполяционные многочлены Стирлинга и Бесселя
Взяв среднее арифметическое первой и второй интерполяционных формул Гаусса
и
, получим формулу Стирлинга
где .
Легко видеть, что при .
Кроме формулы Стирлинга, часто употребляется формула Бесселя. Для вывода этой формулы воспользуемся второй интерполяционной формулой Гаусса
.
Возьмем равностоящих узлов интерполирования с шагом , и пусть — заданные значения функции .
Если выбрать за начальные значения и , то, используя узлы , будем иметь:
.
Примем теперь за начальные значения и и используем узлы . Тогда , причем соответственно индексы всех разностей в правой части предыдущей формулы возрастут на единицу. Заменив в правой части этой формулы на и увеличив индексы всех разностей на 1, получим вспомогательную интерполяционную формулу:
.
Взяв среднее арифметическое формул, после несложных преобразований получим интерполяционную формулу Бесселя
где .
Интерполяционная формула Бесселя, как следует из способа получения ее, представля
Тригонометрическое интерполирование
Пусть функция f
(х
) представлена на некотором отрезке [0, 2p]таблицей значений f
(хi
) в
равноотстоящих узлах хi
=
2p(i-
1)/
(2N+
1), i =
1, 2, ...,2N+
1.
Тогда тригонометрическим интерполирующим многочленом
назовем многочлен степени m
вида:
.
Задача тригонометрической интерполяции состоит в построении тригонометрического полинома, который бы наиболее полно удовлетворял условиям Рm
(хi
)= f
(хi
) для любого i=
1, 2, ..., 2 N+
1.
Можно показать, что решением этой задачи является полином именно того вида, коэффициенты которого вычисляют по следующим формулам:
;
;
.
Интерполяция сплайнами
Пусть отрезок [a, b] разбит на n равных частей [xi
, xi+1
], где xi
=a+ih, i=0, ..., n, xn
=b,
h=(b-a)/n.
Сплайном называется функция, которая вместе с несколькими производными непрерывна на всем заданном отрезке [a, b], а на каждом частичном отрезке [xi
, xi+1
] в отдельности является некоторым алгебраическим многочленом.
Максимальная по всем частичным отрезкам степень многочленов называется степенью сплайна, а разность между степенью сплайна и порядком наивысшей непрерывной на [a,b] производной - дефектом сплайна.
На практике широкое распространение получили сплайны третьей степени, имеющие на [a, b] непрерывную, по крайней мере, первую производную. Эти сплайны называются кубическими и обозначаются S3
(x).
Пусть на отрезке [a, b] в узлах сетки D заданы значения некоторой функции
fi
=f(xi
), i=0, ..., n.
Интерполяционным кубическим сплайном S3
(x) называется сплайн
S3
(x)=аi0
+аi1
(x - xi
)+аi2
(x - xi
)2
+аi3
(x - xi
)3
, xÎ[xi
, xi
+1
], удовлетворяющий условиям
S3
(xi
)=f(xi
), i=0, ..., n.
Данный сплайн на каждом из отрезков [xi
, xi+1
], i=0, ..., n-1 определяется четырьмя коэффициентами, и поэтому для его построения на всем промежутке [a, b] необходимо определить 4n коэффициентов. Для их однозначного определения необходимо задать 4n уравнений.
Условие S3
(xi
)=f(xi
), i=0, ..., n дает 2n уравнений, при этом функция S3
(xi
), удовлетворяющая этим условиям, будет непрерывна во всех внутренних узлах.
Условие непрерывности производных сплайна , r=1,2 во всех внутренних узлах xi
, i=1, ..., n-1 сетки D дает 2(n-1) равенств.
Вместе получается 4N-2 уравнений.
Два дополнительных условия обычно задаются в виде ограничений на значение производных сплайна на концах промежутка [a, b] и называются краевыми условиями.
Наиболее употребительны следующие типы краевых условий:
а) S'
3
(а)=f'(а), S'(b)=f'(b)
;
б) S"
3
(а)=
f"(а),
S"(
b)=
f"(
b)
;
в) ;
г) S'''
3
(x
p
+0
)=S'''
3
(x
p
-0
), р =1,
n-1
.
4. Численное дифференцирование и интегрирование
Если функция f(x) заданна аналитически ее первообразная F(x) является элементарной функцией, то вычисляется по формуле Ньютона-Лейбница: В тех случаях, когда функция f(x) задана аналитически, но ее первообразная не является элементарной функцией или отыскать ее сложно, а также в случае, когда функция f(x) задана графически или таблично, для вычисления применяются приближенные методы.
Постановка задачи численного интегрирования
Задача численного интегрирования функции заключается в вычислении определенного интеграла на основании ряда значений подынтегральной функции. Численное вычисление однократного интеграла называется механической квадратурой
. Обычный прием механической квадратуры состоит в том, что данную функцию f(x) на рассматриваемом отрезке [a, b] заменяют интерполирующей или аппроксимирующей функцией φ(x) простого вида, а затем приближенно полагают: Функция φ(x) должна быть такова, чтобы интеграл вычислялся непосредственно. Если функция f(x) заданна аналитически, то ставится вопрос об оценке погрешности. Пусть для функции y=f(x) известны в n+1 точках x0
, x1
, x2
, …, xn
отрезка [a, b] соответствующие значения f(xi
)=yi
(i=0, 1, 2, …, n). Требуется приближенно найти По заданным значениям yi
построим полином Лагранжа , где
Пn+1
(x)=(x-x0
)(x-x1
)…(x-xn
), причем Ln
(xi
)=yi
(i=0, 1, 2, …, n). Заменяя функцию f(x) полиномом Ln
(x), получим равенство где Rn
[f] – ошибка квадратурной формулы. Отсюда получаем приближенную квадратурную формулу
где (i=0, 1, 2, …, n). Для вычисления Ai
заметим, что
1) коэффициенты Ai
при данном расположении узлов не зависят от выбора функции f(x);
2) для полинома степени nполученная формула – точная, так как тогда Ln
(x)=f(x); следовательно, формула - точная при y=xk
(k=0, 1, 2, …, n), т.е. Rn
[xk
]=0 при k=0, 1, …, n. Полагая y=xk
(k=0, 1, 2, …, n), получим линейную систему из n+1 уравнений - где (k=0, 1, …, n), из которой можно определить коэффициенты A0
, A1
, …, An
.
Составные квадратурные формулы
Приведем ряд простейших квадратурных формул, используемых в практике численного интегрирования функции f(x) на некотором интервале [a, b], разбитого на nравных отрезков точками a0
=a, a1
=a+h, a2
=a+2h, …, an
=a+nh+b, где n=0,1, …, kи Положим f(xn
)=yn
=f(a+nh).
Формула прямоугольников:
Погрешность формулы определяется выражением
где
Формула трапеций:
Погрешность формулы определяется выражением
где
Формула Симпсона: где
Погрешность формулы определяется выражением
где
Если длина интервала [a, b] велика для применения простейших квадратурных формул, то поступают следующим образом:
1) интервал [a, b] разбивают точками xi
, на nинтервалов по некоторому правилу;
2) на каждом частичном интервале [xi
, xi
+1
] применяют простейшую квадратурную формулу, находят приближенное значение интеграла
3) из полученных выражений Qi
составляют (отсюда и название составная формула
) квадратурную формулу для всего интервала [a, b];
4) абсолютную погрешность Rсоставной формулы находят суммированием погрешностей Ri
на каждом частичном интервале.
5. Приближенное вычисление обыкновенных дифференциальных уравнений
Обыкновенным дифференциальным уравнением
называется равенство , в котором - независимая переменная, изменяющаяся в некотором отрезке , а - неизвестная функция от , которую и надо найти. Различают два типа обыкновенных дифференциальных уравнений - уравнения без начальных условий и уравнения с начальными условиями. Уравнения без начальных условий
- это как раз то, что было только что определено. А уравнение с начальными условиями
- это записанное выше уравнение относительно функции , но в котором требуется найти лишь такую функцию , которая удовлетворяет при некотором следующим условиям:
, т.е. в точке функция и ее первые производных принимают наперед заданные значения. В этой ситуации число называется порядком уравнения
.
Метод Рунге-Кутта
Изложим идею метода на примере:
Интегрируя это уравнение в пределах от x до x + h (0 < h <1), получим равенство которое посредством последнего интеграла связывает значения решения рассматриваемого уравнения в двух точках, удаленных друг от друга на расстояние шага h. Для удобства записи данного выражения используем обозначение ∆y=y(x+h)–y(x) и замену переменной интегрирования t=x+ah. Окончательно получим:
Указав эффективный метод приближенного вычисления интеграла в выражении , мы получим при этом одно из правил численного интегрирования уравнения
Постараемся составить линейную комбинацию величин ji
, i = 0, 1, ..., q, которая будет являться аналогом квадратурной суммы и позволит вычислить приближенное значение приращения Dy: где
Метод четвертого порядка для q =
3, имеет вид где
Особо широко известно другое вычислительное правило Рунге-Кутта четвертого порядка точности: где
Метод Рунге-Кутта имеет погрешность четвертого порядка (~
h4
).
Правило Рунге. Если приближенный метод имеет порядок погрешности m, то погрешность можно приближенно оценить по формуле
В формуле O(xi
) – главный член погрешности, и - приближенные решения в точке xi
, найденные с шагом h и 2h соответственно.
Экстраполяционные методы Адамса
Широко распространенным семейством многошаговых методов являются методы Адамса. Простейший из них, получающийся при , совпадает с рассмотренным ранее методом Эйлера первого порядка точности. В практических расчетах чаще всего используется вариант метода Адамса, имеющий четвертый порядок точности и использующий на каждом шаге результаты предыдущих четырех. Именно его и называют обычно методом Адамса. Рассмотрим этот метод.
Пусть найдены значения в четырех последовательных узлах . При этом имеются также вычисленные ранее значения правой части . В качестве интерполяционного многочлена можно взять многочлен Ньютона. В случае постоянного шага конечные разности для правой части в узле имеют вид .
Тогда разностная схема четвертого порядка метода Адамса запишется в виде .
Сравнивая метод Адамса с методом Рунге — Кутта той же точности, отмечаем его экономичность, поскольку он требует вычисления лишь одного значения правой части на каждом шаге. Но метод Адамса неудобен тем, что невозможно начать счет по одному лишь известному значению . Расчет может быть начат лишь с узла . Значения необходимые для вычисления , нужно получить каким-либо другим способом , что существенно усложняет алгоритм. Кроме того, метод Адамса не позволяет изменить шаг в процессе счета; этого недостатка лишены одношаговые методы.
Метод Милна
Пусть на отрезке [a, b] требуется найти численное решение дифференциального уравнения с начальным условием . Разобьем отрезок [a, b] на nравных частей точками , где h=(b-a)/n – шаг интегрирования. Используя начальные данные, находим каким-либо способом последовательные значения искомой функции y(x). Таким образом, становится известным . Приближения и для следующих значений последовательно находятся по формулам Милна
– где .
Абсолютная погрешность значения приближенно равна .
Пример. Дано дифференциальное уравнение y’=y-x, удовлетворяющие начальному условию x0
=0, y(x0
)=1,5. Вычислить с точность до 0,01 значение решения этого уравнения при x=1,5.
Решение. Выберем начальный шаг вычисления. Из условия h4
<0,01 получим h=0,25 Составим таблицу
i |
xi
|
yi
|
y’i
|
|
y'i
|
|
εi
|
0 1 2 3 4 5 6 |
0 0,25 0,50 0,75 1,00 1,25 1,50 |
1,5000 1,8920 2,3243 2,8084 |
1,5000 1,6420 1,8243 2,0584 |
3,3588 3,9947 4,7402 |
2,3588 2,7447 3,2402 |
3,3590 3,9950 4,7406 |
7*10-5
10-5
1,4*10-5
|
Получаем ответ y=(1,5)=4,74.
Краевые задачи для обыкновенных дифференциальных уравнений
На практике приходится часто решать задачи, когда условия задаются при двух значениях независимой переменной (на концах рассматриваемого отрезка). Такие задачи, называемые краевыми, получаются при решении уравнений высших порядков или систем уравнений. Стандартная постановка краевой задачи для обыкновенных дифференциальных уравнений выглядит следующим образом
, а дополнительные условия ставятся более, чем в одной точке отрезка интегрирования уравнений (в этом случае порядок системы не может быть меньше второго): , , .
Общая классификация методов решения краевых задач: существуют точные, приближенные и численные методы.
6. Приближенные методы решения дифференциальных уравнений с частными производными
Кроме обычных дифференциальных уравнений существуют так называемые дифференциальные уравнения с частными производными. Далее они будут рассмотрены более подробно.
Классификация дифференциальных уравнений второго порядка
Рассмотрим уравнение второго порядка , где - функции и . Говорят, что указанное уравнение в области принадлежит гиперболическому типу, если в этой области . Если , то уравнение в области принадлежит параболическому типу. Если , то уравнение принадлежит эллиптическому типу.
Уравнение называется каноническим уравнением гиперболического типа.
Уравнение называется каноническим уравнением параболического типа.
Уравнение называется каноническим уравнением эллиптического типа.
Дифференциальное уравнение называется уравнением характеристик уравнения .
Если последнее уравнение гиперболического типа, то уравнение характеристик имеет два интеграла: т.е. существуют два семейства вещественных характеристик.
С помощью замены переменных , дифференциальное уравнение приводится к каноническому виду: . Для уравнения параболического типа оба семейства характеристик совпадают, т.е. уравнение характеристик дает лишь один интеграл .
В этом случае осуществляем замену переменных , , где — какая-нибудь функция, для которой . После замены переменных получаем уравнение . Для уравнения эллиптического типа интегралы уравнения характеристик имеют вид , где и — вещественные функции.
Полагая и , приводим уравнение к виду .
Постановка краевых задач
Классическим решением краевой задачи называются всяка функция, удовлетворяющая дифференциальному уравнению в каждой точке внутри области задания этого уравнения и непрерывная в рассматриваемой области, включая границу. Соответствующую постановку краевой задачи называют классической. Существует несколько таких задач:
Задача Коши для бесконечной области. Рассмотрим эту задачу на примере
уравнения колебания струны и уравнения теплопроводности.
Рассмотрим процесс колебания тонкой бесконечной струны под действием непрерывно распределенной внешней силы с плотностью f. Предположим, что сила действует в одной плоскости – плоскости колебания струны (x, u), а струна является гибкой упругой нитью. Пусть величина натяжения, возникающая в струне вследствие ее изгиба, подчиняется закону Гука, а сами колебания достаточно малы. Тогда величина смещения u (x, t) удовлетворяет уравнению колебания струны: . Для однозначности процесса необходимо задать еще начальное смещение и начальное распределение скоростей. Математически это соответствует заданию начальных условий: . Требуется найти классическое решение уравнения, удовлетворяющие начальным условиям. Сформулированная таким образом задача называется задачей Коши для гиперболического уравнения.
Исследуем теперь процесс распределения температуры в тонком бесконечном стержне. Предполагается, что тепловой поток подчиняется закону Фурье, а изменение температуры тела пропорционально количеству теплоты, сообщаемой телу. Предположим, что внутри стержня может выделяться и поглощаться теплота, характеризуемая плотностью тепловых источников f. Тогда распределение температуры в стержне описывается уравнением теплопроводности: . Для однозначного задания процесса необходимо указать начальное распределение температуры. Это соответствует заданию начального условия: . Требуется найти классическое решение уравнения, удовлетворяющие начальным условиям. Сформулированная таким образом задача называется задачей Коши для параболического уравнения.
Стационарная задача (задача без начальных данных). Рассмотрим установившийся
режим распределения температуры в ограниченной тонкой пластине произвольной формы с гладкой границей. Пусть функция u(x, y) выражает температуру каждой точки пластины. При обычных законах распространения тепла функция u(x, y) удовлетворяет уравнению Пуассона: , где функция а задает плотность тепловых источников пластины. В случае отсутствия источника (f=0) данное уравнение называется уравнением Лапласа: . Для однозначного описания процесса необходимо задать тепловой режим на границе пластины. Это может быть сделано с помощью задания распределения температуры на границе или распределения теплового потока. Возможен также режим теплового равновесия излучающего тела с окружающей средой.
В зависимости от теплового режима на границе получаются три граничных условия для функции u(x, y). Пусть Г – граница рассматриваемой области D – определения уравнения Лапласа. Математическая формулировка граничных условий может быть задана в следующем виде:
граничное условие Iрода: ;
граничное условие IIрода: ;
граничное условие IIIрода: .
Производная берется по внешней нормали к кривой Г; λ>0 – коэффициент теплопроводности; φ0
, φ1
, φ2
– заданные на Г функции, причем φ2
есть произведение коэффициента теплопроводности на температуру внешней среды, соприкасающейся с телом.
Таким образом, краевая задача заключается в том, чтобы найти классическое решение уравнения Пуассона или Лапласа, удовлетворяющее одному из граничных условий.
Смешанная краевая задача. Рассмотрим задачу распространения тепла в тонком
стержне единичной длины. Поместим один из концов в точку x=0, а другой – в точку x=1. Распределение температуры в таком стержне в течение некоторого интервала времени 0<t<Tописывается уравнением , с начальным условием , а для единственности решения в этом случае необходимо еще задать температурный режим на концах стержня. Это можно сделать с помощью граничных условий, аналогичных тем, которые были сформулированы для уравнений Пуассона и Лапласа.
Граничное условие Iрода (на конце стержня x=0 заданна температура): .
Граничное условие IIрода (на конце стержня x=0 задан тепловой поток): .
Граничное условие IIIрода: .
Для другого конца стержня x=1 правые части граничных условий заменяются соответственно на ψ0
(t), ψ1
(t), ψ2
(t). Заметим, что начальное и граничное условия должны удовлетворять так называемым условиям сопряжения, т.е. при условии Iрода u0
(0)=φ0
(0), при условии IIрода u0
x
(0)=φ1
(0), при условии IIIрода -u0
x
(0)+λu0
(0)=φ2
(0). Аналогичные условия сопряжения должны выполнятся и на другом конце стержня x=1.
Сформулируем одну из возможных краевых задач. Найти классическое решение уравнения , удовлетворяющее начальному условию и следующим граничным условиям . Эта задача обычно называется первой краевой задачей для уравнения теплопроводности. Соответственно краевые задачи с граничными условиями IIроди или IIIназываются второй и третьей краевой задачей для уравнения теплопроводности.
Метод конечных разностей (метод сеток)
Численные методы, основанные на разностной аппроксимации производных называется разностным методом, методом конечных разностей или методом сеток.
Пусть заданно линейное дифференциальное уравнение, записанное в символическом виде: . Здесь u – искомое решение уравнения; L – некоторый дифференциальный оператор, сокращенно обозначающий соответствующую дифференциальную операцию; f – правая часть уравнения (заданная функция).
Для единственного решения данного уравнения к нему необходимо присоединить краевые условия: .
Разностный метод решения этих двух задач можно представить в виде двух этапов:
построение разностной схемы, аппроксимирующей данную непрерывную задачу;
получение решения разностной задачи и оценка погрешности этого решения.
Для построения разностной схемы первым шагом является замена области непрерывного изменения аргументов областью дискретного их изменения – сеточной областью , т.е.множеством точек (xn
, ym
), называемых узлами сетки. Для квадрата сеточную область можно построить следующим образом. Проведем прямые . Множество точек пересечения этих прямых и составит сеточную область, а сами точки образуют узлы сетки. Всякая функция , определенная на ссеке , называется сеточной функцией и обозначается .
Второй шаг в построении разностной схемы состоит в аппроксимации дифференциального выражения Luнекоторым разностным выражением, а функцию непрерывного аргумента f – сеточной функцией, т.е. в построение некоторого разностного аналога для данного уравнения, при данных краевых условиях.
Такая аппроксимация приводит к системе алгебраических уравнений относительно значений некоторой сеточной функции . Эту систему можно записать в следующем виде:
Где Lh
и φh
– разностные операторы, аппроксимирующие соответственно Lи l; υh
– искомая сеточная функция, аппроксимирующая решение u; fh
, φh
– заданные сеточные функции, аппроксимирующие fи φ.
Совокупность разносных уравнений, аппроксимирующих исходную задачу – есть разностная схема. Рассмотрим их подробнее на примерах уравнения теплопроводности и колебания струны.
Разностные схемы для решения уравнения теплопроводности (параболический тип)
Рассмотрим первую краевую задачу для уравнения теплопроводности в прямоугольнике . Требуется найти непрерывное в решение задачи:
В области введем прямоугольную равномерную сетку {xn
, tk
} с шагом h=1/Nпо координате xи с шагом τ=T/Mпо координате t:
.
Производные левой части уравнения аппроксимируем следующим разностными выражениями:
В соответствии с данной аппроксимацией построим два разностных аналога уравнения с неизвестной сеточной функцией υhτ
:
Здесь - значение некоторой сеточной функции fhτ
, соответствующей правой части уравнения . Для первой разностной схемы , а для второй - .
Начальное и граничное условия для первой краевой задачи аппроксимируются точно:
Для второй и третьей краевых задач граничные условия аппроксимируются на основе разностных выражений.
Полагая r=τ/h2
получим - для первой разностной схемы, - - для второй разностной схемы.
Анализ показывает, что погрешность аппроксимации схем есть .
Разностные схемы для решения уравнения колебания струны (гиперболический тип)
Рассмотрим первую краевую задачу для уравнения колебания струны в прямоугольнике . Требуется найти непрерывное в решение задачи:
Применение метода конечных разностей к решению задачи по существу мало чем отличается от его применения к уравнению теплопроводности. Область покрывается сеткой . Отличие заключается в приближении второй производной по переменной t:
.
Разностная аппроксимация принимает вид
.
Начальные условия аппроксимируются следующим образом: .
Граничные условия аппроксимируются точно так же, как и для уравнения теплопроводности: .
Значение является фиктивным неизвестным, которое можно определить по формуле: , где γ=τ/h.
Анализ показывает, что погрешность аппроксимации схем есть .
Список литературы
Демидович Б.П., Марон И.А. Основы вычислительной математики. Наука, 1970.
Минкова Р.М., Вайсбурд Р.А. Методы вычислительной математики. УПИ, 1981.
Боглаев Ю.П. Вычислительная математика и программирование. Высшая школа, 1990.
Кацман Ю.Я. Прикладная математика. Численные методы. ТПУ, 2000.