我正在尝试实现四阶Runge-Kutta方法以解决Python中的一阶ODE即。我了解该方法的工作原理,但是我正在尝试编写一种有效的算法,以最大程度地减少计算f(x,y)的次数,因为这样做成本很高。有人告诉我,可以重复使用先前在逐步增加但无法看到方法时计算出的数据点。有谁知道该怎么做还是不可能?
以下是大量替代解决方案:google.com/…其中 任何一种都可能会有所帮助。
我正在尝试实现四阶Runge-Kutta方法以解决Python中的一阶ODE即。我了解该方法的工作原理,但是我正在尝试编写一种有效的算法,以最大程度地减少计算f(x,y)的次数,因为这样做成本很高。有人告诉我,可以重复使用先前在逐步增加但无法看到方法时计算出的数据点。有谁知道该怎么做还是不可能?
Answers:
如果要重用过去的函数求值,则需要使用诸如Adams-Bashforth之类的多步方法。
无论如何,您都要为每种策略付费。单步方法需要最多的功能评估,但是多步方法具有最大的内存需求。
编辑:更正。我的陈述仅对显式方法成立。对于隐式方法,情况不太清楚,因为阶段数不会直接转换为函数求值的数目。
f(x,y)
以便记忆结果。