使用ODE45从三个第一阶ODES的系统返回不正确的图形

1次查看(最近30天)
迈克尔温斯根
迈克尔温斯根 20月2日
我使用这个系统ODE的代表在CSTR生物膜生长的(S - 浓度限制性底物的,U - 浮游/自由细菌,W-分布区aherent /附着的细菌的生物质密度的生物质浓度):
要在左侧制作以下图:
我已经附加了所有常量变量,也是我获得了我的初始值的信息,以及我的时间。我正在使用ode45,但我似乎无法获得上面的图表并获得警告(无法满足集成公差而不降低允许的最小值的步长)。该文件使用缩放变量,因此我不确定我是否必须执行相同,或者使用实际初始值(s,u和w而不是sbar,ubar,wbar,如纸张所示)。我附上了一个我正在使用的文件的链接,以防我错过了解决我问题所需的任何重要信息。下面是我的matlab代码,在我的运行文件中我使用未划算的初始值和ode45。
函数dxdt = tester(t,x)
s = x(1);
u = x(2);
w = x (3);
%%常数变量(正确)
wmax = 2.78 * 10 ^ -6;
伽玛= 0.5;
beta = 0.1;
s01 = 2.09 * 10 ^ 6;
alpha = 3000;
Sigma = 6/1;
a = 9 * 10 ^ -7;
m = 1.66;
d = 0.23;
k = 0;
kw = 0;
%%等式(正确)
W = (W / wmax);
FS =((m * s)/(a + s));
GW = ((1 w) / (1.1 - w));
%%微分方程(正确)
dxdt(1)=(d *(s01-s)) - (((u * fs)+(sigma * w * fs))/伽玛);
dxdt(2) = (u*(fs-D-k))+(beta*sigma*w)+(sigma*w*fs*(1-GW))-((alpha*u)*(1-W));
dxdt(3)=(w *((fs * gw)-beta-kw))+(((alpha * u)*(1-w))/ sigma);
dxdt = dxdt ';
结尾
这是我的运行文件:
%%运行文件
s01 = 2.09 * 10 ^ 6;
a = 9 * 10 ^ -7;
wmax = 2.78 * 10 ^ -6;
伽玛= 0.5;
%%初始条件(不确定是否正确)
S0 =(S01);
U0 = 10 ^ -5 *伽玛* a;
W0 = 0.
Y0 = [s0 u0 w0];
tspan = [0 160];
[t,x] = ode45(@ tester,tspan,y0);
%%密度图与时间(不正确 - 不匹配纸)
绘图(t,x(:,1),t,x(:,2),t,x(:,3))
传奇(''U''W'
谢谢你的帮助,我真的很感激
2评论
迈克尔温斯根
迈克尔温斯根 20月8日
我解决了这个问题,我列出的纸张模拟参数不正确,谢谢你的帮助我很欣赏它。

登录评论。

答案(0)

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!