Я пытаюсь решить систему обыкновенных дифференциальных уравнений (ODE), используя python. У меня есть система из пяти ODE с пятью переменными (T, U, V, W, I) . Он изменяется со временем (т) . Пока что приведенный ниже код отлично работает с python package odeint .
Я хочу решить ту же систему из 5 ODE, используя solve_bvp с граничным условием y (0) = 0 и y (1) = 1 . Я пробовал это несколько раз с solve_bvp , но безуспешно.
Во-вторых, я также хочу знать, возможно ли решить многоточечные граничные значения, используя sovle_bvp . Если нет, то есть ли в python какой-либо другой способ ее решить. Что я прочитал в solve_bvp , так это в том, что эта функция численно решает систему ОДУ первого порядка с учетом двухточечных граничных условий. Спасибо
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()