Читайте также:
|
|
В том случае когда символьное решение ОДУ невозможно, целесообразно использовать численные методы. Maxima включает пакет расширения dynamics, позволяющий проинтегрировать систему ОДУ методом Рунге-Кутта. С той целью Maxima включает пакет dynamics (его необходимо загружать перед использованием). Метод Рунге-Кутта реализует функция rk.
Синтаксис вызова функции rk:
rk([eq], [vars],[init],[t_range]),
где eq - список правых частей уравнений;
vars - список зависимых переменных;
init - список начальных значений;
t-range - список [ t, t0, tend, ht ], содержащий символьное обозначение независимой переменной (t), её начальное значение (t0), конечное значение (tend), шаг интегрирования (ht).
Рассмотрим пример применения функции rk пакета dynamics.
Решить задачу Коши для системы обыкновенных уравнений первого порядка
при условии: x(0) = -1,25, y(0) = 0,75. .
(%i1) load("dynamics");
(%o1) C:/PROGRA~1/MAXIMA~1.2/share/maxima/5.19.2/share/dynamics/dynamics.mac
(%i2) rp1:4-x^2-4*y^2;
(%o2) -4*y^2-x^2+4
(%i3) rp2:y^2-x^2+1;
(%o3) y^2-x^2+1
(%i4) sol:rk([rp1,rp2],[x,y],[-1.25,0.75],[t,0,4,0.02])$
Cписок sol не выводим на экран (он достаточно длинный, поэтому завершаем ввод команды символом $).
Для построения графика решения преобразуем полученный список, построив отдельно список значений t (список xg), x (список yg1), y (список yg2). При построении графика используем опцию discrete.
(%i5) len:length(sol);
(%o5) 201
(%i33) xg:makelist(sol[k][1],k,1,len)$\\;
(%i36) yg1:makelist(sol[k][2],k,1,len)$\\;
(%i39) yg2:makelist(sol[k][3],k,1,len)$\\;
(%i42) plot2d([[discrete,xg,yg1],[discrete,xg,yg2]]);
Результат решения представлен на рис.
Дата добавления: 2015-07-14; просмотров: 102 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Символьное (аналитическое) решение ОДУ | | | Площадка: Южно-Уральский Государственный Университет (актовый зал). |