Я изучал, как решать дифференциальные уравнения в Python с помощью odeint
и для теста, я пытаюсь решить следующие ODE (следующий пример пришел из https://apmonitor.com/pdc/index.php/Main/SolveDifferentialEquations):
# first import the necessary libraries
import numpy as np
from scipy.integrate import odeint
# function that returns dy/dt
def model(y,t):
k = 0.3
dydt = -k*y
return dydt
#Initial condition
y0 = 5.0
# Time points
t = np.linspace(0,20)
# Solve ODE
def y(t):
return odeint(model,y0,t)
Так что, если я строю графикрезультаты с помощью matplotlib или, проще говоря, дают команду print(y(t))
, тогда это прекрасно работает! Но если я попытаюсь вычислить значение функции для фиксированного значения времени, например, t1 = t[2]
(= 0,8163), то получуошибка
t1 = t[2]
print(y(t1))
ValueError("diff requires input that is at least one dimensional")
, почему я могу только вычислить значение для y(t)
для интервала t = np.linspace(0,20)
, но не для числа в этом интервале? Есть способ исправить это? Спасибо большое.