用MATLAB数值法求解微分方程的解

求D2y+3*Dy+2*y=0的特解,其中D2y为y对x的二阶导数,Dy为dy/dx,初值y(0)=1,Dy(0)=18。
并画出x在[0,10]之间y的曲线。

自己根据书上的例子做了遍,但图象和求的解析解的图象不一样ORZ
还望高手帮助解答,谢谢!

先定义个函数:
function
f=fffff(t,y)
f=[y(2);cos(y(1))];
然后
[t,y]=ode45(@fffff,[0,2],[0,0]);
plot(t,y(:,1),'r',t,y(:,2),'b')
即可。我给你设了初值【0,0】,你可以自己定义。红线为y,蓝线为y'.
你先把上面的函数fffff写成m文件,保存到你的matlab工作目录里,然后再在命令窗口输入:
[t,y]=ode45(@fffff,[0,2],[0,0]);
plot(t,y(:,1),'r',t,y(:,2),'b')
我作过,能做出图像的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-14
y=dsolve('D2y+3*Dy+2*y=0','y(0)=1','Dy(0)=18','x')
%解出y(x)后,再画图
x=sym(0:0.01:10);
y1=20*exp(-x) - 19*exp(-2*x);
plot(x,y1)追问

恩这个是解析解的方法,我做出来了,但用数值法怎么解?

追答

把你的数值解法发过来,我给你调试一下

追问

发到你私信了,请注意查看!

本回答被提问者和网友采纳
相似回答