带边界条件的ODE求解系统

时间:2020-02-10 14:18:13

标签: python scipy ode odeint

我正在尝试使用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()

0 个答案:

没有答案