個人觀點---為什么數值模擬優先使用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數學運算能力極強。

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

10
7
19