单摆微分方程求解:x''+(g/l)sin(x)=0, 用Matlab求解,求助大神们帮我看看要怎么改呀?十分感谢。

functiondphi=Pendel_DGL(t,x)g=9.81;l=1;dphi_1=x(2);dphi_2=-g/l*sin(x(1));dphi=[dphi_1... function dphi=Pendel_DGL(t,x)
g= 9.81;
l= 1;
dphi_1=x(2);
dphi_2=-g/l*sin(x(1));
dphi= [dphi_1;dphi_2];
[t,x]=ode45(Pendel_DGL,[0,4],[pi/2,0])

实在不知道要怎么改了呀? 我觉得思路没有错误呀
展开
宇逸ycl
2013-12-02 · TA获得超过4088个赞
知道大有可为答主
回答量:1589
采纳率:50%
帮助的人:1821万
展开全部
  • 1. 这段程序基本没有什么错误,只是在最后调用ode45求解时候,格式有点错误,修改一下就能运行了:[t,x]=ode45(@Pendel_DGL,[0,4],[pi/2,0])

  • 2. 在编程时候,在help里面可以找到很多例子,一般来说照着例子来编程,基本不会发生错误,如下:

  子程序:

  function dx=myfun(t,x)

  g=9.81;

  l=1;

  dx=zeros(2,1);

  dx(1)=x(2);

  dx(2)=-g/l*sin(x(1));

  计算程序:

  >> tspan=[0 4];

  >> x0=[pi/2 0];

  >> [t,x]=ode45(@myfun,tspan,x0);

  >>

  • 3.  目前使用匿名函数比较多,而且比较方便:

  >> clear

  >> g=9.81;

  >> l=1;

  >> fun=@(t,x)[x(2);-g/l*sin(x(1))];

  >> tspan=[0 4];

  >> x0=[pi/2 0];

  >> [t,x]=ode45(fun,tspan,x0);

  >>

更多追问追答
追问

谢谢你,我加上了@,然后在命令窗口输入计算程序,还是有错误,麻烦您再帮我看看是什么错误,还要怎么改呀?

追答
看看你的子函数m文件的名称是否和function函数名称一致,不一样调用不了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式