最近,因為美國政府實體名單的影響,國內學校哈工大、哈工程接到了MATLAB軟件停止服務的郵件通知,該軟件的相關授權已被終止,無法繼續使用。此事在國內媒體迅速發酵並成為社會關注熱點,引發學術界和技術界的廣泛討論和引起有關部門的高度重視。

那MATLAB是什麼?
MATLAB是美國MathWorks公司出品的商業數字軟件,用於數據分析、無線通信、深度學習、圖像處理與計算機視覺、信號處理、量化金融與風險管理、機器人,控制系統等領域。
MATLAB是matrix&laboratory兩個詞的組合,意為矩陣工廠(矩陣實驗室),軟件主要面對科學計算、可視化以及交互式程序設計的高科技計算環境。它將數值分析、矩陣計算、科學數據可視化以及非線性動態系統的建模和仿真等諸多強大功能集成在一個易於使用的視窗環境中,為科學研究、工程設計以及必須進行有效數值計算的眾多科學領域提供了一種全面的解決方案,並在很大程度上擺脫了傳統非交互式程序設計語言(如C、Fortran)的編輯模式。
MATLAB和Mathematica、Maple並稱為三大數學軟件。它在數學類科技應用軟件中在數值計算方面首屈一指。MATLAB可以進行矩陣運算、繪製函數和數據、實現算法、創建用戶界面、連接其他編程語言的程序等。MATLAB的基本數據單位是矩陣,它的指令表達式與數學、工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,FORTRAN等語言完成相同的事情簡捷得多,並且MATLAB也吸收了像Maple等軟件的優點,使MATLAB成為一個強大的數學軟件。在新的版本中也加入了對C,FORTRAN,C++,JAVA的支持。
Matlab以矩陣操作為核心,是一個集成數學、力學、統計學、工程學、電子電路、金融學等各個行業專家知識的工具軟件。邊學邊用,邊用邊學。看看help,找一下對應的工具包,模仿一下調用包的示例代碼,就能完成日常工作,這是一個常態。
二十多年時間,Matlab陪眾多工科和理科科研人員完成了各種學科作業、畢業論文,以及日常的科研工作,現在大多數人幾乎每天都在用。
我們現在就來研討一下,Matlab被禁,對中國科研和工業界意味着什麼?
Matlab這樣的基礎工具被禁,實質是,提高了許多初級科研工作和設計工作的人力成本,或者說提高了科研工作的難度,壓縮了設計工作的利潤空間。
我們從Matlab的基礎功能和Matlab的工具箱兩個方面來說明這個問題。
(1)Matlab的基礎功能可以比較容易的尋找替代工具
Matlab的基礎功能是科研部門常用的東西,比如說各種矩陣計算,微分方程求解,畫圖之類。這些東西可以比較容易的用其他科學計算軟件,或者R,Python等編程語言引用相應工具包替代。
matlab這些方面有個很大的好處就是文檔非常全,而且有全球許多人寫各種翻譯和支持文檔,而且數據文件支持做的很全,可以導入其他軟件產生的數據。這些功能對於大學生來說是很有價值的,但說到底不怕麻煩都可以替換,替換門檻也不高。
比如matlab的矩陣計算本身是調用lapack/mkl的,這個還好,但它的call機制非常有問題,經常沒事就把數組複製一下,這個工作往往比計算部分還慢很多。你自己寫個FORTRAN接口調用MKL,或者用C++的引用方式,都會效率高得多。
下面我們看一下兩款可以替代Matlab基礎功能的開源軟件:
1)SCILAB
SCILAB 是一款與 MATLAB 類似的開源軟件,可以實現 MATLAB 上所有基本的功能,如科學計算、矩陣處理及圖形顯示等。由於SCILAB的語法與MATLAB非常接近,熟悉MATLAB編程的人很快就會掌握SCILAB的使用。有意思的是,SCILAB提供的語言轉換函數可以自動將用MATLAB語言編寫的程序翻譯為 SCILAB語言。目前,SCILAB可在Linux、Windows和 Mac OS等全PC平台運行。
作為開放源碼的軟件,SCILAB遵循GPL 2.0開源協議,源代碼、用戶手冊及二進制的可執行文件都可以通過官網免費直接下載使用。用戶不僅可以在SCILAB的許可證條件下自由使用該軟件,還可以根據自己需要修改源代碼。
2)Octave
Octave是一個類似MATLAB和Scilab 的數學軟件包,可以進行各種運算,編程。它還有豐富的C++接口可以讓用戶編程時調用。其配套的繪圖工具採用gnuplot。Octave的使用也是基於字符終端模式的,當需要繪圖時,將會調用gnuplot進行數據繪圖,並顯示出來。
Octave 是用C++編寫的,它內容豐富的庫也可以供用戶在編寫軟件時調用。Octave同時還支持Fortran等的調用,GSL綁定等。可以由用戶定製自己的函數、子程序等。
(2)Matlab的各種工具箱很難被替代
為什麼呢?因為Matlab經過多年的積累,各個行業的領域專家凝聚他們的智慧,開發了基於Matlab的包羅萬象的,各行各業的工業仿真和驗證工具箱。這其中最主要的當然是simulink工具箱。
在使用這些工具箱進行工業仿真實驗時,通過一個包裝和調用接口和界面,使用者可以在完全不知道裡面的仿真具體是幹啥,裡面的算法具體是怎麼運行的情況下,只要自己設計包裝幾個邏輯框架,調用這些仿真工具包就好,然後在90%的情況下可以運行。
而這一點這對工科很多專業的工業控制和自動化設計部門是意義非常重大的。只要知道總體邏輯,不需要知道細節,就能畫設計圖,尤其不需要知道每個框圖都是具體咋做的。這可以說是一種端到端的高級仿真模式(即不了解具體機理,只要起點和終點就行)。
從這個角度上,目前中國各個行業的工業仿真和驗證的軟件替換產品,基本是沒有的。
因為如上所述,Matlab是一款“讓文盲可以寫字”的產品。
它不是給做仿真和控制對應的計算方法的人用的。而是給科研部門和工業設計部門中,不懂對應的算法細節,就直接調用對應工具包的人用的。
如果對所有的中國科研部門和企業都禁用Matlab了,那麼它們就需要提高現有設計人員的基礎素質,需要重新開發大量的工業仿真和設計工具包,這都意味着巨大的設計成本支出。
對於工業控制和自動化這些相關部門,這就是主要的破壞因素,企業不得不僱傭更多的人,也許5倍,甚至10倍,來完成以前同樣的工業設計和仿真需求。
(3)解決方案
一代又一代理工科學生對工業仿真和自動化算法的細節不求甚解,失去了對算法的基礎創新能力。研究者和開發者們成了“調包族”: 將數據輸入“黑箱”(Matlab的Toolbox ),然後就只能聽天由命看結果了。這也造成了我們對像Matlab這樣的計算軟件和國外各種開源工具包的路徑依賴。
從現在開始,在各行各業,各個工業領域,我們需要全社會,全行業共同行動起來,凝聚行業領域的智慧,進行算法編程,在不斷的試錯中,理解這些仿真和自動化算法的核心奧秘,完成各個行業的專業工業仿真和自動化工具包的開發和共享(這個當然應該是有償共享的),從而開創我國原創工業科研的新時代。
Matlab的被禁,將促進國內開始重視原創算法的開發和整合,或許這給相關軟件開發者提供了更多的機會!
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/212001.html
微信掃一掃
支付寶掃一掃