Python odeint错误与ODE系统

2024-09-26 22:50:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我用的是一个非常简单的微分方程组:

from __future__ import division
import numpy as np
from scipy.integrate import odein

def Comp(state, t, u1, k1, y1, u2, k2, y2):
    X1 = state[0]
    X2 = state[1]
    S = state[2]
    dX1 = u1*(S/(k1+S))*X1
    dX2 = u2*(S/(k2+S))*X2
    dS = -(1/y1)*u1*(S/(k1+S))*X1 -(1/y2)*u2*(S/(k2+S))*X2
    return [dX1, dX2, dS]
time = np.linspace(0, 10000, 100000)
states = odeint(Comp, [0.5, 0.5, 365], time, args=(0.25, 2, 0.35, 0.25, 1, 0.7))
print(states[-1])

[  8.48291791e+01   8.73416418e+01  -7.74542370e-39]

SX为浓度。因为S永远不应该是负数,但是当我用odeint S解这个系统时,经过一段时间后总是变成负数。。。你知道吗

我能以某种方式实施所期望的行为吗?你知道吗


Tags: fromimportnpk2k1statex1x2

热门问题