相关疑难解决方法(0)

scipy.integrate.ode.set_solout有用吗?

scipy.integrate.ode集成例程的接口提供了一种在任何步骤违反约束时停止集成的方法set_solout.但是,即使在最简单的示例中,我也无法使用此方法.这是一次尝试:

import numpy as np
from scipy.integrate import ode

def f(t, y):
    """Exponential decay."""
    return -y

def solout(t, y):
    if y[0] < 0.5:
        return -1
    else:
        return 0

y_initial = 1
t_initial = 0

r = ode(f).set_integrator('dopri5') # Integrator that supports solout
r.set_initial_value(y_initial, t_initial)
r.set_solout(solout)

# Integrate until t = 5, but stop when solout constraint violated
r.integrate(5)

# The time when solout should have terminated integration:
intersection_time = np.log(2)
Run Code Online (Sandbox Code Playgroud)

集成应该在solout时停止t = log(2) = 0.693...,但是很快就会继续,直到 …

python scipy ode

6
推荐指数
1
解决办法
1529
查看次数

标签 统计

ode ×1

python ×1

scipy ×1