У меня небольшие проблемы с попыткой понять, что не так с моим кодом, любая помощь будет чрезвычайно полезна. Я хотел решить это простое уравнение
Однако значения, которые дает мой код, не совпадают с моими книжными или вольфрамовыми, поскольку y растет по мере роста x.
import matplotlib.pyplot as plt
from numpy import exp
from scipy.integrate import ode
# initial values
y0, t0 = [1.0], 0.0
def f(t, y):
f = [3.0*y[0] - 4.0/exp(t)]
return f
# initialize the 4th order Runge-Kutta solver
r = ode(f).set_integrator('dopri5')
r.set_initial_value(y0, t0)
t1 = 10
dt = 0.1
x, y = [], []
while r.successful() and r.t < t1:
x.append(r.t+dt); y.append(r.integrate(r.t+dt))
print(r.t+dt, r.integrate(r.t+dt))
dt
. Вы заметите, что ушли дальше, прежде чем он взорвется. Когда вам нужно делать слишком маленькие шаги, когда точное решение довольно гладкое, вы должны подозревать, что ваше ОДУ жесткое: en.wikipedia.org/wiki/Stiff_equation - person Klimaat   schedule 19.04.2017