Julia调用Matlab, Python以及R的微分方程求解器

阅读: 评论:0

Julia调用Matlab, Python以及R的微分方程求解器

Julia调用Matlab, Python以及R的微分方程求解器

文章目录

    • 从其他语言翻译来的求解器
    • 重新封装版本

SciML教程系列:

  • Julia求解常微分方程
  • 解Lorentz方程
  • 求解简谐振动的微分方程
  • 求解单摆

从其他语言翻译来的求解器

对于熟悉MATLAB/Python/R的程序员,可先使用下表中的求解器,因为这些求解器是从这几种语言中翻译而来

Julia翻译高效替代
ode23BS3()
ode45/dopri5DP5()Tsit5()
ode23sRosenbrock23()Rodas4()
ode113VCABM()Vern7()
dop853DP8()Vern7() is more efficient
ode15s/vodeQNDF()
FBDF()
Rodas4(), KenCarp4()
TRBDF2() RadauIIA5()
ode23tTrapezoid()
ode23tbTRBDF2()
lsodalsoda()AutoTsit5(Rosenbrock23())
AutoVern7(Rodas5())
ode15iIDA()/DFBDF()Rodas4()

其中,lsoda()在LSODA.jl中,可求解刚性和非刚性问题,调用需安装

]add LSODA
using LSODA

重新封装版本

Julia中也有这些函数的重新封装版本,重新封装后一般比原语言中要快两三倍,但比Julia推荐的方法还要慢上1000倍。

调用方法
MatlabMATLABDiffEq.jlusing MATLABDiffEq
scipySciPyDiffEq.jlusing SciPyDiffEq
r-deSolvedeSolveDiffEq.jlusing deSolveDiffEq

这三个包需要在github上下载安装

]add .jl
]add .jl
]add .jl

其中,MATLABDiffEq.jl提供了一个桥接器,可以将Julia代码与MATLAB的ODE求解器进行交互。它主要用于求解常微分方程和偏微分方程。可以使用MATLAB的ODE求解器来解决几乎所有常见的数学问题,从最基本的方程到更复杂的非线性系统。换言之,其提供了一些MATLAB中求解器,包括ode23, ode45, ode113, ode23s, ode23t, ode23tb, ode15s, ode15i。

SciPyDiffEq.jl基于SciPy库中的ode和odeint函数实现,可以在Julia中实现类似Python中SciPy库的微分方程求解功能,可用方法有RK45, RK23, Radau, BDF, LSODA。

deSolveDiffEq.jl可调用:lsoda ,lsode ,lsodes ,lsodar ,vode ,daspk ,euler ,rk4 ,ode23 ,ode45 ,radau ,bdf ,bdf_d ,adams ,impAdams ,impAdams_d。

本文发布于:2024-01-28 09:03:33,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064038306305.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:微分方程   Julia   Matlab   Python
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23