- •8. Дифференциальные уравнения
- •8.1. Основные понятия и определения
- •8.2. Дифференциальные уравнения первого порядка.
- •Уравнения с разделяющимися переменными
- •Подставляем полученное соотношение в исходное уравнение
- •8.3. Дифференциальные уравнения второго порядка
- •8.4. Решение обыкновенных дифференциальных уравнений (оду)
- •8.4.1. Символьное (аналитическое) решение оду
- •8.4.2. Численные методы решения оду
8.4. Решение обыкновенных дифференциальных уравнений (оду)
в Maxima
8.4.1. Символьное (аналитическое) решение оду
В Maxima представляется возможным с помощью специальные средств проводить аналитическое решение задачи Коши для систем обыкновенных дифференциальных уравнений, заданных как в явной форме dx/dt= F(t,x) , так и в неявной Mdy/dt=F(t,x), где М – матрица. Такие средства называют решателями ОДУ (solver ODE), обеспечивающих пользователю возможность выбора метода, задания начальных условий и др. Одним из таких средств является функция ode2, позволяющая решать в символьном виде обыкновенные дифференциальные уравнения первого и второго порядков.
Синтаксис вызова функции ode2
ode2(eqn, dvar, ivar),
где eqn - выражение, определяющее вид дифференциального уравнения;
dvar - зависимая переменная;
ivar - независимая переменная.
Посредством функции ode2 могут быть решены следующие типы ОДУ первого порядка: линейные, ОДУ с разделяющимися переменными, однородные ОДУ, уравнения в полных дифференциалах, уравнения Бернулли, обобщённые однородные уравнения.
Кроме того, при помощи функции ode2 могут быть решены следующие типы уравнений второго порядка: с постоянными коэффициентами; в полных дифференциалах; линейные однородные с переменными коэффициентами, которые могут быть сведены к уравнениям с постоянными коэффициентами; уравнения Эйлера; уравнения, разрешимые методом вариации постоянных; уравнения, свободные от независимой переменной, допускающие понижение порядка.
Тип используемого метода сохраняется в переменной method. При использовании интегрирующего множителя он сохраняется в переменной intfactor. Частное решение неоднородного уравнения сохраняется в переменной yp.
Для отыскания частных решений задач Коши с начальными условиями используются функции ic1(для уравнений первого порядка) и ic2 (для уравнений второго порядка).
Если ode2 не может получить решение, она возвращает значение false.
Рассмотрим примеры использования функции ode2.
Решить обыкновенное дифференциальное уравнение
(%i1) ode2('diff(y,x)=2*y+exp(x), y, x);
(%o1) y=(%c - %e^(-x))*%e^(2*x)
система Maxima возвратила общее решение уравнение, где %c – постоянная интегрирования уравнения первого порядка.
Другой пример для уравнения второго порядка -
(%i5) ode2('diff(y,x,2)-3*'diff(y,x)+2*y=0, y, x);
(%o5) y=%k1*%e^(2*x)+%k2*%e^x
здесь %k1 и %k2 – постоянные интегрирования уравнения второго порядка. Для рассматриваемого уравнения второго порядка определим частное решение, удовлетворяющее начальным условиям при x = 0 y = 1, (задача Коши).
(%i6) ic2(%,x=0,y=1,diff(y,x)=2);
(%o6) y=%e^(2*x)pflfx,
риваемого уравнения второго порядка
определим частное решение, удовлетворяющее
начальным условиям
Дифференциальные уравнения первого порядка
Уравнение с разделяющимися переменными
Определяем частное решение
Однородное уравнение
Находим общее решение этого уравнения
Частное решение –
Линейное уравнение
Дифференциальные уравнения второго порядка
Неоднородное уравнение с действительными корнями характеристического уравнения
Частное решение неоднородного уравнения сохраняется в переменной yp :
Неоднородное уравнение с комплексными корнями характеристического уравнения
(%i21) ode2(de1,y,x);
(%o21) y=(2*x*sin(x)+(1-2*x^2)*cos(x))/8+%k1*sin(x)+%k2*cos(x)
Уравнение с переменными коэффициентами
Решение системы дифференциальных уравнений
Система дифференциальных уравнений в символьном режиме (аналитически) решается с помощью функции desolve
Синтаксис вызова desolve:
desolve(delist, fnlist),
где delist - список решаемых дифференциальных уравнений, fnlist - список искомых функций. При использовании desolve необходимо явно задавать функциональные зависимости (вместо ′diff(y, x) использовать запись diff(y(x), x)).
Пример использования функции desolve: Решить систему уравнений
(%i1) eq1:diff(f(x),x)=diff(g(x),x)+sin(x);
(%o1) 'diff(f(x),x,1)='diff(g(x),x,1)+sin(x)
(%i3) eq2:diff(g(x),x,2)=diff(f(x),x)-cos(x);
(%o3) 'diff(g(x),x,2)='diff(f(x),x,1)-cos(x)
(%i4) desolve([eq1,eq2],[f(x),g(x)]);
(%o4) [f(x)=%e^x*(at('diff(g(x),x,1),x=0)) - at('diff(g(x),x,1),x=0)+f(0),
g(x)=%e^x*(at('diff(g(x),x,1),x=0)) - at('diff(g(x),x,1),x=0)+cos(x)+g(0)-1]