1
する機能を一般:ODE Iは、式の次のシステムを有するソルバ
#dY0=/dt = k1*S - k2*Y1*Y0
#dY1/dt = k3*S - k4*Y1
S(t)がtに一の単位によってように= 4、8、12とを増加させる階段関数である
。私のコードは次のとおりです:
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint
def stp(t):
if t < 4 and t >= 0:
return 0.0
if t < 8 and t >= 4:
return 1.0
if t < 12 and t >= 8:
return 2.0
if t < 16 and t >= 12:
return 3.0
if t < 20 and t >= 16:
return 4.0
else:
return 5.0
#Initial conditions:
y0 = np.array([1,0])
#Time
t = np.linspace(0, 20, 100)
def f(y,t):
s=stp(t)
k1=2
k2=2
k3=1
k4=1
dy0=k1*s - k2*y[1]*y[0]
dy1=k3*s - k4*y[1]
return (dy0, dy1)
res=odeint(f, y0, t)
私の質問です、私の「STP」機能は、私が指定した時点と同じくらい多くの条件を書き留めていないために改善されるだろうか? (関数を終了するだけの戻り値として5を与えることで終了しますが、時間の長さが増えれば増えるはずです)、つまり、任意の時間長に対して一般的にすること、ジャンプの間隔を指定することができること区分的な機能の予め
おかげ
どうもありがとうございました!それは完全に働いた – Mau