我使用odeint函數從scipy.integrate包中斷odeint:蟒:當一個條件被滿足
r0 = np.array([1,2,3,4])
t=np.linspace(0,1,20)
def drdt(r,t):
return r # or whatever else
r = odeint(drdt,r0,t)
R0是包含一定數量的點的初始位置的numpy的陣列。 在腳本結尾處,如預期的那樣,我得到了20步時間點的位置。
現在我想在滿足r條件時停止odeint求解器。特別是我想在這些點中的2個點比某個閾值更接近時停止odeint,對r向量進行一些更改,然後繼續使用新的初始位置進行odeint求解。 有沒有一種方法來實現這一點?
我一直在想的一個可能的解決方案是運行odeint到最後,然後檢查是否滿足條件,但這當然不是很有效。
謝謝大家的幫助下, 尼古拉