func(101)返回的数组的大小与y0(1)的大小不匹配

时间:2019-01-14 02:31:30

标签: python odeint

首先,我对编程非常陌生,尤其是python。

我遇到以下错误,

“ func(101)返回的数组的大小与y0(1)的大小不匹配。”

我知道我的错误是我的“ Step”变量的结果。

我尝试使用for循环来迭代我的“步骤”,如代码所示,但仍然出现以下错误。

编辑: 我知道出现以下错误-

“ TypeError:'int'对象不可迭代”

#------------------------------------------------------------------------------
#Notes
"""
Practicing ODEINT using a step 

"""
#------------------------------------------------------------------------------
#Import Packages
import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt
#------------------------------------------------------------------------------

#Define Model

def model(y,x,m):
    dydt = m
    return dydt

# x Domain
x = np.linspace(0,100,101)

# Initial Condition
y = 0

# Step
m = np.zeros(len(x))
for i in range(10):
    m[i*10:] = i+1

#Results
Results = np.zeros(len(x))

#Initializing ODEINT    
for value in (len(m)):
    Results[value] = odeint(model,y,x,args=(m[value],))
    y = Results[value]

通过使用阶跃变量,我希望获得一个斜率每10秒变化一次的图形。

0 个答案:

没有答案