首页/文章/ 详情

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

1年前浏览1785

首先需要说明的是我们这里的“数值模拟(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)。 

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


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


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

来源:计算岩土力学
AbaqusMATLAB离散元PFCFLAC3D3DEC
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-11-20
最近编辑:1年前
计算岩土力学
传播岩土工程教育理念、工程分析...
获赞 143粉丝 1036文章 1776课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈