(已更新全部错误)用ode45解微分方程组报错Error in ode。
5 次查看(过去 30 天)
显示 更早的评论
现在已把错误的完整版更新了:
如题,
用ode45解微分方程组报了如下错:

Subscript indices must either be real positive integers or logicals.
Error in pwing (line 48)
p1(a)=-mW*xa*b*(n100*y(2)+n200*y(2)^3)/d;
Error in odearguments (line 88)
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ode45 (line 114)
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...
Error in pwingpics (line 16)
[t,y]=ode45('pwing',[t0,tfinal],x0);
我来说下报错的那p1(a)的表达式,这个表达式没敲错阿,里面的每一个参数都是定义了的诶。
然后最后个错误说是ode45解的地方,这个之前简化版的方程组也是这种形式的,没出现问题。
之前还正常解过比较简单的方程组(6个)。
这次与解上次简单的方程组区别就只有:之前直接给的参数值,这的很多参数都是函数表达式经四则运算后的。
应该差别不大吧
希望有大神帮忙。我估计还是我的p1(a)那一块是不是出现了0或者负值了,不过怎么检验呢。
0 个评论
回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!