如何看待「Mathematica 只是一個高級計算器」的說法?
喜歡數學的碼農最近迷上Mathematica了,關注多了發現不少人(貌似大部分是Matlab用戶)認為Mathematica只是一個高級點的計算器。
我覺得matlab更像一個語言,mathematica更像是計算器,而且現在matlab無所不包的函數包讓人無法抗拒啊
個人覺得筆者還是有很強烈的個人傾向。首先從普適角度來說,為什麼Mma這麼好用,用的人卻如此之少,我想筆者的回答必然是因為"大部分人都是沒有見過世面的小果果",其實我會告訴你,我用一個卡西歐計算器電腦版,連代碼都不用輸,就可以實現計算哦~親愛的。其次matlab支持模塊模擬,你有么,matlab強大的庫函數支持Mma有么?說到底,Mma就是一款強大的計算器,只能說你用Matlab很少,或者只局限於畫圖和計算的功能,而其真正強大的功能卻並不是你那個領域所涉及的
不行了,我還是沒忍住!
作為 Mathematica 愛好者,難以忍受別人對她的褻瀆。
更何況這種誣陷很可能會誤導他人選錯軟體。
至於最後一句,「其真正強大的功能卻並不是你那個領域所涉及的」。那麼,即然它的強大功能不是我所涉及的領域,我幹嘛要用它。
———————————————————————————————————————
比較客觀的講,兩款軟體都非常優秀,各有所長。而且它們也都緊跟時代的步伐,及時加入流行的功能。
但在符號計算方面,我還是首推 Mathematica 的。
計算機代數系統比較:List of computer algebra syste
- Mathematica 官網:Wolfram Mathematica
- Matlab 官網:MATLAB - 技術計算語言
————————————————————————————————————————
下面的的談論難免有失偏頗,也只有兩款軟體都精通的朋友的評論才能更客觀。
然而,在國內同時精通 Matlab 和 Mathematica 兩款軟體的朋友應該是屈指可數的。 次要原因:精通Mma的朋友太少了。
主要原因:這兩款軟體都是無比的強大!很多人在熟悉了其中一個之後,不願也沒有必要去深入地學習另一個。
函數多是優點?
很多人認為,Matlab 的一大優點是它的內置函數非常多。
然而在我看來,這既是其優點也是其弊端,何況 Mathematica 的內置函數也不少(11.1.1 版中有近5000個內置函數,如果算上內置擴展包中的函數和常量,粗略統計約有6萬個)。
打一個比方,相對於數學結論來說數學中的定理是很少的,很多問題雖然不能通過定理直接證明,但可以通過幾個定理的組合間接證明。如果把儘可能多的正確結論都作為定理寫入教材,那麼學數學和背字典也沒什麼區別了。這也正是定理之所以為定理的意義——用儘可能少的核心結論的簡單組合就可以搞定儘可能多的問題。
函數也是一樣,適當的多是優點多,但太多就不是了。
因為,操作這兩款軟體的主要群體都是人,而不是機器。
而 Mathematica 的函數就非常規範,可有可無的函數很少。而且其自定義函數功能是非常方便和靈活的,使用也是。
Mathematica不能做模擬?
Matlab 中有 Sumlink 模塊,即使對初學者來說做模擬也不太難。
相比之下 Mathematica 作模擬就不那麼方便了,得需要自己動手或去找資源。
其實,對於簡單的模擬 Mathematica 實現起來也不太難。而且效果是非常給力的,其實對於最後的圖像展示僅僅是 Mathematica 的一個小優勢。
對於模擬來說,核心還是解方程(主要是偏微分方程),Mathematica 在解方程上是非常便捷的,同時也是非常直觀的。在性能上我沒作過比較,估計不會有太大的差距吧。
Mathematica 不是專業的模擬工具,所以綜合上來說 Matlab 在模擬上應該更具優勢。
不過,Wolfram 旗下有專門做模擬的軟體——SystemModeler。我不了解,推崇 Matlab 模擬功能的朋友,可以看看相關介紹。
有了解的朋友可以說說下面的比較各自的優勢都是什麼?
Mathematica+SystemModeler VS Matlab+COMSOL
實際上,我也不太清楚這樣比是否具有可比性。
Mathematica 是智能的
其實是指 Wolfram|Alpha: Computational Knowledge Engine ,你可以用人類語言(英文)說明你的問題或想得到的結果,Wolfram | Alpha 會理解並給出解決方案。而 Mathematica 與 Wolfram | Alpha 是無縫連接的。
Wolfram | Alpha 是基於 Wolfram Language 的知識計算引擎。而這一切都源於 Mathematica 。
相比之下,Matlab 還只是款軟體。
Mathematica 是一個計算器?
如果非要這麼說我也是可以接受,只是它計算的對象是符號,是表達式。
而在 Mathematica 中,任何對象都可以作為表達式。這樣一來,沒有什麼是不可以計算的,它就是一款萬能計算器。
Mathematica 的語言是高度統一的,沒有歧義,嚴緊至極,簡潔至極,易學易用。
這是計算器的基本特性,而 Matlab 還是只是一款軟體。就拿易學易用這一條特性來說,它就不配作為計算器。
————————————————————————————————————————
筆者學了多年 Mathematica 多少有些認識,期間也學過一年多 Matlab 也略有了解。
作為數學專業出身的我,還是建議數學專業的朋友使用 Mathematica 。
其它專業的朋友就要看自己的領域的需要了,還有就是所在領域前輩的推薦,至少交流起來方便。不然,前輩都用 Matlab 自己卻用 Mathematica ,他把他的程序給你,你發愁,你把你的程序給他,他更愁。
————————————————————————————————————————
就先寫這些吧。
總得來說,兩款軟體都非常強悍,各有優缺點。
以下面這句話作為結尾:
只見對方缺點者乃好事之徒,取長補短方為進取之道。
你也只是一個高級草履蟲。。。
Matlab 可以做的mathematica都能做。你可以試試把matlab的程序用mathematica重新寫一下。矩陣計算不必matlab慢(有時候甚至還要快)。(當然你得查看你用的函數的源代碼)mathematica的符號系統是全球獨一的。這種符號系統沒有一個計算器能夠媲美吧。
mathematica的table比matlab的for loop不知道高到哪裡去了mathematica把所有元素都同等看待,例如函數名,圖,list,數據,等等。結合模式匹配和table,效率驚人mathematica 可以把函數編譯成c,然後可以被c++等調用kernel。也可以和c++等語言一起計算。我不知道你說強大的庫函數是什麼意思?mathematica還支持排版。。可以作為一個帶tex支持的報告生成器。mathematica的繪圖和可視化功能比某些軟體不知道高到哪裡去了。。。。。。matlab現在的繪圖命令的那些handle,那些小括弧,那些空格不帶括弧的用法,都讓人不禁想到了非洲mathematica 10 加入了很多工具包。你可以去看看
我對matlab和mathematica的評價是:matlab的用戶群非常diverse,導致函數庫,函數名極其不統一,使用方式極其混亂,都是能用就好。documentation做的也很差。例如import,導入不同格式的文件函數名都不一樣。。。。。mathemathca的用戶最先高度集中在數學和數學物理,其函數,格式,調用等十分美觀和統一。例如對文件的操作只有2個函數:import和export。對比下matlab那幾十種不同類型的import 和export函數吧。mathematica的函數名都是全稱英文名。基本只要你知道在做什麼,閉著眼睛都能寫出你想乾的代碼。而matlab呢,都是縮寫,還夾雜數字=呵呵。寫一次代碼你的世界觀都要顛覆了。特別是行,列操作混亂(參見mesh和interp函數的要求)
本人使用matlab五年,使用mathematica兩年,對這兩者的區別有所了解。兩個都是優秀軟體,但目標群體不同,簡單的說前者適合工科生,後者適合理科生。
找了這兩段話的出處。第一個大概是用得少不了解。第二個估計是個matlab粉,因為博主黑matlab黑得太厲害了而說的氣話。
很多Mathematica教材都把它當作計算軟體來講,編程方面(尤其是函數式編程、模式匹配之類的)往往一筆帶過,這大概也是一個原因。
順便說一句,現在的計算器真的很強大的。參考問題:市面上有哪些好用的計算器? 以及卡西歐計算器是用來幹什麼的?為什麼那麼貴?我覺得和mma比起來Maple才更像一個高級計算器
戰略導彈也只是個高級二踢腳
Mathematica 的易用性和使用者的水平成強烈的正相關性。
如果使用者的水平只會用計算器。Mathematica 就是個計算器。
如果使用者的水平要用函數式編程,符號計算,涉及高級演算法等艱深的內容。Mathematica就是可以秒殺該類內容的函數式語言。它就是一把刀,你能掄10斤,它就重10斤,你能輪10萬噸,它就重10萬噸。所以這不是刀,這是金箍棒,自動適應使用者的水平。深入潛出。是一個神器。
唯一的缺點就是。
這貨不免費,還TMD挺貴!!
約炮遇見名器會熱淚盈眶。可是嫖妓遇見名器就只會覺得遇見名妓了。。。。
你說是不是這個理兒。。。如果真的要說Mathematica是一個計算器的話,這個計算器太高級了,萬物皆可計算。請看這裡。
斯蒂芬.沃爾夫勒姆:計算萬物的理論
more is different!
你以為Wolfram是吃屎的?
最煩研究/工作做得不怎麼樣,整天在網上撕逼哪個編程語言最好的閑人了。
computer 不是叫計算機么。
量子計算機也是
因為人家的目的就是以集成化的方式簡化運算,未必非得難用才好? 才顯得逼格高? 人家是生意人,想的第一件事還是普及,所以我感覺稱之為高級計算器簡直是對它最大的讚美.
可以這麼認為,Mathematica確實是一個高級的計算器,但不是跟Matlab對比,而是跟開發級別的語言對比,從編程語言的角度上。
至少現狀是Matlab的工作機會比Mathematica多,一方面是後者佔據資源的人了解的略少,另一方面是Matlab的工具箱,及工程應用比較普及,而Mathematica先天給人的印象是解方程,畫圖。
Mathematica雖然好用,但是要用好確實要花更多成本,而且要限制使用,就如數據分析,算是比較適用的工作場合了,用得不合適,還不如用Excel搞一下。還是建議入matlab
從實用主義的角度你去看看各種跟編程相關的實習崗位要求
科學計算相關的一般都是Matlab,SPSS,SAS,Python,R,C++之類的(不分先後)當然你要是應聘Mathematica他們公司就算了……我不清楚數學專業的童鞋們什麼情況,至少我們一般的理工科都是以Matlab為主的,無論教學還是科研不否認Mathematica是個優秀的軟體,但它的社區太弱了,沒多少人用。你隨便搜個演算法,比如傅里葉分解,一般都有Matlab版的,沒怎麼見過mathematica版的。(當然像是傅里葉分解這種最常用的演算法一般都被集成在函數庫里了……)牛逼的人自己寫代碼而不是用別人寫的程序!
推薦閱讀:
※如何找到mathmatica最新幾版的學習教材教程?
※這張圖中能數出多少個三角形?
※Mathematica還有哪些美麗的地方?
※Mathematica中,調bug時,能否實現如同Matlab一樣單步執行停止每一步看每一步的結果?
TAG:WolframMathematica |