问题描述
如何在Python中使用odeint在特定时间点放置ODE的初始条件?
所以我有 y(0) = 5 作为初始条件, 以下代码有效::
import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt
# function that returns dy/dt
def model(y,t):
k = 0.3
dydt = -k * y
return dydt
# initial condition
y0 = 5
# time points
t = np.linspace(0,20)
# solve ODE
y = odeint(model,y0,t)
# plot results
plt.plot(t,y)
plt.xlabel('time')
plt.ylabel('y(t)')
plt.show()
我想同时查看负时间线和正时间线中的图表。
所以我把 t = np.linspace(0,20)
改为 t = np.linspace(-5,20)
,但是初始条件取为 y(-5) = 5。
如何解决这个问题?
解决方法
我不认为你可以,根据 docs
但是您可以分别求解正负=LAMBDA(Number,NumberGroup,AddNumbers(
SUM(LEFT(Number,1)),RIGHT(NumberGroup,LEN(NumberGroup)-1)
)
)(L32)
,然后将它们拼接在一起。将相关行替换为
t