我正在尝试使用python解决一个常微分方程(ODE)系统。我有一个包含五个变量 (T,U,V,W,I) 的五个ODE的系统。它随时间 (t) 而变化。到目前为止,下面的代码与python软件包 odeint 正常工作。
我想使用边界条件为 y(0)= 0 和 y的 solve_bvp 来解决相同的5 ODE系统(1)= 1 。我用 solve_bvp 尝试了几次,但没有成功。
第二,我还想知道使用 sovle_bvp 可以解决多点边界值。如果没有,那么python中还有其他方法可以解决它。我在solve_bvp中读到的是,该函数在数值上求解了受两点边界条件约束的ODE的一阶系统。谢谢
from scipy import *
from scipy.integrate import odeint
from operator import itemgetter
from pylab import *
import itertools
from numpy import zeros_like
import operator
import matplotlib.pyplot as plt
initial_condi = [0.1,0.1,0.1,0.1,0.1]
t = np.arange(0,60,1)
def equation(w, t):
T, U, V,W,I = w
dT = 0.9*I*1*10.24 - T*0.0012
dU = V*T*0.0154 - U*1*0.81
dV = W*0.1*0.12 + U*1*0.81
dW= V*1.64 + 0.7 - W*U*1591.5*1
dI= T*0.0012 + 0.8- 0.9*I*1*10.24
return dT,dU,dV,dW, dI
result_init = odeint(equation, initial_condi, t)
plt.plot(t, result_i[:,0], 'r--')
plt.plot(t, result_i[:,1], 'r--')
plt.plot(t, result_i[:,2], 'r--')
plt.plot(t, result_i[:,3], 'r--')
plt.plot(t, result_i[:,4], 'r--')
plt.show()