wh1125 发表于 2007-5-30 22:16

维数出错问题

第一个微分方程:x''+g/l*x=0
function xd=danbai(t,x,flag,g,l)
xd=;
第二个微分方程:x''+g/l*sinx=0
function xd=hundun(t,x,flag,g,l)
xd=;

调用程序部分:
g=input('重力加速度g='); l=input('摆长l= ');
theta1=input('小角度振动初位置的摆角theta1=');
theta2=input('大角度振动初位置的摆角theta2=');
t_final=10;%定义仿真终止时间
=ode45('danbai',,,[],g,l);%求解出小角度振动的时间向量t及与t对应的状态向量x1
=ode45('hundun',,,[],g,l);%求解出大角度振动的时间向量t及与t对应的状态向量x2
subplot(221);plot(t,x1(:,1));%在图像窗口分配绘图区域并绘制小角度振动的摆角与时间的曲线
subplot(222);plot(x1(:,1),x1(:,2));%在图像窗口分配绘图区域并绘制小角度振动的相图(摆角与角速度之间的曲线)
subplot(223);plot(t,x2(:,1));%在图像窗口分配绘图区域并绘制大角度振动的摆角与时间的曲线
subplot(224);plot(x2(:,1),x2(:,2));%在图像窗口分配绘图区域并绘制大角度振动的相图(摆角与角速度之间的曲线)

输入初始数据(g=9.8,l=1不变),但小的角度和大的角度,加入输入0.04和0.4,0.05和0.5,0.06和0.6这些组合可以,假如是0.07和0.7,0.08和0.8,0.02和0.6就会出错,出错的提示都一样:
??? Error using ==> plot
Vectors must be the same lengths.

Error in ==> danbai_hundun at 8
subplot(221);plot(t,x1(:,1));%在图像窗口分配绘图区域并绘制小角度振动的摆角与时间的曲线

[ 本帖最后由 ChaChing 于 2010-6-14 09:48 编辑 ]

eight 发表于 2007-5-30 22:17

这类问题建议自己调试一下

[ 本帖最后由 ChaChing 于 2010-6-14 09:45 编辑 ]

wh1125 发表于 2007-5-30 22:25

关键是我自己都不知道问题出在哪里,有的运行可以,有的却出错??:@L

已经找出问题,呵呵~~

[ 本帖最后由 ChaChing 于 2010-6-14 09:46 编辑 ]

eight 发表于 2007-5-30 23:45

恩,把正确和错误的两种情况都分别调试一下,相信结果就出来了

[ 本帖最后由 ChaChing 于 2010-6-14 09:46 编辑 ]
页: [1]
查看完整版本: 维数出错问题