gnu科学库(gsl)中odeiv2的python绑定。
pygslodeiv2的Python项目详细描述
pygslodeiv2提供了 Python绑定到 Ordinary Differential Equation 的odeiv2 interface公开的集成例程 GSL - GNU Scientific Library。 ODEIv2接口允许用户对微分方程组进行数值积分。
以下stepping functions可用:
- RK2
- RK4
- RKF45
- RKCK
- RK8PD
- RK1IMP
- RK2IMP
- RK4IMP
- bsimp
- msadams
- msbdf
注意,所有隐式步进器(以“imp”结尾)和msbdf都需要用户提供 用于计算jacobian的回调。
您可能还想知道可以使用pygslodeiv2from pyodesys 例如,可以解析地导出雅可比矩阵(使用同态)。pyodesys还提供 绘图功能,C++代码生成等等。
文档
最新稳定版本的自动生成API文档可在以下位置找到: https://bjodah.github.io/pygslodeiv2/latest (当前主分支的开发版本如下: http://hera.physchem.kth.se/~pygslodeiv2/branches/master/html)。
安装
最简单的安装方法是使用conda package manager:
$ conda install -c bjodah pygslodeiv2 pytest $ python -m pytest --pyargs pygslodeiv2
测试应该通过。
此处提供二进制分布: https://anaconda.org/bjodah/pygslodeiv2,conda稳定释放配方可在此处获得: http://hera.physchem.kth.se/~pygslodeiv2/conda-recipes。
此处提供源分发(需要gsl v1.16或v2.1共享库和头文件): https://pypi.python.org/pypi/pygslodeiv2(镜像文件保存在此处: http://hera.physchem.kth.se/~pygslodeiv2/releases)
示例
经典范德波尔振荡器(见examples/van_der_pol.py)
>>>importnumpyasnp>>>frompygslodeiv2importintegrate_predefined# also: integrate_adaptive>>>mu=1.0>>>deff(t,y,dydt):...dydt[0]=y[1]...dydt[1]=-y[0]+mu*y[1]*(1-y[0]**2)...>>>defj(t,y,Jmat,dfdt):...Jmat[0,0]=0...Jmat[0,1]=1...Jmat[1,0]=-1-mu*2*y[1]*y[0]...Jmat[1,1]=mu*(1-y[0]**2)...dfdt[0]=0...dfdt[1]=0...>>>y0=[1,0];dt0=1e-8;t0=0.0;atol=1e-8;rtol=1e-8>>>tout=np.linspace(0,10.0,200)>>>yout,info=integrate_predefined(f,j,y0,tout,dt0,atol,rtol,...method='bsimp')# Implicit Bulirsch-Stoer>>>importmatplotlib.pyplotasplt>>>series=plt.plot(tout,yout)>>>plt.show()# doctest: +SKIP
有关更多示例,请参见examples/,并在此处显示Jupyter笔记本: http://hera.physchem.kth.se/~pygslodeiv2/branches/master/examples
许可证
源代码是开源的,在gnu gpl v3下发布。有关详细信息,请参见LICENSE。 欢迎投稿人在https://github.com/bjodah/pygslodeiv2