lyxxl 发表于 2007-1-22 15:31

请前辈们来看看这个M文件

t0=0;
tf=50;
tspan=
Y0=
=ode113('DYdt',tspan,Y0)
X=YY(:,1);
Y=YY(:,2);
plot(X,Y,'b','linewidth',2);
hold on

function Yd= DYdt(t,Y)
Yd=[Y(4)^2/0.5+1.2*(10*(1+0.2*Y(2))-Y(1))^2;
    Y(3);
    -4*3.14159^2*100*Y(2);
    Y(4)*Y(1)/0.5+1.2*(60*(1+0.2*Y(5))-Y(4))^2;
    Y(6);
   -4*3.14159^2*625*Y(5)]

:@(
为什么t的数列为0
7.9057e-006
2.3717e-005
5.534e-005
0.00011859
0.00024508
0.00049806
0.001004
0.002016
0.0030279
0.0040398
0.0050517
0.0060637
0.0070756
0.0080875
0.0090995
0.010111
0.010617
0.011123
0.011376
0.011629
0.011882
0.012009
0.012072
0.012135
0.012167
0.012198
0.01223
0.012246
0.012262
0.01227
0.012274
0.012278
0.012281
0.012283
0.012284
0.012285
0.012286
0.012287
0.012287
0.012288
0.012288
0.012288
0.012288
0.012288
0.012288
0.012288
0.012288
0.012288
0.012288……呢,怎么能让t从0算到50呢

lyxxl 发表于 2007-1-22 15:32

我是新人,不懂就问,见笑了!

:@L

studyboy 发表于 2007-1-22 17:53

先说一个其他的问题:function中Yd为1×6,初值中Y0仅为1×3,格式不对;
至于你说的那个收敛时间仅为0.012288,可以将收敛误差设置变小;
或者换一下求解方法,具体了解一下ode113适合于解什么样子的方程组。。。。。

lyxxl 发表于 2007-1-23 09:24

谢谢

谢谢楼上的兄弟,Y0是我写的时候漏写了,呵呵,多谢了!
页: [1]
查看完整版本: 请前辈们来看看这个M文件