2
我剛開始使用python進行科學繪圖來繪製微分方程的數值解。我知道如何使用scipy.odeint
來求解和繪製單個微分方程,但不知道微分方程的系統。我如何繪製下面的耦合系統?在Python中繪製微分方程的系統
N' = a * N - (C/(1+C)) * b * N
C' = (C/(1+C)) * N - C + 1
a = 4
b = 7
N(0) = 100
C(0) = 5
我剛開始使用python進行科學繪圖來繪製微分方程的數值解。我知道如何使用scipy.odeint
來求解和繪製單個微分方程,但不知道微分方程的系統。我如何繪製下面的耦合系統?在Python中繪製微分方程的系統
N' = a * N - (C/(1+C)) * b * N
C' = (C/(1+C)) * N - C + 1
a = 4
b = 7
N(0) = 100
C(0) = 5
只要定義所有的變量作爲空間矢量,然後應用集成:
import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt
def f(s,t):
a = 4
b = 7
n = s[0]
c = s[1]
dndt = a * n - (c/(c+1)) * b * n
dcdt = (c/(c+1)) * n - c + 1
return [dndt, dcdt]
t = np.linspace(0,20)
s0=[20,5]
s = odeint(f,s0,t)
plt.plot(t,s[:,0],'r--', linewidth=2.0)
plt.plot(t,s[:,1],'b-', linewidth=2.0)
plt.xlabel("t")
plt.ylabel("S[N,C]")
plt.legend(["N","C"])
plt.show()