如何描述ODE方程的循环?

3次浏览(过去30天)
法拉
法拉 2023年2月8日
评论道: 法拉2023年2月9日
我试图用MATLAB ODE求解器求解一组ODE方程,但我不知道如何定义我的方程的循环。如果有人能帮助我,我将不胜感激。
这些是ODE方程:
O I S是组分的摩尔浓度
(N= 100)及(j = 1:100)

接受的答案

Bjorn Gustavsson
Bjorn Gustavsson 2023年2月8日
编辑:Bjorn Gustavsson 2023年2月8日
为这些耦合ode编写一个函数。在这个函数中,您可以使用您能想到的所有常规编程工具和技巧。像这样的东西应该工作:
函数dOISdt = your_chemistry_ode(t,OIS,kP,kD)
O = OIS(1:end-2);
I = OIS(end-1);
S = OIS(结束);
dSdt = kD*I;
dIdt = kP*sum(O(1:end-1)) - kD*I;
dOdt = 0 (size(O(:)))
dOdt(1) = -kP*O(1);不太清楚你想如何对待O的第一个品种
i1 = 2:数字(O)
dOdt(i1) = kP*(O(i1-1)-kP*O(i1));
结束
dOISdt = [dOdt;dIdt;dSdt];
结束
然后,将其与任何odenn函数集成应该相当简单:
初始条件
我只是模仿一些东西,完全不知道是什么链
% 100种物种向I和S you模型衰减
O0 = [100;rand(99,1)];
I0 = pi;
S0 = 0;
Ois0 = [o0; i0; s0];
kP = 1e6;%反应率,也不知道时间常数
kD = 1e4;
T_span = linspace(0,1,1e6+1);%相同,ms的步长为1 s…
[tOut,OISout] = ode45(@(t,IOS) your_chemistry_ode(t,OIS,kP,kD),t_span,OIS0);
HTH
9日评论
法拉
法拉 2023年2月9日
@Bjorn Gustavsson 非常感谢你的提示。我一定会使用这个入口材料来提高我的编程技能。

登录评论。

更多答案(0)

类别

了解更多通用应用程序帮助中心而且文件交换

世界杯预选赛小组名单社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!世界杯预选赛小组名单

开始狩猎!

Baidu
map