原创 微分方程求解器比较:MATLAB, R, Julia, Python, C, Mathematica, Maple, Fortran

2020-3-7 09:25 1370 1 1 分类: MCU/ 嵌入式
http://www.stochasticlifestyle.com/comparison-differential-equation-solver-suites-matlab-r-julia-python-c-fortran/
结论:

很显然,DifferentialEquations.jl是寻求全面套件的“高级用户”的最佳选择。至于脚本语言的其他选择,MATLAB并非设计为具有所有最有效的方法,但是它将处理具有延迟和事件的基本方程,并输出良好的曲线图。R的deSolve在大多数方面与MATLAB相似。由于缺少事件处理,与MATLAB和R相比,SciPy的产品缺乏。但是由于用户函数是用脚本语言编写的,因此MATLAB / Python / R都存在效率问题。JiTCODE和PyDSTool是两个Python产品,使与Fortran求解器的接口比直接的SciPy更有效。Mathematica和Maple将进行符号预计算以加快处理速度,并且JiT可以编译函数,并提供非常好的事件处理,因此它们的包装器更像是DifferentialEquations。在灵活性和效率方面(而且Mathematica也提到了一些非包装的东西)。因此,当并非所有的风吹草动都是紧要关头时,这些脚本语言套件中的每一个都可以帮助您。在DifferentialEquations.jl之后,我肯定会将Mathematica或Maple的套件用于脚本语言的第二位,而其他所有功能都远远落后于此。我实际上感到有些惊讶:通常人们将CAS视为符号计算,而将MATLAB / R / Python视为更多的“数字”语言,但是至少在微分方程求解器的情况下,CAS(Mathematica和Maple)似乎更加完善和完善。这些脚本语言套件中的每一个都会帮助您。在DifferentialEquations.jl之后,我肯定会将Mathematica或Maple的套件用于脚本语言的第二位,而其他所有功能都远远落后于此。我实际上感到有些惊讶:通常人们将CAS视为符号计算,而将MATLAB / R / Python视为更多的“数字”语言,但是至少在微分方程求解器的情况下,CAS(Mathematica和Maple)似乎更加完善和完善。这些脚本语言套件中的每一个都会帮助您。在DifferentialEquations.jl之后,我肯定会将Mathematica或Maple的套件用于脚本语言的第二位,而其他所有功能都远远落后于此。我实际上感到有些惊讶:通常人们将CAS视为符号计算,而将MATLAB / R / Python视为更多的“数字”语言,但是至少在微分方程求解器的情况下,CAS(Mathematica和Maple)似乎更加完善和完善。

如果您已经刻苦学习C ++ / Fortran,那么Sundials是一个不错的“一站式商店”,可以满足您的所有需求,尤其是在添加ARKCODE时。尽管如此,您仍然需要自己写很多东西才能将rootfind变成事件处理界面,但是如果您将工作放在
这样会很好。Hairer的代码集涵盖了广泛的方程式,是一整套经典著作,而FATODE是唯一的non-DifferentialEquations.jl套件,它提供了一种计算灵敏度方程式的方法(其灵敏度方程式更为先进)。如果您想真正掌握编译语言并自己编写许多接口,那么这些方法中的任何一项都将对您有所帮助,但是它们将是生产力的牺牲,并且与脚本语言方法相比并没有明显的性能提升。还包括某种形式的JIT编译。考虑到这些,我真的看不到GSL或Boost套件的用途,并且ODEPACK方法通常已经过时。

我希望这篇评论能帮助您做出适合自己的选择。

文章评论0条评论)

登录后参与讨论
相关推荐阅读
指的是在下 2020-09-20 21:42
【2020意法半导体开发大赛】ST25DV-PWM-eSET nfc感应
感谢ST给的 试用机会!这款NFC板 小巧别致,使用简单,配套说明详尽,对NFC做了很好的推广工作下载了应用后尝试用手机 与 开发板作感应,反应快速 很快成功,APP可以对 本开发板作 一定调节控制,...
指的是在下 2020-09-09 11:00
2020-09-09
实现的Montgomery大数相乘,如图所示; 供上一级ModExpPoweringladder 使用。所谓的蒙哥马利形式即为模n的余数表示形式,只有当操作数转换为蒙哥马利形式时,才能使用此算法执行模...
指的是在下 2020-08-17 17:44
2020-08-17
本工程设计ModExpPowering为顶层模块,通过一包含11个状态的有限状态机(NONE 1, LOADC 2, WAIT_COMPUTE 3, CALC_C_BAR 4, GET_K_D 5, ...
指的是在下 2020-08-15 10:17
信息技术测试行业
测试 基于 锁了门一定要看下锁上了没的 人类心理,可能门后有对你来说重要的东西,你不信任门锁质量或是对自己的操作不确定,这都能成为测试的理由与动机。IT产业的测试据我观察有四个主要业务,软件测试 硬件...
指的是在下 2020-06-20 22:11
【富芮坤物联网开发板评测】FR8016H开发板ble_simple_peripheral例程运行
心心念念的富芮坤物联网开发板渐渐摸索清楚了该怎么用    原来非常切合嵌入式开发者与爱好者的思路。,安装 Keil IDE 后, 获取 Fr801xH SDK 即可开始尝...
指的是在下 2020-03-07 09:29
数字滤波器概述
数字滤波器是一个按预定的有限精度算法实现的、将输入的数字信号转换为所需要的输出数字信号的线性时不变系统LTI。滤波器是是一种对信号有处理作用的器件或电路,其主要作用是让有用信号尽可能无衰减的通过,对无...
广告
EE直播间
更多
我要评论
0
1
广告
关闭 热点推荐上一条 /5 下一条