Решение дифференциального уравнения

Решить дифференциальное уравнение аналитически при помощи dsolve функция, с начальными условиями или без. Чтобы решить систему дифференциальных уравнений, см. Решение системы дифференциальных уравнений.

Линейная ОДУ первого порядка

Решить это дифференциальное уравнение.

dydt=ty.

Во-первых, представьте y при помощи syms для создания символьной функции y(t).

syms y(t)

Определите уравнение используя == и представляют дифференциацию, используя diff функция.

ode = diff(y,t) == t*y
ode(t) =
diff(y(t), t) == t*y(t)

Решить уравнение используя dsolve.

ySol(t) = dsolve(ode)
ySol(t) =
C1*exp(t^2/2)

Решение дифференциального уравнения с условием

В предыдущем решении константа C1 появляется, поскольку условие не задано. Решить уравнение с начальным условием y(0) == 2. dsolve функция находит значение C1 что удовлетворяет условию.

cond = y(0) == 2;
ySol(t) = dsolve(ode,cond)
ySol(t) =
2*exp(t^2/2)

Если dsolve не может решить ваше уравнение, затем попробуйте решить уравнение численно. См. Решение дифференциального уравнения второго порядка численно.

Нелинейное дифференциальное уравнение с начальным условием

Решить это нелинейное дифференциальное уравнение с начальным условием. Уравнение имеет несколько решений.

(dydt+y)2=1,y(0)=0.

syms y(t)
ode = (diff(y,t)+y)^2 == 1;
cond = y(0) == 0;
ySol(t) = dsolve(ode,cond)
ySol(t) =
 exp(-t) - 1
 1 - exp(-t)

ОДУ второго порядка с начальными условиями

Решить это дифференциальное уравнение второго порядка с двумя начальными условиями.

d2ydx2=cos(2x)y,y(0)=1,y'(0)=0.

Задайте уравнение и условия. Второе начальное условие включает первую производную y. Представьте производную путем создания символьной функции Dy = diff(y) а затем определите условие используя Dy(0)==0.

syms y(x)
Dy = diff(y);

ode = diff(y,x,2) == cos(2*x)-y;
cond1 = y(0) == 1;
cond2 = Dy(0) == 0;

Решите ode для y. Упростите решение, используя simplify функция.

conds = [cond1 cond2];
ySol(x) = dsolve(ode,conds);
ySol = simplify(ySol)
ySol(x) =
1 - (8*sin(x/2)^4)/3

ОДУ третьего порядка с начальными условиями

Решить это дифференциальное уравнение третьего порядка с тремя начальными условиями.

d3udx3=u,u(0)=1,u(0)=1,u(0)=π.

Поскольку начальные условия содержат производные первого и второго порядка, создайте две символьные функции Du = diff(u,x) и D2u = diff(u,x,2), для определения начальных условий.

syms u(x)
Du = diff(u,x);
D2u = diff(u,x,2);

Создайте уравнение и начальные условия и решите его.

ode = diff(u,x,3) == u;
cond1 = u(0) == 1;
cond2 = Du(0) == -1;
cond3 = D2u(0) == pi;
conds = [cond1 cond2 cond3];

uSol(x) = dsolve(ode,conds)
uSol(x) =
 
(pi*exp(x))/3 - exp(-x/2)*cos((3^(1/2)*x)/2)*(pi/3 - 1) -...
(3^(1/2)*exp(-x/2)*sin((3^(1/2)*x)/2)*(pi + 1))/3

Другие примеры ОДУ

Эта таблица показывает примеры дифференциальных уравнений и их синтаксиса Symbolic Math Toolbox™. Последним примером является дифференциальное уравнение Эйри, решение которого называется функцией Эйри.

Дифференциальное уравнение

MATLAB® Команды

dydt+4y(t)=et,y(0)=1.

syms y(t)
ode = diff(y)+4*y == exp(-t);
cond = y(0) == 1;
ySol(t) = dsolve(ode,cond)
ySol(t) =
exp(-t)/3 + (2*exp(-4*t))/3

2x2d2ydx2+3xdydxy=0.

syms y(x)
ode = 2*x^2*diff(y,x,2)+3*x*diff(y,x)-y == 0;
ySol(x) = dsolve(ode)
ySol(x) =
C2/(3*x) + C3*x^(1/2)

Уравнение Эйри.

d2ydx2=xy(x).

syms y(x)
ode = diff(y,x,2) == x*y;
ySol(x) = dsolve(ode)
ySol(x) =
C1*airy(0,x) + C2*airy(2,x)

См. также