Решение дифференциальных уравнений в MATLAB с использованием численных методов Адамса и Рунге-Кутта
Лабораторная работа, 05 Мая 2013, автор: пользователь скрыл имя
Описание работы
Цель работы: освоить среду MATLAB, изучить алгоритмы решения дифференциальных уравнений численными методами, реализовать алгоритмы численных методов в среде MATLAB, научиться представлять решения дифференциальных уравнений в табличном и графическом видах.
Содержание работы
Для ДУ вида получить решение аналитическим методом.
Реализовать метод Адамса и Рунге-Кутта 4-5 порядка точности в среде MATALAB.
Построить графики для всех трех методов.
Файлы: 1 файл
ЛАБОРАТОРНАЯ РАБОТА1.docx
— 53.23 Кб (Скачать файл)
ЛАБОРАТОРНАЯ РАБОТА №1
Решение дифференциальных уравнений в MATLAB с использованием численных методов Адамса и Рунге-Кутта
Цель работы: освоить среду MATLAB, изучить алгоритмы решения дифференциальных уравнений численными методами, реализовать алгоритмы численных методов в среде MATLAB, научиться представлять решения дифференциальных уравнений в табличном и графическом видах.
Содержание работы:
- Для ДУ вида получить решение аналитическим методом.
- Реализовать метод Адамса и Рунге-Кутта 4-5 порядка точности в среде MATALAB.
- Построить графики для всех трех методов.
Вариант №11.
- y' – yex = 2xeex y(0) = 0;
Аналитическое решение:
- Метод Адамса
Создаем Blank M-File
function f=primer(x,y)
dy=2*x*exp(exp(x))+y*exp(x);
f=dy';
Примечание: primer (x,y) – произвольное имя функции.
Сохраняем M-File и переходим в Command Window.
Для запуска созданной программы в Command Window записываем
>> x0=0; <enter>
>> t0=0; <enter>
>> tf=1; <enter>
>> [x,y]=ode113(@primer,[t0,tf],
Результатом выполнения программы primer является
x =
0
0.0004
0.0009
0.0017
0.0034
0.0068
0.0136
0.0205
0.0273
0.0409
0.0546
0.0818
0.1091
0.1364
0.1637
0.2182
0.2728
0.3273
0.3819
0.4364
0.5364
0.6364
0.7364
0.8364
0.9364
1.0000
y =
0
0.0000
0.0000
0.0000
0.0000
0.0001
0.0005
0.0012
0.0021
0.0047
0.0086
0.0198
0.0363
0.0585
0.0870
0.1652
0.2767
0.4289
0.6311
0.8948
1.5907
2.6802
4.3775
7.0339
11.2378
15.1516
Запускаем функцию построения графиков
>> plot(x,y) <enter>
Получаем график решения Д.У. с начальными условиями по методу Адамса.
Метод Рунге-Кутта
Blank M-File уже создан.
Переходим в Command Window.
Для запуска созданной программы в Command Window записываем
>> x0=0; <enter>
>> t0=0; <enter>
>> tf=1; <enter>
>> [x,y]=ode45(@primer,[t0,tf],
Результатом выполнения программы primer является
x =
0
0.0250
0.0500
0.0750
0.1000
0.1250
0.1500
0.1750
0.2000
0.2250
0.2500
0.2750
0.3000
0.3250
0.3500
0.3750
0.4000
0.4250
0.4500
0.4750
0.5000
0.5250
0.5500
0.5750
0.6000
0.6250
0.6500
0.6750
0.7000
0.7250
0.7500
0.7750
0.8000
0.8250
0.8500
0.8750
0.9000
0.9250
0.9500
0.9750
1.0000
y =
0
0.0017
0.0072
0.0165
0.0302
0.0485
0.0719
0.1008
0.1357
0.1771
0.2257
0.2821
0.3471
0.4215
0.5063
0.6025
0.7112
0.8338
0.9717
1.1265
1.3001
1.4944
1.7119
1.9549
2.2266
2.5301
2.8690
3.2477
3.6708
4.1436
4.6722
5.2636
5.9254
6.6668
7.4978
8.4301
9.4771
10.6542
11.9786
13.4709
15.1543
Запускаем функцию построения графиков
>>plot(x,y) <enter>
Получаем график решения Д.У. с начальными условиями по методу Рунге-Кутта.
- Аналитический метод
Переходим в Command Window.
Столбец х построен предыдущим методом.
Для реализации аналитического метода в Command Window записываем
>> g=x.^2*exp(exp(x)) <enter>
Результатом выполнения является
g =
0
0.0017
0.0072
0.0165
0.0302
0.0485
0.0719
0.1008
0.1357
0.1771
0.2257
0.2821
0.3471
0.4215
0.5063
0.6025
0.7112
0.8338
0.9717
1.1265
1.3001
1.4944
1.7119
1.9549
2.2266
2.5300
2.8690
3.2477
3.6708
4.1436
4.6722
5.2636
5.9254
6.6668
7.4978
8.4301
9.4771
10.6541
11.9786
13.4709
15.1543
Запускаем функцию построения графиков
>> plot(x, y, '*', x, g, '-') <enter>
Получаем графики решения Д.У. с начальными условиями , где график, изображенный с помощью ‘*’ – график решения Д.У. по методу Рунге-Кутта, ‘-‘ – по аналитическому методу.