6. Численное решение ОДУ методом Рунге-Кутты 2 порядка с использованием
Mathcad
Найдем значения численного решение ОДУ методом Рунге-Кутты 2 порядка (функцию y2(x)) во всех точках заданного отрезка [1;6] с шагом h=0.5, используя математический пакет Mathcad, по расчетной формуле метода Рунге-Кутты 2-го порядка:
y |
|
y |
|
h f(x,y |
|
) f(x |
|
h,y |
|
hf(x,y |
)) , |
: |
|
|
|
|
|||||||||||||||
|
i 1 |
|
|
i |
2 |
|
|
i |
|
i |
|
|
|
|
i |
|
|
|
i |
|
|
i i |
|
|
|
|
|
|
|
||
|
|
|
где |
|
i 0,1,2,...,n 1. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
||||||||||||||||||||||||
|
|
|
Решение методом Рунге-Кутты 2 порядка - функция y2: |
|
|||||||||||||||||||||||||||
|
|
|
f(x y) |
|
2 x |
|
|
|
|
h 0.5 |
n 10 |
i |
0 n |
1 |
|
|
|
||||||||||||||
|
|
|
|
y |
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Начальные условия: |
0 |
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
Формулы для расчета: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
xi 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xi h |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
h |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
y2i 1 |
|
|
y2 |
i |
|
|
|
f x y2 |
|
|
f x |
h y2 |
i |
h |
f x |
y2 |
|
|||||||||||
|
|
|
|
2 |
|
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
i |
i |
|
|
i |
|
|
|
|
i |
i |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
Вывод всей таблицы-решения: |
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
i |
0 n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
xi |
|
|
|
|
y2i |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
1 1
1.51.875
2 2.64883
2.53.39358
3 4.1251
3.54.84938
4 5.56924
4.5 6.28621
5 7.00118
5.57.71469
68.42713
7.Численное решение ОДУ методом Рунге-Кутты 4 порядка с использованием
Mathcad
Расчетная формула метода Рунге-Кутты 4-го порядка имеет вид: yi 1 yi h6(k1 2k2 2k3 k4 ),
где
k1 |
f(xi,yi); |
|
k2 |
f(xi h/2,yi hk1 /2); |
|
k3 |
f(xi h/2,yi hk2 /2); |
|
k4 |
f(xi h,yi hk3). |
Страница 7 |
Тема1.5.Методы решенияОДУ (Лабораторный практикум) |
||
ВMathcad для численного решения ОДУ методом Рунге-Кутты 4-го порядка
предназначена функция rkfixed(y, x0, xend, N, D), где y – первоначально равно y0,
x0 и xend – начальное и конечное значения аргумента,
N – количество проводимых вычислений решения(точек таблицы), D - это выражение для вычисления правой части уравнения, т.е. f(x,y).
Результатом вычислений функции rkfixed( ) служит матрица из N+1 строк и 2-х столбцов.
Впервом столбце этой матрицы содержатся координаты узлов x0, x1, x2 … xend, а во втором
– значения приближенного решения в соответствующих узлах.
Найдем значения численного решение ОДУ методом Рунге-Кутты 4 порядка (функцию y4(x))
во всех точках заданного отрезка [1;6] с шагом h=0.5, используя математический пакет
Mathcad:
Решение методом Рунге-Кутты 4 порядка средствами Mathcad :
нач. значение: y0 1
ОДУ: f(x y) 2x y0
Решение для y на отрезке от 1 до 6 из 10 точек - это матрица (табличная функция) Y:
Y rkfixed(y 1 6 10 f)
|
|
|
0 |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
1 |
1 |
|
|
|
|
1 |
|
1.5 |
1.87137 |
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
2 |
2.64615 |
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
2.5 |
3.39147 |
|
|
|
Y |
4 |
|
3 |
4.12336 |
|
|
|
5 |
|
3.5 |
4.8479 |
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
6 |
|
4 |
5.56795 |
|
|
|
|
|
|
|
|
|
|
|
|
7 |
|
4.5 |
6.28507 |
|
|
|
|
|
|
|
|
|
|
|
|
8 |
|
5 |
7.00015 |
|
|
|
|
|
|
|
|
|
|
|
|
9 |
|
5.5 |
7.71376 |
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
6 |
8.42627 |
|
|
|
|
|
|
|
|
|
|
Для удобства и дальнейших расчетов погрешностей полученного решения дифференциального уравнения правый столбец матрицы Y(т.е. столбец с номером 1) присваивается переменной y4.
Тема1.5.Методы решенияОДУ (Лабораторный практикум) |
Страница 8 |
|
y4 Y1 |
i 0n |
|
|
xi |
y4i |
|
1 1
1.51.87137
2 2.64615
2.53.39147
3 4.12336
3.54.8479
4 5.56795
4.56.28507
5 7.00015
5.57.71376
68.42627
8.Значения погрешностей численного решения дифференциального уравнения для каждого метода
Для сравнения выведем все полученные разными методами решения
дифференциального уравнения и вычислим значения погрешностей каждого метода как разность между аналитическим (точным) решением и соответствующим численным решением в каждой точке табличной функции.
yti - аналитическое решение ОДУ, y1i - решение ОДУ, полученное методом Эйлера, y2i - решение ОДУ методом Рунге-Кутты 2-го порядка, y4i - решение ОДУ методом Рунге-Кутты 4-го порядка
|
|
|
|
|
|
|
|
|
n 10 |
i 0n |
x0 1 |
h 0.5 |
xi 1 |
xi h |
|
Запишем
аналитическое
(
точное) решение ОДУ как дискретную функцию yti
yti
2 xi 2 1
Полученные решения:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xi |
|
yti |
|
y1i |
|
y2i |
|
y4i |
|
|
||
|
|
1 |
|
1 |
|
1 |
|
1 |
|
|
1 |
|
|
|
|
|
1.5 |
|
1.87083 |
|
2 |
|
1.875 |
|
|
1.87137 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
2.64575 |
|
2.75 |
|
2.64883 |
|
|
2.64615 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2.5 |
|
3.39116 |
|
3.47727 |
|
3.39358 |
|
|
3.39147 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
4.12311 |
|
4.19623 |
|
4.1251 |
|
|
4.12336 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3.5 |
|
4.84768 |
|
4.91115 |
|
4.84938 |
|
|
4.8479 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
5.56776 |
|
5.62382 |
|
5.56924 |
|
|
5.56795 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4.5 |
|
6.2849 |
|
6.33508 |
|
6.28621 |
|
|
6.28507 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
7 |
|
7.04541 |
|
7.00118 |
|
|
7.00015 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5.5 |
|
7.71362 |
|
7.75509 |
|
7.71469 |
|
|
7.71376 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
|
8.42615 |
|
8.4643 |
|
8.42713 |
|
|
8.42627 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Страница 9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Тема1.5.Методы решенияОДУ (Лабораторный практикум) |
|
|
|
|||||||||||
Погрешности: |
y1i |
|
|
y2i |
|
|
y4i |
||
|
|
yti |
yti |
yti |
|||||
|
|
|
|
0 |
|
|
0 |
|
0 |
|
|
|
0.12917 |
|
4.171·10-3 |
|
5.459·10-4 |
||
|
|
|
0.10425 |
|
3.08·10-3 |
|
3.949·10-4 |
||
|
|
|
0.08611 |
|
2.42·10-3 |
|
3.089·10-4 |
||
|
|
|
0.07312 |
|
1.993·10-3 |
|
2.542·10-4 |
||
|
|
|
0.06348 |
|
1.697·10-3 |
|
2.162·10-4 |
||
|
|
|
0.05605 |
|
1.477·10-3 |
|
1.882·10-4 |
||
|
|
|
0.05018 |
|
1.309·10-3 |
|
1.668·10-4 |
||
|
|
|
0.04541 |
|
1.175·10-3 |
|
1.497·10-4 |
||
|
|
|
0.04147 |
|
1.067·10-3 |
|
1.359·10-4 |
||
|
|
|
0.03815 |
|
9.765·10-4 |
|
1.244·10-4 |
||
9. Графическая иллюстрация решений |
|
|
|||||||
|
10 |
|
|
|
|
|
|
|
|
yti |
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y1i |
6 |
|
|
|
|
|
|
|
|
y2i |
4 |
|
|
|
|
|
|
|
|
y4i |
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
0 |
1 |
2 |
3 |
|
4 |
5 |
|
6 |
|
|
|
|
|
xi |
|
|
|
|
В данном случае все численные решения ОДУ весьма близки к точному решению. |
|||||||||
Тема1.5.Методы решенияОДУ (Лабораторный практикум) |
Страница 10 |
5.6. Контрольные вопросы по теме Методы решения дифференциальных уравнений
1.Что такое обыкновенное дифференциальное уравнение?
2.Что такое порядок ОДУ?
3.Что называется аналитическим решением ОДУ 1-го порядка?
4.Что является общим решением ОДУy f(x,y)?
5.Что является геометрической интерпретацией общего решения ОДУy f(x,y)?
6.Что является частным решением ОДУy f(x,y)?
7.Что является численным решением ОДУy f(x,y)?
8.Что относится к начальным условиям при решении ОДУ 1-го порядка численными методами?
9.Имеет ли задача Коши для дифференциального уравнения 1-го порядка единственное решение?
10.По какому правилу проводят оценкупогрешности решения методов Рунге-Кутты?
11.Как выглядит формула для определения очередного значения функции по методу Рунге-Кутты 1-го порядка?
12.Уменьшение шага интегрирования при использовании методов Рунге-Кутты приводит
куменьшению или увеличению погрешности?
13.В обыкновенном дифференциальном уравнении присутствуют производные разных порядков от одной переменной или только первая производная от нескольких переменных?
14.Методы Рунге-Кутты являются одношаговыми или двухшаговыми методами?
15.Сколько раз на каждом шаге необходимо вычислять y(x,y) в модифицированном методе Эйлера?
16.Очередная точка решения ОДУ методом Рунге-Кутты вычисляется на основании одного или двух предыдущих значений функции?
17.Возможно ли в методах Рунге-Кутты применение переменного шага интегрирования?
18.Процесс решения дифференциального уравнения называется интегрированием или дифференцированием?
19.Каковы формулы оценки погрешности методов Рунге-Кутты?
20.Почему метод Эйлера называют методом Рунге-Кутты первого порядка?
21.Модифицированный метод Эйлера иначе называется методом Рунге-Кутты решения ОДУ 1-го или 2-го порядка?
22.Что требуется предварительно сделать, чтобы применить методы Рунге-Кутты при решении ОДУ 2-го порядка?
23.С помощью какого параметра происходит достижение заданной точности решения ОДУ в методе автоматического выбора шага?
24.Можно ли оценить погрешность решения ОДУ, не зная точного решения?
25.В каком методе решения ОДУ подынтегральная функция на отрезке аппроксимируется интерполяционным многочленом 1-го порядка, а затем интегрируется методом прямоугольников?
26.В каком методе решения ОДУ подынтегральная функция на отрезке [xi;xi+1] аппроксимируется интерполяционным многочленом 1-го порядка, а затем интегрируется методом трапеции?
27.Что является начальными условиями ОДУ n-го порядка (для n=2)?
28.Сколько ОДУ 1-го порядка будет содержать система, построенная для решения n-го порядка?
Тема1.5.Методы решенияОДУ (Лабораторный практикум) |
Страница 11 |