MATLAB如何求解符号微分方程:dsolve函数的使用方法

2020年12月10日15:25:04MATLAB如何求解符号微分方程:dsolve函数的使用方法已关闭评论

MATLAB如何求解符号微分方程:dsolve函数

在MATLAB中,用大写字母D表示导数。例如,Dy表示y',D2y表示y",Dy(0)=5表示y' (0)=5。D3y+D2y+Dy-x+8=0表示微分方程y'''+y"+y'-x+8=0。符号常微分方程求解可以通过函数dsolve来实现,其调用格式如下。

·dsolve(e,c,v):该函数求解常微分方程e在初值条件c下的特解。参数v描述方程中的自变量,省略时按默认原则处理,若没有给出初值条件c,则求方程的通解。

·dsolve(e1,e2,…,en,c1,…,cn,v1,…,vn):该函数求解常微分方程组e1,…,en在初值条件c1,…,cn下的特解,若不给出初值条件,则求方程组的通解,v1,…,vn给出求解变量。若边界条件少于方程的阶数,则返回的结果中会出现任意常数C1,C2,…。

例题 符号微分方程的求解。

>> dsolve('Dx=-a*x')

ans =

C2/exp(a*t)

>> x=dsolve('Dx=-a*x','x(0)=1','s')

x =

1/exp(a*s)

>> y=dsolve('(Dy)^2+y^2=1','y(0)=0')

y =

cosh((pi*i)/2 + t*i)

cosh((pi*i)/2 - t*i)

>> s=dsolve('Df=f+g','Dg=-f+g','f(0)=1','g(0)=2')

s =

g: [1x1 sym]

f: [1x1 sym]

>> w=dsolve('Dw=w^2*(1-w)')

w =

0

1

1/(lambertw(0, -C23/exp(t + 1))+ 1)

>> y3=dsolve('Dx=4*x-2*y','Dy=2*x-y','t')

y3 =

y: [1x1 sym]

x: [1x1 sym]

>> [x y]=dsolve('Dx=4*x-2*y','Dy=2*x-y','t')

x =

C29/2 + 2*C30*exp(3*t)

y =

C29 + C30*exp(3*t)

dsolve命令最多可以接受12个输入参量(包括方程组与定解条件个数)。若没有给定输出参量,则在命令窗口显示解列表。若该命令得不到解析解,则返回一个警告信息,同时返回一个空的sym对象。这时,用户可以用命令ode23或ode45求解方程组的数值解。

  • 版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。