Решающая система ОДУ с граничным условием - PullRequest
0 голосов
/ 10 февраля 2020

Я пытаюсь решить систему обыкновенных дифференциальных уравнений (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()
...