用SciPy数值求解ODE

时间:2018-11-09 22:04:50

标签: python matplotlib scipy differential-equations

我试图找到一个数值解,并最终绘制Gyllenberg-Webb模型(癌细胞生长模型)的图形。该模型如下所示:

enter image description here

其中.then是增殖细胞的繁殖率,PromiseConfirmIdNotSet(userId) .then(() => { SetId(userId, identityId); context.done(null, 'Hello World'); // SUCCESS with message }); 是增殖细胞的死亡率,β是静止细胞的死亡率,µpµqr0的函数(转换率)。也是ri

出于我的目的,我定义了N(t)N(t) = P(t)+Q(t)来简化事情。

我的问题是当我尝试使用pyplot绘制解决方案时

  

ValueError:x和y必须具有相同的第一维度

我想这是不言而喻的,但是我不确定如何在不破坏其他所有内容的情况下进行修复。

到目前为止,我仅对第一个等式完成的代码是:

r_0(N) = bN

2 个答案:

答案 0 :(得分:2)

最后,您将要解决耦合系统。这并不复杂,只需将状态对象设为向量并以正确的顺序返回导数即可。

SELECT tblOpening.fk_OpeningTypeId
    ,Count(tblOpening.Position) AS CountOfPosition
FROM tblOpeningCity
INNER JOIN tblOpening ON tblOpeningCity.OpeningCityID = tblOpening.City
WHERE (
        ((tblOpening.Position) = "Flex Officer")
        AND ((tblOpening.Closed) = No)
        AND (
            (tblOpeningCity.OpeningCity) = "Livermore"
            OR (tblOpeningCity.OpeningCity) = "Pleasanton"
            )
        )
GROUP BY tblOpening.fk_OpeningTypeId;

enter image description here

答案 1 :(得分:1)

您当前正在绘制funtvec。您真正想要的是绘制tvecs1。您还必须在a中定义参数fun;我在以下代码中将其设置为1

import numpy as np
import matplotlib.pyplot as plt
import scipy.integrate


def fun(P, t, params):
    beta, mp, b, N, Q = params
    return (beta-mp-(b*N))*P + (1.0 * N)*Q

params = (0.5, 0.6, 0.7, 0.8, 0.9)

tvec = np.arange(0, 6, 0.1)
s1 = scipy.integrate.odeint(
    fun,
    y0=1.,
    t=tvec,
    args=(params,))

plt.plot(tvec, s1)
plt.show()

这将绘图:

enter image description here