meili 发表于 2022-10-27 15:50:06

用matlab解微分方程,有了边界条件求利用matlab解微分方程:y#39;#39;=y*(z+y#39;^2)^(3/2)初始条件:y=0处,y#39;=0;x=0处,y=0.

<p>问题:用matlab解微分方程,有了边界条件求利用matlab解微分方程:y#39;#39;=y*(z+y#39;^2)^(3/2)初始条件:y=0处,y#39;=0;x=0处,y=0.
<p>答案:↓↓↓<p class="nav-title mt10" style="border-top:1px solid #ccc;padding-top: 10px;">刘立军的回答:<div class="content-b">网友采纳  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}],[-z16/25,{}])  也就是说,只有z=-16/25时有解析解,解析解为y=4t/5+1,换成x就是y=4x/5+1.  其它情况没有解析解,至少matlab找不到解析解.  在无法求得解析解的情况下,可以用matlab的ode45等函数求解微分方程.<p class="nav-title mt10" style="border-top:1px solid #ccc;padding-top: 10px;">林贤福的回答:<div class="content-b">网友采纳  我也知道求不出解析解,主要是能用ode45求出数值解吗?因为用ode系列函数求,貌似都要两个边界条件,一个是y(0)=,y'(0)=...,而我现在只有y=0处,y'=0;x=0处,y=0.8这样的边界条件,所以不知道如何去求他的数值解。。<p class="nav-title mt10" style="border-top:1px solid #ccc;padding-top: 10px;">刘立军的回答:<div class="content-b">网友采纳  。。。转化为微分方程组求解啊。这。。。令h=然后变成关于h的微分方程,这样ode就可以解了。数学功底不够的话可以去查相关的资料,有时间我再详细给你说。
页: [1]
查看完整版本: 用matlab解微分方程,有了边界条件求利用matlab解微分方程:y#39;#39;=y*(z+y#39;^2)^(3/2)初始条件:y=0处,y#39;=0;x=0处,y=0.