緣起
日前,中國兩所著名高校哈工大和哈工程購買的工程計算應用軟體Matlab被停止提供服務。Matlab軟體的提供商Mathworks公司給出的理由是:這兩所高校進入了美國的「實體清單」,作為美國公司,需要按照美國的要求取消Matlab在這兩所高校的授權。一時間,輿論譁然,因為這款軟體的影響力實在是太大了,幾乎每一個理工科的學生都用過,至少是聽說過,同時在科研、實際工作中也經常會用到。
誕生
Matlab全稱Matrix Laboratory(矩陣試驗室),顧名思義,該軟體非常擅長數理統計領域的矩陣計算。理工科的學生都知道,矩陣計算很費事,比如兩個10*10的矩陣相乘,需要先乘後加,計算過程繁瑣,特別容易出錯,可是計算器無法實現,如果有軟體工具自動計算該多好啊。
於是在1976年,Cleve Moler博士申請了國家科學基金,與同事一起利用Fortran語言開發了用於求解特徵值的程序庫EISPACK以及用於解線性方程的程序庫LINPACK。
博士畢業之後,Cleve Moler進入美國新墨西哥大學計算機系擔任系主任。他想教學生使用EISPACK和LINPACK這兩個程序庫,可是發現學生利用Fortran語言編寫接口程序很費時,於是他好事做到底,把接口程序也編號了。而這個接口程序程序因為在底層調用EISPACK和LINPACK兩個算法庫,學生們只需要輸入矩陣,該程序就能輕鬆得到矩陣計算結果,解出矩陣方程,深受學生的歡迎。Cleve Moler將這個程序取名為Matrix Laboratory,簡稱Matlab。既然是試驗室,僅僅是為了給學生上課用,對於不同大眾也是免費的,並沒有想到商業化。可是無心插柳柳成蔭,Matlab在多所大學廣泛流傳。
1983年春暖花開的一天,Cleve Moler到史丹福大學講學,遇到了商業天才Jack Little。John Little當時只是一個普通的軟體工程師,他敏銳地發覺Matlab可能在工程領域大有前途。於是,他遊說Cleve Moler將Matlab商業化,教授深以為是。有了方向,剩下的就是打磨產品了。他們組成了四人小組,拋棄了繁瑣的Fortran語言,改用更加簡單的C語言。有的編譯解釋程序、有的完成圖形功能的設計,有的開發數學分析的子模塊,有的撰寫用戶指南和核心的M文件。就這樣,一款帶有數值計算及數據圖示化功能的商用版Matlab軟體誕生了。
1984年,為了更好地將研究成果變現,Cleve Moler和Jack Little成立了MathWorks公司,發行了Matlab V1.0(基於DOS系統),正式進行商業化運營。該軟體集數值處理、圖形處理、圖像處理、符號計算、文字處理、數學建模、實時控制、動態仿真、信號處理於一體,同時具有了良好的開放性和運行的可靠性。這種平臺性軟體支持不斷添加新的模塊,功能越來越強大。在工程應用中,最先取得成功的領域是控制領域,原有控制領域的各類封閉式軟體包紛紛被淘汰,可見開放式平臺的強大之處。
發展
1993年,為了減少競爭對手,Mathworks公司從加拿大滑鐵盧大學購的符號計算軟體Maple的使用權,以Maple為引擎開發了Symbolic Math Toolbox 1.0,加快結束了國際上數值計算、符號計算孰優孰劣的長期爭論,促進了兩種計算的互補發展,看來這次收購的效果不錯。
此後,通過對核心數值算法、界面設計、外部接口、應用桌面進行改進,Mathworks公司於2000年10月推出Matlab V6.0。該版Matlab不再是簡單的矩陣計算工具,而是一種具有廣泛應用前景的全新的計算機高級程式語言了。
2001年,MatlabV6.1在繼承和發展其原有的數字計算和圖形可視能力的同時,推出了Simulink,打通了Matlab進行實時數據計算、處理和硬體開發的道路。
此後,Matlab每年都會更新一到兩次。目前,MathWorks擁有5000多名員工,在全球擁有33個辦公地點,公司開發的MATLAB和Simulink的在計算生物學、晶片設計、控制系統、圖像處理與計算機視覺、數據科學、物聯網、機器人、機器學習、信號處理、無線通信等領域均有廣泛應用,不僅僅在教學領域,更重要的是在研發和工程應用領域。
結語
毫無疑問,Matlab在產學研的道路上走得很順利,或許其誕生與發展路徑值得我們借鑑。如果美國禁止我們使用Matlab,我們該怎麼打造我們自己的科學計算工具呢?是通過863、973基金進行扶持,還是通過建立產業聯盟來共同打造?歡迎討論。