声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1221|回复: 0

[编程技巧] 用ode算的时候总是报一个很奇怪的错误,周围的同学都没有遇到过,还请高手指教

[复制链接]
发表于 2012-9-18 10:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
主程序是这样
function main
tspan=[0,100];
y0=zeros(12,1);
[t,y]=ode45(@odefun,tspan,y0);

方程的程序、
function f=odefun(t,y)
global w0 w v z f g p                         %这些变量都在另外一个文件里面赋值了
dy=zeros(12,1);
dy(1)=y(2);
dy(2)=p(1)*sin(w0*t+z(1))-w(1)*w(1)*y(1)-2*f(1)*w(1)*y(2);
dy(3)=y(4);
dy(4)=-v(1)*v(1)*y(3)-2*g(1)*v(1)*y(4);
dy(5)=y(6);
dy(6)=p(2)*sin(w0*t+z(2))-w(2)*w(2)*y(5)-2*f(2)*w(2)*y(6);
dy(7)=y(8);
dy(8)=-v(2)*v(2)*y(7)-2*g(2)*v(2)*y(8);
dy(9)=y(10);
dy(10)=p(3)*sin(w0*t+z(3))-w(3)*w(3)*y(9)-2*f(3)*w(3)*y(10);
dy(11)=y(12);
dy(12)=-v(3)*v(3)*y(11)-2*g(3)*v(3)*y(12);

运算报的错误是
??? Error using ==> funfun\private\odearguments
Solving ODEFUN requires an initial condition vector of length 3.

Error in ==> ode45 at 173
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...
还请高手给指教一下,到底是哪里出问题?说需要一个长度是三的初始条件向量究竟指的是什么?
烦请有什么想法的都能够留言,没准大家可以相互给点灵感。多谢了!
回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-25 10:26 , Processed in 0.059363 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表