解微分方程
用有限元法解析求解微分方程dsolve
函数,有或没有初始条件。要求解微分方程组,请参见解一个微分方程组.
一阶线性ODE
解这个微分方程。
首先,代表y通过使用信谊
来创建符号函数y (t)
.
信谊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)
用条件解微分方程
在前面的解中,常数C1
出现是因为没有指定条件。用初始条件解方程Y (0) == 2
.的dsolve
函数的值为C1
满足条件。
Cond = y(0) == 2;ySol(t) = dsolve(ode,cond)
ySol(t) = 2*exp(t²/2)
如果dsolve
不能解你的方程,那就试着用数值方法解方程。看到数值求解二阶微分方程.
具有初始条件的非线性微分方程
求具有初始条件的非线性微分方程。这个方程有多个解。
Syms y(t) ode = (diff(y,t)+y)²== 1;Cond = y(0) = 0;ySol(t) = dsolve(ode,cond)
ySol(t) = exp(-t) - 1 1 - exp(-t)
具有初始条件的二阶ODE
解这个二阶微分方程有两个初始条件。
定义方程和条件。第二个初始条件涉及一阶导数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;
解决颂歌
为y
.方法简化解决方案简化
函数。
Conds = [cond1 cond2];ySol(x) = dsolve(ode,conds);ySol = simplify(ySol)
ySol(x) = 1 - (8*sin(x/2)^4)/3
具有初始条件的三阶ODE
用三个初始条件解这个三阶微分方程。
因为初始条件包含一阶导数和二阶导数,创建两个符号函数,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) =(π* exp (x)) / 3 - exp (- x / 2) * cos ((3 ^ (1/2) * x) / 2) *(π/ 3 - 1)-…(3^(1/2)*exp(-x/2)*sin((3^(1/2)*x)/2)*(+ 1))/3
更多ODE示例
此表显示了微分方程的示例及其符号数学工具箱™语法。最后一个例子是艾里微分方程,它的解叫做艾里函数。
微分方程 |
MATLAB®命令 |
---|---|
|
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 |
|
信谊y (x)颂歌= 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) |
艾里方程。
|
Syms y(x) ode = diff(y,x,2) == x*y;ySol(x) = dsolve(ode) ySol(x) = C1*airy(0,x) + C2*airy(2,x) |
另请参阅
dsolve
|odeFunction
|odeToVectorField
|reduceDifferentialOrder
|daeFunction