ODEi​​ntWarning:在此调用上完成的工作过多(可能是Dfun类型错误)。以full_output = 1运行以获取定量信息

时间:2018-08-03 16:44:30

标签: python

我正在使用python odeint解决一个四维ode系统,并遇到此错误。我看到了一个类似的问题,但答案无济于事。因此,如果有人可以帮助我。感谢您的提前帮助。 下面是正在使用的代码。但请原谅,如果代码未显示为标准python代码:

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

a1 = 0.01; a2 = 0.01; a3 = 0.03; a4 = 0.05;
b1 = 0.03; b2 = 0.05; b3 = 0.1;
c1 = 0.19; c2 = 0.11; c3 = 0.06; c4 = 0.1;
d1 = 0.1; d2 = 0.89; d3 = 0.01;M = 0.99; N = 0.4;

def wrsd(Y,t):
    dxdt = (a1*Y[0])*(1-(Y[0]/M))-a2*Y[1]-a3*Y[2]-a4*Y[3]

    dydt = -b1*Y[1]-b2*Y[2] + b3*Y[0]*(N-(Y[0]-Y[2]-Y[3]));
    dzdt = c1*Y[0] - c2*Y[1]-c3*Y[2]-c4*Y[3];
    dwdt = d1*Y[3]*(Y[0]-d2)-d3*Y[1]

    return [dxdt,dydt,dzdt,dwdt]

Y0 = [424000000000,160700000000,261900000000,1400000000 ]
t = np.linspace(0,15,1000)
x = odeint(wrsd,Y0,t)
xx =x[:,0]
y = x[:,1]
z = x[:,2]
w = x[:,3]

plt.plot(t,xx)
plt.plot(t,y)
plt.plot(t,z)
plt.plot(t,w)

plt._show()

0 个答案:

没有答案