用matlab解微分方程,有了边界条件
求利用matlab解微分方程:y''=y*(z+y'^2)^(3/2)初始条件:y=0处,y'=0;x=0处,y=0.8;求助。。...
求利用matlab解微分方程:y''=y*(z+y'^2)^(3/2)初始条件:y=0处,y'=0;x=0处,y=0.8;求助。。
展开
2个回答
展开全部
y=dsolve('D2y=y*(z+Dy*Dy)^(3/2)','y(0)=1','Dy(0)=0.8')
结果是:
y =
piecewise([-z = 16/25, {(4*t)/5 + 1}], [-z <> 16/25, {}])
也就是说,只有z=-16/25时有解析解,解析解为y=4t/5+1,换成x就是y=4x/5+1。
其它情况没有解析解,至少matlab找不到解析解。
在无法求得解析解的情况下,可以用matlab的ode45等函数求解微分方程。
结果是:
y =
piecewise([-z = 16/25, {(4*t)/5 + 1}], [-z <> 16/25, {}])
也就是说,只有z=-16/25时有解析解,解析解为y=4t/5+1,换成x就是y=4x/5+1。
其它情况没有解析解,至少matlab找不到解析解。
在无法求得解析解的情况下,可以用matlab的ode45等函数求解微分方程。
追问
我也知道求不出解析解,主要是能用ode45求出数值解吗?因为用ode系列函数求,貌似都要两个边界条件,一个是y(0)=,y'(0)=...,而我现在只有y=0处,y'=0;x=0处,y=0.8这样的边界条件,所以不知道如何去求他的数值解。。
追答
。。。转化为微分方程组求解啊。这。。。
令h=[y,y']然后变成关于h的微分方程,这样ode就可以解了。
数学功底不够的话可以去查相关的资料,有时间我再详细给你说。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询