0
我是一個開始的程序員,我想集成一個使用ode'dopri5'的函數,但我認爲我沒有正確地做。這個參考沒有太大的幫助,而且我有一個我不認識的錯誤。所以,最初我使用odeint,它工作正常。下面是代碼塊:運行ode,dopri5方法,錯誤:不支持的操作數類型'ode'
Itmp = odeint(te.rhs, Itmp, [xLim[i], xLim[i+1]], mxstep=10000,
atol=1e-11, rtol=1e-11, args=(f,))[1]
而且我嘗試使用dopri5整合是這樣的:
Itmp = ode(te.rhs).set_integrator('dopri5', max_step=10000,atol=1e-11, rtol=1e-11)
我得到的錯誤是說ITMP類型爲「頌歌」,而我需要它像odeint給我的一個浮子。
下面是具體的錯誤,(我嘗試從一個浮動減去ITMP):
unsupported operand type(s) for -: 'ode' and 'float'
當我使用Python調試器,並嘗試打印出ITMP,它給了我
<scipy.integrate._ode.ode object at 0x10d6ab410>
而我繼續它停止與上述錯誤。我猜測我沒有正確寫出ode命令。任何幫助將不勝感激!
請問您可以發佈[mcve]嗎?就目前而言,很難說出問題的起因。唯一想到的是,你對初始條件和集成對象('Itmp')使用相同的變量名,這是非常糟糕的做法,並可能導致錯誤。 – Wrzlprmft
您是否考慮過ODE函數的不同參數順序? 'odeint'需要'odefunc(state,time)','ode'使用'odefunc(time,state)'。 – LutzL