我有一对微分方程,我已经学会了如何求解:
dc/dt=r*c+c^2-c^3-b*c*u, du/dt=-g*u+(b*c*u)/2,
其中r,b,g是常数(没有假设r,但b和g是正数)。所以我解决这些的代码是:
from scipy.integrate import odeint
import numpy as np
import matplotlib.pyplot as plt
b=2
g=0.1
def func(z,t):
c = z[0]
u = z[1]
dcdt = r*c+c**2-c**3-b*c*u**2
dudt = -g*u+0.5*b*c*u
return [dcdt,dtaudt]
#inital conditions
z0 = [1,0.2] #u[0] =!0.0
#time points
t = np.linspace(0,20,100)
#solve ODE
z = odeint(func,z0,t)
#seperating answers out
c = z[:,0]
u = z[:,1]
我希望这是正确的方法。如果没有,请让我知道我的错误。我有两个问题。
n=6
我们可以在python上为i求解dcdt [i]的微分方程,直到6。我想要这样做是因为我想更改方程,以便dcdt [i]可能取决于dcdt [i-1]或dcdt [i + 1]等。
有人可以帮我吗?预先感谢。