Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将scipy.integrate.ode调整为误差公差_Python_Scipy_Ode - Fatal编程技术网

Python 将scipy.integrate.ode调整为误差公差

Python 将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

我刚读过

我下面的代码工作得很好,但是当它解决更复杂的方程而不是我在下面的例子中提供的方程时,它产生的结果,微分方程似乎不准确。是否有办法更改此代码,使其根据指定的绝对值和绝对值自动调整时间步长 相对误差公差?例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
    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的值,请参阅

默认值提供的中等精度足以用于图形,但可能不足以用于其他目的