使用 Scipy odeint 求解多维 ODE 系统

问题描述

我有一个由 4 个耦合微分方程组成的系统,我想为一个 4 维网格求解它。 等式是:

dcP1dt = k1 * cE1
dcE1dt = -k1 * cE1 + k6 * cE3
dcE2dt = -k8 * cE2
dcE3dt = k8 * cE2 - k6 * cE3

我想求解不同时间点 t 和参数 k1、k6 和 k8 不同值的系统。

为了解决我的问题,我使用了 Scipy 'odeint'。对于一维网格,这意味着参数 k1、k6 和 k8 具有固定值,没有问题。但是当我想改变参数 k1 k6 和 k8 时,我不知道如何获得解决方案,那么如何扩展网格。

这是我的一维解决方代码

k1=346.57
k6=44.599
k8=8.6407

def model(z,t):
    dcP1dt = k1 * ckat * z[1]
    dcE1dt = -k1 * ckat * z[1] + k6 * ckat * z[3]
    dcE2dt = -k8 * ckat * z[2]
    dcE3dt = k8 * ckat * z[2] - k6 * ckat * z[3]
    
    dzdt = [dcP1dt,dcE1dt,dcE2dt,dcE3dt]
    return dzdt

z0 = [0,0.028274,0.42945,0.19841]
ckat=0.0001

t = np.linspace(0,200,201)

z = odeint(model,z0,t)

现在我想为不同的参数值扩展 z :

k1_grid = np.linspace(0,500,11)
k6_grid = np.linspace(0,11)
k8_grid = np.linspace(0,11)

我想过创建一个循环来分别计算每个网格点,但我不知道该怎么做。 感谢所有试图提供帮助的人!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)