微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用八度在Odeset中设置InitialStep和/或MaxStep

如何解决使用八度在Odeset中设置InitialStep和/或MaxStep

我正在Octave中使用ode45,在我解决了几个问题之后,尽管如此,我似乎仍想使用odeset命令修复InitialStep和/或MaxStep,但是在ode45中使用它似乎无法正常工作。有想法吗?

参数

ks27=9.2730e+03; % [pmol/cell.h]
phi27=3.977e+03; % [pmol/cell.h]

ks28=0.537;
phi28=6.697e-06;

ks29=6.683e+05;
phi29=6.697e-06;  % X<- a(1) /S2<-(a2)

功能

a(1)*phi29*a(2)/(ks29+a(2))];
f = @(t,a)[a(1)*phi27*a(2)/(ks27+a(2)); a(1)*phi28*a(2)/(ks28+a(2)) ];

初始条件

a0=[0.09;2.85];
T= [0    28    54    76   101   124   147]';
t0= [0 :147];
options = odeset('InitialStep',1,'MaxStep',10,'RelTol',1e-10,'AbsTol',1e-10);
[tspan,a]=ode45(f,t0,a0);

错误

[tspan,a] 警告:解决不成功。在到达tend = 147.000000的端点之前,迭代积分循环在时间t = 13.000000退出。如果步长变得太小,可能会发生这种情况。尝试使用命令“ odeset”减小“ InitialStep”和/或“ MaxStep”的值。 警告:来自 第312行第7列的Integrated_adaptive ode45在232行第12列 ans =

     0.00000         0.09000         2.85000
     1.00000         0.30544         2.85000
     2.00000         1.03653         2.85000
     3.00000         3.51786         2.85002
     4.00000        11.93926         2.85005
     5.00000        40.52089         2.85019
     6.00000       137.53848         2.85063
     7.00000       467.01498         2.85215
     8.00000      1587.77954         2.85731
     9.00000      5421.66890         2.87491
    10.00000     18790.36941         2.93558
    11.00000     68629.03195         3.15295
    12.00000    306808.87116         4.05108
    13.00000   4471512.33678        11.76504

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。