- •Тема 4. Численное дифференцирование и интегрирование
- •1. Основные формулы численного дифференцирования
- •Контрольные вопросы и задания
- •6. Y(z) вычисляется по следующему алгоритму:
- •8. Y(z) вычисляется по следующему алгоритму:
- •2. Простые формулы численного интегрирования
- •3. Составные формулы численного интегрирования
- •3. Метод дробления шага. Правило Рунге
- •4. Тестовые примеры для программ численного интегрирования
- •Контрольные вопросы и задания
- •1. Классификация численных методов решения дифференциальных уравнений
- •Результаты расчетов примера 5.3
- •2. Вычислительные формулы численных методов 4-го порядка точности
- •Метод Адамса-Башфорта-Моултона. Это 4-х шаговый метод типа “прогноз-коррекция”. При вычислении используется формула метода Адамса-Башфорта. Коррекция производится по формуле Моултона
- •Методы 4-го порядка точности. Результаты расчетов примера 5.3
- •3. Системы дифференциальных уравнений
- •4. Программная реализация методов решения оду
- •Текст программы
- •5.4.2. Тестовые примеры для программ решения дифференциальных уравнений
- •Контрольные вопросы и задания
1. Классификация численных методов решения дифференциальных уравнений
Дифференциальное уравнение и его численное решение. Напомним, что дифференциальным уравнением называется уравнение вида
F(x,
y,
,…)
= 0, (5.1)
а его решением – такая функция у = у(х), которая при ее подстановке в F обращает уравнение (5.1) в тождество. Максимальный порядок производной в выражении F называется порядком уравнения.
Уравнение (5.1) не имеет однозначного решения. Чтобы однозначно определить решение, требуются дополнительные условия. По типу таких условий различают одноточечные задачи (задачи с начальными условиями или задача Коши) и многоточечные. В первом случае все дополнительные условия задаются в одной, обычно начальной, точке.
Пример 5.1. Дано уравнение 2-го порядка с двумя начальными условиями
В многоточечных задачах дополнительные условия задаются в нескольких точках. Чаще всего – в граничных, тем самым ставится так называемая краевая задача.
Пример 5.2. Дано уравнение 2-го порядка с условиями на концах отрезка определения решения – краевая задача
Задачи обоих примеров имеют одинаковое аналитическое решение у = 1.125 e2x – 0.125 e–2x – 2x.
Среди множества задач, связанных с решением дифференциальных уравнений наиболее важной является задача Коши для уравнения 1-го порядка, к ней сводятся многие другие задачи. Поэтому, именно ей будет уделено основное внимание в настоящей теме.
Если аналитическое решение дифференциального уравнения представляет собой некоторое выражение, явно или неявно задающее искомую функцию у(х), то численное решение представляет собой таблицу, определяющую значение у(х) в некоторых заданных узлах хi. В дальнейшем построенная таблица может быть использована для получения решения в промежуточных точках, например, с применением аппарата аппроксимации функций. В таблице 5.1 приведено численное решение задачи примеров 5.1 и 5.2 в равноотстоящих точках.
Таблица 5.1. |
||
Численное решение примера 5.1 |
||
xi |
yi |
y’i |
0 |
1 |
0.5 |
0.25 |
1.2790 |
1.8613 |
0.50 |
2.0121 |
4.2081 |
0.75 |
3.5140 |
8.1396 |
1.00 |
6.2958 |
14.6592 |
1.25 |
11.1950 |
25.4311 |
1.50 |
19.5900 |
43.2049 |
1.75 |
33.7511 |
72.5173 |
2.00 |
57.4206 |
120.8503 |
Численные методы. Большинство численных методов решения задачи Коши для уравнения 1-го порядка, сводятся к процедуре вычисления уi+1 = y (x i + h) при известных значениях уi = y (x i ) и некоторых других параметров задачи.
Будем считать, что уравнение (5.1) разрешено относительно у’ и мы имеем задачу Коши вида
.
(5.2)
Зная начальную точку (х0 , у0 ), можно с помощью основной процедуры численного метода определить следующую точку (х1 , у1 ) решения. А дальше вычисления повторяются – положив (х1 , у1 ) новой начальной точкой мы можем тем же способом найти (х2 , у2 ) и так продолжить до конца отрезка задания решения.
Основой для получения расчетных формул того или иного численного метода является эквивалентное представление уравнения (5.2) при начальной точке (хi , уi ) в интегральном виде:
,
(5.3)
который получается интегрированием обеих частей уравнения (5.2). Для построения метода надо подобрать подходящую аппроксимацию интеграла в (5.3) с помощью какой-либо формулы численного интегрирования. Так как большинство квадратурных формул интерполяционного типа сводятся к вычислению значений у(х) в специально подобранныx узлах, то при аппроксимации интеграла вместо (5.3) будем иметь приближенное равенство
уi+1 – уi Ф(хi , h, уi+1–k ,… уi, уi+1), (5.4)
где Ф – аппроксимация интеграла в (5.3). Теперь задача сводится к тому, чтобы выразить из алгебраического уравнения (5.4) искомую величину уi+1. Тип численного метода в основном определяется способом построения функции Ф и процедурой нахождения уi+1 из (5.4).
При аппроксимации интеграла (5.3) в общем случае используются найденные ранее k значений искомой функции: уi+1–k,…, уi. Поэтому такие методы называются k-шаговыми. При k = 1 уравнение (5.4) упрощается и приобретает вид
уi+1 – уi Ф(хi , h, уi, уi+1).
Соответствующие методы называются одношаговыми. Вычисление уi+1 в них осуществляется с использованием только одного предыдущего значения – уi, которое либо было задано по условию при i = 0, либо определилось на предыдущих итерациях. Иными словами, никаких вспомогательных процедур для реализации одношаговых методов не нужно. Поэтому их еще называют самостартующими.
При k > 1 получаем многошаговые методы, более подробно поговорим о них ниже.
В случае, когда функция Ф не зависит от уi+1, ее вычисление не вызывает затруднений и осуществляется по явной формуле
уi+1 = уi + Ф(хi , h, уi+1–k ,… уi).
Соответствующие методы называются явными. В противоположность им, методы, в которых функция Ф зависит от уi+1, называются неявными. При их реализации при каждом i возникает необходимость решения относительно уi+1 некоторого нелинейного уравнения.
Пример 5.3. Требуется решить задачу Коши
.
Здесь f(x, y) = y2 + 1. Получим формулы некоторых простейших численных методов, используя простые (не составные) формулы численного интегрирования для аппроксимации интеграла (5.3).
1) Воспользуемся формулой левых прямоугольников, известной из курса математического анализа:
=
Ф(хi
, h, уi).
Функция Ф не зависит от уi+1 и в ней k = 1. Следовательно, получаем явный одношаговый метод
уi+1 = уi + h f(хi , уi), (5.5)
называемый явным методом Эйлера. Для примера 5.3 соответствующие расчетные формулы имеют вид уi+1 = уi + h [(уi)2 + 1].
2) Воспользуемся формулой трапеций (4.5), согласно которой интеграл (5.3) имеет следующий вид:
.
При такой аппроксимации интеграла правая часть равенства (5.4) зависит от уi+1 и поэтому имеем неявный одношаговый метод вида
уi+1 – уi = (h / 2) [ f (xi , уi ) + f (xi+1 , уi+1 ) ], (5.6)
называемый неявным методом Эйлера. Согласно этому методу, в примере 5.3 для искомого значения уi+1 будем иметь квадратное уравнение, решив которое получим расчетную формулу:
.
В общем случае уравнение (5.6) может не иметь аналитического решения. Тогда для организации расчетов по методу (5.6) можно воспользоваться каким-нибудь численным алгоритмом решения уравнений для определения значения уi+1 при каждом i.
3) Другой способ реализации метода (5.6) без непосредственного решения уравнения относительно уi+1 состоит в соединении явного и неявного методов. Вместо точного значения уi+1 в правую часть равенства (5.6) подставляется его приближенное значение, найденное по формуле явного метода (5.5), а затем применяется формула (5.6). В результате получаем следующие расчетные формулы:
= уi
+ h f(хi
, уi);
уi+1
= уi
+ (h / 2)[ f(xi
, уi
) + f(xi+1
,
) ]. (5.7)
Такая идея соединения явного и неявного методов носит название схемы прогноза и коррекции. На первом шаге по явной формуле получается величина , называемая прогнозом, которая затем корректируется с использованием формулы неявного метода. Полученное значение уi+1 считается окончательным искомым значением функции у(х) в i + 1-й точке. Метод (5.7) является одним из простейших вариантов такой схемы и называется модифицированным методом Эйлера или методом Эйлера-Коши.
Подставив левую формулу (5.7) в правую, получим единую расчетную формулу, которая для примера 5.3 будет иметь вид
.
Далее приведены результаты расчетов перечисленных методов для примера 5.3 на отрезке [0, 1.2] c шагом h = 0.2. Для сравнения указаны точки точного решения у(х) = tg(x).
