ValueError: diff требует ввода, по крайней мере, одного измерения - PullRequest
0 голосов
/ 22 сентября 2019

Я изучал, как решать дифференциальные уравнения в 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), но не для числа в этом интервале? Есть способ исправить это? Спасибо большое.

...