哪些动物可以做网站名,国内网站建设阿里云,网页美工设计入门详解,深圳市做网站有哪些公司我不确定事件处理是否scipy.integrate.solve_ivp工作正常。在下面的例子中#xff0c;我对一个导数进行积分#xff0c;得到一个三次多项式#xff0c;它的根在x-6#xff0c;x-2和x2。我设置了一个事件函数#xff0c;返回y#xff0c;在x值处为零。我希望在解决方案的t…我不确定事件处理是否scipy.integrate.solve_ivp工作正常。在下面的例子中我对一个导数进行积分得到一个三次多项式它的根在x-6x-2和x2。我设置了一个事件函数返回y在x值处为零。我希望在解决方案的t_events属性中看到三个条目但是我只看到一个条目尽管很明显解决方案跨越x轴三次。在我是不是做错了什么在复制代码示例def fprime(x, y):return 3 * x**2 12 * x - 4def event(x, y):return yimport numpy as npfrom scipy.integrate import solve_ivpsol solve_ivp(fprime, (-8, 4), np.array([-120]), t_evalnp.linspace(-8, 4, 10), events[event])上述代码导致^{pr2}$问题是从sol.y数组中可以看到应该有三个0(有三个符号改变)但是只记录了一个事件。在Scipy/Numpy/Python版本信息1.0.0 1.13.3 sys.version_info(major3, minor6, micro0, releaselevelfinal, serial0)[UPDATE]如果我使用可选的max_step参数来求解_ivp并使其足够小那么我会看到所有三个根。似乎事件函数并不是在t帴eval步骤中调用的而是仅在内部解算器步骤上调用后者远远少于t帴eval步骤并且最终会跳过某些根。这似乎不是很有用因为你必须知道如何设置最大步长以避免丢失根。在