运行时返回数组大小错误Python

时间:2018-04-17 08:44:27

标签: python arrays parameters differential-equations odeint

我试图用odeint函数求解一个简单的微分方程。它给出了匹配数组大小的错误。我认为我的 initial_condi 等式功能不匹配。我无法弄清楚错误究竟在哪里。 Blow是错误和代码。任何帮助将不胜感激。

RuntimeError:func(1)返回的数组大小与y0(3)

的大小不匹配
from scipy import *
from scipy.integrate import odeint
from operator import itemgetter
import matplotlib as plt
from matplotlib.ticker import FormatStrFormatter
from pylab import *
from itertools import product
import itertools
from numpy import zeros_like
import operator

initial_condi = [1, 1, 1]
t_range = arange(0.0,60.0,1.0)

def equation(w, t):

    T,I,V = w
    dT= V*I*10.24-T*1.64

    return  dT


result_init = odeint(equation, initial_condi, t_range)

plt.plot(t, result_init[:, 0])
plt.show()

1 个答案:

答案 0 :(得分:0)

由于你的状态向量有3个组件,ODE函数的返回值也需要有3个组件,即T,I,V的导数。您只提供了dT,但应return [dT, dI, dV ]