首先,我对编程非常陌生,尤其是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秒变化一次的图形。