微分方程
微分方程一般表示未知函数、未知函数的导数与自变量的关系。
在MATLAB中,实现微分方程求解的命令为dsolve.其基本调用格式如下:
命令 | 解释 |
---|
S = dsolve(eqn) | 求解常微分方程 | S = dsolve(eqn,cond) | 使用初始条件和边界条件来求解微分方程,cond为初始条件或者边界条件 | S = dsolve(eqn,cond,Name,Value) | 一个或者多个名称指定的附加选项 | Y = dsolve(eqns) | 求解常微分方程并返回包含解的结构数组 | Y = dsolve(eqns,conds) | 使用初始条件和边界条件来求解微分方程并返回包含解的结构数组 | Y = dsolve(eqns,conds,Name,Value) | 一个或者多个名称指定的附加选项 |
例1 求解
{
D
x
=
6
y
+
2
D
y
=
?
3
x
?
6
\left\{\begin{array}{l}D x=6y+2 \\ D y=-3x-6\end{array}\right.
{Dx=6y+2Dy=?3x?6?的解。
S = dsolve('Dx=6*y+2,Dy=-3*x-6');
disp([S.x,S.y])
[ (18^(1/2)*cos(18^(1/2)*t)*(C2 - (18^(1/2)*(6*cos(18^(1/2)*t) - 2^(1/2)*sin(18^(1/2)*t) + 6))/18))/3 + (18^(1/2)*sin(18^(1/2)*t)*(C1 - (18^(1/2)*(6*sin(18^(1/2)*t) + 2^(1/2)*cos(18^(1/2)*t) + 2^(1/2)))/18))/3, cos(18^(1/2)*t)*(C1 - (18^(1/2)*(6*sin(18^(1/2)*t) + 2^(1/2)*cos(18^(1/2)*t) + 2^(1/2)))/18) - sin(18^(1/2)*t)*(C2 - (18^(1/2)*(6*cos(18^(1/2)*t) - 2^(1/2)*sin(18^(1/2)*t) + 6))/18)]%逗号前面的部分为x的值,后面为解答出的y的值。
例2 求解
y
′
2
?
x
y
′
+
y
=
0
y^{\prime 2}-x y^{\prime}+y=0
y′2?xy′+y=0的t通解
y = dsolve('(Dy)^2-x*Dy+y=0','x') %求解方程的通解
y = x^2/4
-C4^2 + x*C4
clf,
hold on
hy1 = ezplot(y(1),[-6,6,-4,8],1);%绘制图表的纵轴和横轴的宽度
set(hy1,'Color','r','LineWidth',5)
for k = -2:0.5:2
y2=subs(y(2),'C3',k);
ezplot(y2,[-6,6,-4,8],1)
end
hold off
box on
legend('奇解','通解','Location','Best')
ylabel('y')
title(['\fontsize{14}微分方程',' (y '')^2 -xy ''+y=0','的解'])
绘制结果如下:
|