ошибка при решении системы дифференциальных уравнений с помощью SciPy.PYTHON

необходимо решить систему дифференциальных уравнений и построить график с помощью модулей numpy, matplotlib.pyplot, scipy. Есть система уравнений рисунок 1 и входные данные рисунок 2. Ввел вё как надо но выдает ошибку.

ОШИБКА:

Traceback (most recent call last):
  File "C:\Users\srvadm\Desktop\еще.py", line 31, in <module>
    plt.plot(t,v)
  File "C:\Users\srvadm\AppData\Local\Programs\Python\Python310\lib\site-packages\matplotlib\pyplot.py", line 2740, in plot
    return gca().plot(
  File "C:\Users\srvadm\AppData\Local\Programs\Python\Python310\lib\site-packages\matplotlib\axes\_axes.py", line 1662, in plot
    lines = [*self._get_lines(*args, data=data, **kwargs)]
  File "C:\Users\srvadm\AppData\Local\Programs\Python\Python310\lib\site-packages\matplotlib\axes\_base.py", line 311, in __call__
    yield from self._plot_args(
  File "C:\Users\srvadm\AppData\Local\Programs\Python\Python310\lib\site-packages\matplotlib\axes\_base.py", line 504, in _plot_args
    raise ValueError(f"x and y must have same first dimension, but "
ValueError: x and y must have same first dimension, but have shapes (50,) and (4, 50)

МОЙ КОД:

################################подключение необходимых библиотек####################
import math 
import numpy as np
import matplotlib.pyplot as plt
from scipy import integrate
##############################определение функции,вычисляющую правую часть системы###
def sir_model(t, y, B, p, g, k, R):
    v, h, l, teta = y
    dv_dt = ((-B*v*v*p)/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.sin(teta))/v)*((1-v*v)/(g*R))
    return dv_dt, dh_dt, dl_dt, dteta_dt
################################исходные данные######################################   
k = 3.2
B = .006
p = .225
g = 9.81
R = 6371000
v0 = 7000
l0 = 0
h0= 80000
teta0 = -0.349
###########################решатель##################################################
T = 50
sol = integrate.solve_ivp(sir_model, [0,T], [v0,h0,l0,teta0], dense_output = True,args = [k,B,p,g,R])
###########################ВИЗУАЛИЗАЦИЯ##############################################
t = np.linspace(0, T)
y = sol.sol(t)
v, h, l, teta = y[0 :], y[1, :], y[2, :], y[3, :]
plt.plot(t,v)
plt.plot(t,h)
plt.plot(t,l)
plt.plot(t,teta)
pass

Подскажите, пожалуйста, как мне получить график введите сюда описание изображения введите сюда описание изображения


Ответы (0 шт):