@
前言
本文将介绍如何用matlab求解一阶常微分方程(组)的特解,通解。
如果你对微分方程的常见解法感兴趣,可以参考这篇文章常微分方程的常见题型与解法
一、常微分方程
在matlab中,命令dsolve专用于求解微分方程的符号解,格式如下:
\(eqns\)为符号微分方程或符号微分方程组;\(conds\)为初值条件或边值条件;\(name\)和\(value\)为可选的成对参数。
\(eg.\)试求微分方程
code:
syms y(x); //定义符号变量
dy=diff(y);d2y=diff(y,2); //求导
y=dsolve(diff(y,3)-diff(y,2)==x,y(1)==8,dy(1)==7,d2y(2)==4);
y=simplify(y) //化简
二、常微分方程组
1.普通常微分方程组
\(eg.\)
code:
syms f(x) g(x);
df=diff(f);
[f1,g1]=dsolve(diff(f,2)+3*g==sin(x),diff(g)+df==cos(x),df(2)==0,f(3)==3,g(5)==1);
f1=simplify(f1),g1=simplify(g1)
2.线性常微分方程组
\(eg.\)
code:
syms x(t) y(t) z(t)
X=[x;y;z];
A=[1,0,0;2,1,-2;3,2,1];
B=[0;0;exp(t)*cos(2*t)];
X0=[0;1;1];
X=dsolve(diff(X)==A*X+B,X(0)==X0);
X=simplify([X.x;X.y;X.z]) %显示各个解的分量
pretty(X) %分数线居中的显示方式
参考书目
《数学建模算法与应用》
请发表评论