我想知道如何将 MATLAB 函数 ode45 导出到 python。根据文档应该如下:
MATLAB: [t,y]=ode45(@vdp1,[0 20],[2 0]);
Python: import numpy as np
def vdp1(t,y):
dydt= np.array([y[1], (1-y[0]**2)*y[1]-y[0]])
return dydt
import scipy integrate
l=scipy.integrate.ode(vdp1([0,20],[2,0])).set_integrator("dopri5")
结果完全不同,Matlab 返回的维度与 Python 不同。
原文由 Migui Mag 发布,翻译遵循 CC BY-SA 4.0 许可协议
integrate.ode 的界面不像更简单的方法 odeint 那样直观,但是它不支持选择 ODE 积分器。主要区别在于
ode
不会为您运行循环;如果你在一堆点上需要一个解决方案,你必须说出在哪些点上,然后一次计算一个点。