简体   繁体   English

scipy.odeint使用哪种数值积分方法和什么顺序?

[英]What numerical integration method, and of what order, is used by scipy.odeint?

I am do a project in python modelling the collisions of galaxies. 我正在做一个用Python建模星系碰撞的项目。 I want to know what sort of numerical method is used by the scipy routine so that I can evaluate what integration methods to use for my project and write a little about it in my report. 我想知道scipy例程使用哪种数值方法,以便我可以评估要用于我的项目的积分方法,并在报告中写一些关于它的信息。 I have read the scipy documentation and it seems unclear- it appears to use something called LSODA, but I can't fully understand the explanations of that available. 我已经阅读了scipy文档,似乎不清楚-它似乎使用了LSODA,但我无法完全理解可用的解释。 Thanks for your help :) 谢谢你的帮助 :)

LSODA uses a linear multistep method: LSODA使用线性多步法:

LSODA, written jointly with LR Petzold, solves systems dy/dt = f with a dense or banded Jacobian when the problem is stiff, but it automatically selects between nonstiff (Adams) and stiff (BDF) methods. LSODA与LR Petzold共同编写,当问题很严重时,可以使用密集的或带状的Jacobian解决系统dy / dt = f,但是它会自动在非刚性(Adams)和刚性(BDF)方法之间进行选择。 It uses the nonstiff method initially, and dynamically monitors data in order to decide which method to use. 它最初使用nonstiff方法,并动态监视数据以决定使用哪种方法。 The LSODA source is commented extensively to facilitate modification. 对LSODA来源进行了广泛评论,以促进修改。 Both a single-precision version and a double-precision version are available. 单精度版本和双精度版本均可用。

( Source ) 来源

For large-scale Hamiltonian systems (such as galaxies colliding), a symplectic integrator might be a better choice. 对于大型哈密顿系统(例如星系碰撞), 辛积分器可能是更好的选择。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM