当前位置: 首页 > 工具软件 > ODE > 使用案例 >

matlab求解器是什么,Matlab理解ode求解器

洪开济
2023-12-01

我有一个链接微分方程组,我用ode23求解器求解 . 当达到某个阈值时,其中一个参数会改变,这会改变我的函数的斜率 .

我使用调试功能跟踪了ode的行为,并注意到它在这个点附近开始跳回“时间” . 基本上它会生成更多的数据点 . 但是,这些并不都在最终的解决方案向量中表示 .

有人可以解释这种行为,特别是为什么不是所有计算值都能找到解决方案向量的方法?

//编辑:为了澄清,当v从0更改为任何其他值时,行为开始 . (当我将v的每个值写入向量时,它具有超过1000个组件,而ode求解器解决方案只有~300) .

找到我的方程式代码如下:

%chemostat model, based on:

%DCc=-v0*Cc/V + umax*Cs*Cc/(Ks+Cs)-rd

%Dcs=(v0/V)*(Cs0-Cs) - Cc*(Ys*umax*Cs/(Ks+Cs)-m)

function dydt=systemEquationsRibose(t,y,funV0Ribose,V,umax,Ks,rd,Cs0,Ys,m)

v=funV0Ribose(t,y); %funV0Ribose determines v dependent on y(1)

if y(2)<0

y(2)=0

end

dydt=[-(v/V)*y(1)+(umax*y(1)*y(2))/(Ks+y(2))-rd;

(v/V)*(Cs0-y(2))-((1/Ys)*(umax*y(2)*y(1))/(Ks+y(2)))];

提前致谢!

干杯,dahlai

 类似资料: