Python 将scipy.integrate.ode调整为误差公差
我刚读过 我下面的代码工作得很好,但是当它解决更复杂的方程而不是我在下面的例子中提供的方程时,它产生的结果,微分方程似乎不准确。是否有办法更改此代码,使其根据指定的绝对值和绝对值自动调整时间步长 相对误差公差?例10^-8Python 将scipy.integrate.ode调整为误差公差,python,scipy,ode,Python,Scipy,Ode,我刚读过 我下面的代码工作得很好,但是当它解决更复杂的方程而不是我在下面的例子中提供的方程时,它产生的结果,微分方程似乎不准确。是否有办法更改此代码,使其根据指定的绝对值和绝对值自动调整时间步长 相对误差公差?例10^-8 from scipy.integrate import ode initials = [0.5,0.2] integration_range = (0, 30) def f(t,X): x,y = X[0],X[1] dxdt = x**2 + y
from scipy.integrate import ode
initials = [0.5,0.2]
integration_range = (0, 30)
def f(t,X):
x,y = X[0],X[1]
dxdt = x**2 + y
dydt = y**2 + x
return [dxdt,dydt]
X_solutions = []
t_solutions = []
def solution_getter(t,X):
t_solutions.append(t)
X_solutions.append(X.copy())
backend = "dopri5"
ode_solver = ode(f).set_integrator(backend)
ode_solver.set_solout(solution_getter)
ode_solver.set_initial_value(y=initials, t=0)
ode_solver.integrate(integration_range[1])
您可以在set_integrator调用中设置rtol和atol的值,请参阅 默认值提供的中等精度足以用于图形,但可能不足以用于其他目的