Питон. Увеличение числа p в соответствии с полученным другим значением h
есть таблица соответствий p к h .Если система дифференциальных уравнений позволяет найти значение h то p задать значения соответствующие из таблицы не получается, я нашел среднее арифметическое изменение с шагом h = 2000м,и просто прибавил к p :0,0551 . с уменьшением h возрастает p.Но h меняется не однозначно , как в питоне задать то соответствие, помогите ,пожалуйста . мой код:
[![################################подключение необходимых библиотек####################
import math
import numpy as np
import matplotlib.pyplot as plt
from scipy import integrate
##############################определение функции,вычисляющую правую часть системы###
def sir_model(t, y, B, g, R, k):
v, h, l, teta, p = y
dv_dt = ((-0.5*B*p*v*v)/2)-((g*math.sin(teta)))
dh_dt = v*math.sin(teta)
dl_dt = v*math.cos(teta)
dteta_dt = ((B*k*v*p)/2)-((g*math.cos(teta))/v)
dp_dt = p+0.0551
return dv_dt, dh_dt, dl_dt, dteta_dt, dp_dt
################################исходные данные######################################
k = .1
B = .006
p0 = .0136
g = 9.81
R = 6371000
v0 = 3000
l0 = 0
h0= 30000
teta0 = 20
###########################решатель##################################################
T = 30
sol = integrate.solve_ivp(lambda t, y: sir_model(t, y, B ,g, R, k), \[0,T\], \[v0,h0,l0,teta0,p0\], dense_output = True)
###########################ВИЗУАЛИЗАЦИЯ##############################################
t = np.linspace(0, T, 50)
y = sol.sol(t)
v, h, l, teta, p = y\[0,:\], y\[1,:\], y\[2,:\], y\[3,:\], y\[4,:\]
pass][1]][1]
мои результаты в корне не верны см рис 1 и таблицу ниже
h p
0 1,2250
500 1,1673
1000 1,1117
1500 1,0581
2000 1,0065
2500 0,9569
3000 0,9093
4000 0,8194
5000 0,7365
6000 0,6601
7000 0,59
8000 0,5258
9000 0,4671
10 000 0,4135
11 000 0,3648
12 000 0,3119
14 000 0,2279
16 000 0,1665
18 000 0,1216
20 000 0,0889
24 000 0,0469
28 000 0,0251
32 000 0,0136
36 000 7,26⋅10−3
40 000 4,00⋅10−3
50 000 1,03⋅10−3
60 000 3,00⋅10−4
80 000 1,85⋅10−5
100 000 3,19⋅10−2
