个人观点---为什么数值模拟优先使用Python而不是MATLAB

首先需要说明的是我们这里的“数值模拟(Numerical Modeling)”指的是有限元,边界元,离散元,深度学习之类的大型数值计算而不是普通意义上的数学(符号)运算。这个笔记简要讨论了数值模拟为什么优先使用Python而不是MTALAB。


根据2021年最新的编程语言流行榜,全球Top 5的编程语言排名依次为Python, Java, JavaScript, C#, C/C++, Matlab排名第12位。这意味着对于职业的软件工程师来说,学习Python比学习MATLAB更容易找到工作。MATLAB在中国主要是学术机构为了发表论文而使用,在工业界基本上没有立足之地。 


MATLAB与Python一样,都属于解释性语言,二者最显著的差别是MATLAB为收费软件,而Python是免费的。也正是这个原因,专业的数值模拟软件都使用了Python作为扩展语言,例如Abaqus, ANSYS, FLAC3D(FLAC3D与Python的集成 (4)---zone.Zone类和方法), 3DEC, PFC, Plaxis(使用Python自动化执行Plaxis的命令流)等。因此以前使用MATLAB作为数值模拟数据的交换功能现在完全可以集成地用Python来代替,而MATLAB引以为自豪的数学运算功能使用基于Python的数据处理包Pandas, Numpy, Scipy等就能完全实现。


对于任何收费的软件,推出的功能一定是相对稳定的,这既是它的优点,但同时也是它的缺点。MATLAB的最新版本是R2021b, 目前只支持与Python 3.9的连接, 不支持Python 3.10(已经做过测试,可以连接的最高版本是3.9.9)。 

个人观点---为什么数值模拟优先使用Python而不是MATLAB的图1

而对于深度学习,MATLAB的最新版本(R2021b)目前使用的还是CNN,LSTM之类的,现实的深度学习早已跨越了这些算法,现在使用的是Tensorflow, Pytorch, Transformers等更高级的深度学习算法和框架。 


此外,在MATLAB开发的东西普及性较差,只能在小圈子内使用。例如,为了运行别人的一个2k的代码, 我必须在计算机安装个3G~20G的庞然大物---MATLAB。 


Last but not least, 从计算效率的角度而言,MATLAB的循环迭代能力很差,如果想在MATLAB中开发大型的数值模拟软件,其效率是非常低下的。相比之下,Numpy数学运算能力极强。

(6条)
默认 最新
Matlab要想效率高,一定要采用数组化或者说矢量化编程
评论 点赞 1
👍
评论 点赞

查看更多评论 >

点赞 10 评论 7 收藏 18
关注