我正在尝试使用python解决Brusselator model,一个非线性ODE。我以前用MATLAB做这个,但现在正在用python作为后端构建一个应用程序。这就是我想切换ti python的原因。
dx/dt = A + (x^2)(y) - Bx - x
dy/dt = Bx - (x^2)(y)
我检查了stackoverflow,我发现的大多数例子都是简单的非线性ODE,只有一个变量可以转换成线性方程组。 [ - 抱歉我的记谱法。我不知道如何在stackoverflow中添加乳胶]
答案 0 :(得分:0)
我知道这是一个老问题。不过,我设法在下面的代码中提出了您的问题。
在那里,我在一个函数中实现了两个微分方程,后来我通过scypy的ODEINT模块对其进行了集成。
我希望这能回答您的问题。
真诚的,
import scipy.integrate
import numpy as np
import matplotlib.pyplot as plt
def Integrate(y, t, B, A):
X, Y = y
dX_dt = A + (X**2)*(Y) - B*X - X
dY_dt = B*X - (X**2)*(Y)
return [dX_dt, dY_dt]
A0 = 0.9
B0 = 0.6
X0 = 0.1
Y0 = 0.0
B0 = 0.35
t = np.linspace(0,100, 10000)
solution = scipy.integrate.odeint(Integrate, y0=[X0, Y0], t=t, args=(A0, B0) )
plt.plot(t, solution[:,1], label='solution')
plt.legend()
plt.xlabel('time')
plt.ylabel('Y')
plt.show()