用MATLAB数值法求解微分方程的解
求D2y+3*Dy+2*y=0的特解,其中D2y为y对x的二阶导数,Dy为dy/dx,初值y(0)=1,Dy(0)=18。并画出x在[0,10]之间y的曲线。自己根据书上...
求D2y+3*Dy+2*y=0的特解,其中D2y为y对x的二阶导数,Dy为dy/dx,初值y(0)=1,Dy(0)=18。
并画出x在[0,10]之间y的曲线。
自己根据书上的例子做了遍,但图象和求的解析解的图象不一样ORZ
还望高手帮助解答,谢谢! 展开
并画出x在[0,10]之间y的曲线。
自己根据书上的例子做了遍,但图象和求的解析解的图象不一样ORZ
还望高手帮助解答,谢谢! 展开
2个回答
展开全部
先定义个函数:
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')
我作过,能做出图像的。
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')
我作过,能做出图像的。
展开全部
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)
%解出y(x)后,再画图
x=sym(0:0.01:10);
y1=20*exp(-x) - 19*exp(-2*x);
plot(x,y1)
更多追问追答
追问
恩这个是解析解的方法,我做出来了,但用数值法怎么解?
追答
把你的数值解法发过来,我给你调试一下
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询