十大应用在数学的计算机语言
生活随笔
收集整理的這篇文章主要介紹了
十大应用在数学的计算机语言
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
作為一位在計算機編程和數學兩大領域都十分感興趣的研究員,我希望借這篇文章和大家一起分享在數學研究當中,十大我最喜歡的編程語言。
我這么做是為了給其他研究者提供更多的選擇,并提供更多建立模型的方法。這些語言的介紹直接來源于他們各自的官方網站簡介或維基百科,在字里行間當中,我也把個人的看法穿插其中。
1.?WOLFRAM LANGUAGE?
???
Wolfram語言是Mathematica和Wolfram Programming Cloud中使用的編程語言。它是由Wolfram Research公司開發的一種綜合性多模態編程語言,主要用于符號計算、函數式編程和規則型編程。在上述領域中,它自身設計使得它可以得到最大程度的廣泛使用。
這種語言有許多使用場景,并且時常是非常專業化的。
我的看法
這是一種下降泛函、規則型的編程語言,他在處理符號計算上非常有優勢。盡管如此,我覺得和Go語言比較起來,Wolframe的使用并不簡潔。
它真正的價值在于它龐大的多領域標準庫(特別是數學應用),這幾乎比世界上任何其他編程語言都領先很多年。看過他們的演示程序以后,這門語言的魅力會讓你神魂顛倒。2. MATLAB / GNU OCTAVE
MATLAB(矩陣實驗室)是由MathWorks公司出品的一門多模態數值計算運行環境,被認為是第四代編程語言。它可以進行矩陣運算、畫出函數和數據圖像、實現算法、創建用戶界面、提供接口以便和其他編程語言的程序(包括C, C++, Java, Fortran和Python)進行交互。我的看法
它在數值計算方面處于霸主的地位。其開源版本——GNU Octave也是如此。3. RR編程語言為統計計算和圖像處理提供了軟件環境,這個軟件由?the R Foundation for Statistical Computing提供技術支持。R語言主要使用者是統計學家和數據開發者,廣泛用于統計軟件開發和數據挖掘分析。
對數據挖掘開發者的調查和學術文獻數據庫調查中發現,近幾年來,R語言受到了越來越多的關注。
4. COQ / GALLINA
Coq是一款交互式定理證明軟件。它允許使用數學符號和命題的形式進行邏輯演繹,對推演驗證猜想的推理過程進行模式化處理,幫助人們找到比較合情合理的證明方法。然后,通過規范的格式說明中進行嚴格證明,最后建立起一個認證程序。
Coq在構建算子的衍生物——歸納構建算子理論的基礎上運行程序。
如果我們要把它當做是一種編程語言的話,Coq實現了一種依賴類型的函數式編程語言;作為邏輯系統,它實現了高階類型理論。
Coq提供了一種名為Gallina的范式語言。用Gallina編寫的程序具有弱規范化性質——讓程序最終運行結束,不會陷入死循環。
5. PROLOG
Prolog是一種與人工智能和計算語言學相結合的通用邏輯編程語言。Prolog扎根于一階邏輯(一種形式邏輯)。與其他編程語言的不同之處在于,Prolog是定義式語言。
Prolog的程序邏輯用關系描述,用事實和規則表示。它的運行方式是進行查詢的這些關系的內在聯系來決定的。
6. HASKELL
Haskell是一種標準化,通用純函數式編程語言。它有非限定性語義和強靜態類型。Haskell的特色是擁有一個類型推斷和延后計算的類型系統。
我的看法
對于使用非函數式編程的程序員來說,它是最難懂的語言之一.為了能熟練使用這門語言,程序員的學習曲線會非常陡。但這同時也是非常值得的。因為它的無任何其他影響。正因為它有純函數屬性,所以它十分適合用來對數學問題進行分析并建立模型。而對于那些從事范疇理論和做編程語言研究的人來說,它有極強的吸引力。
7. IDRIS
Idris是一種擁有依賴類型的通用純函數式編程語言。它的類型系統與Agda的類似。
它支持交互式定理和策略的證明,可以與Cop相媲美。定理證明開始之前,我們就可以將重點放在通用編程上。
Idris的其他目標是“充分”性能,它的副作用也容易得到控制,并且他還支持在特別針對于嵌入式領域中應用語言的實現。
我的看法作為一種研究型語言,它結合了Haskell和Coq的特性。是很有意思的。
?
8. JULIA
ulia是一種用于技術計算的高水平、高性能的動態編程語言,對于其他技術計算環境的用戶來說,它的語法讓初學者很容易上手。它提供了復雜的編譯器、分布式并行處理、高數值精度和一個可擴展的數學函數庫。Julia的基礎函數庫大多數由官方維護人員編寫,同時,它也集成了一些C和FORTRAN中開源成熟、性能良好的庫來處理線性代數、隨機數產生和字符串處理等問題。
我的看法
它是一種非常有前景的科學計算和數據科學語言。由于Jupyter項目,Julia也可以用于分享代碼,并和他人一起協作完成項目。9. PYTHON
Python是一種被廣泛使用的高級、通用、解釋型動態編程語言。它的設計理念是要強調代碼的可讀性,其變量系統是弱類型的,這樣的特性讓程序員用比C或Java等語言更少的代碼行來實現自身需求。
該語言提供了一種旨在實現各種規模程序中都能清晰展示程序架構的方法。
Python支持多種編程范式,包括面向對象、命令式和函數式編程或過程式的風格。它具有動態類型系統和自動內存管理功能,并有一個龐大而詳盡的標準庫。
我的看法從數學和科學的角度來看,Python之所以有趣,是因為它有大量的相關文庫可供這種流行的編程語言使用(例如, numpy, scipy, scikit-learn, Sage等)。
得益于這個豐富的生態系統,你能輕松地學到一門對科學計算來說非常友好的語言。并且由于它很受歡迎,例子(和Jupyter notebooks中的示例代碼)隨處可見。
10. J
J是一種非常簡潔的數組編程語言。它最適合數學和統計編程,尤其是對矩陣執行操作的時候。它還被用于極限編程和網絡性能分析。與最初的FP/FL語言一樣,J通過其默認的編程特性支持過程式(與函數式編程不同)的編程方式。我的看法像APL和K一樣,J是一種令人費解的語言。它的語言很簡潔,很難讀,但卻強大得難以置信。如果您有興趣采用新的方法來處理數據操作和分析的話,那么J值得一試。
這是一個快速排序的實現,來讓您了解我們正在處理的問題。
quicksort=: ((:@(<#[)?,?(=#[)?,:@(<#[)?,?(=#[)?,:@(>#[)) ({~ ?@#)) ^: (1<#)寫得比較豪放。上面的十種語言就是我眼中認為在數學領域中值得一試的語言。當然,如果您有更好的選擇,歡迎留言表達你的個人見解。
————
編輯?∑Gemini
?來源:青少年數學之旅
?泰勒定理的奇聞軼事
?丘成桐:漫談微分幾何
?Leibniz 如何想出微積分?(一)
?線性相關和秩的物理意義
?數學史上你認為最丑陋的公式是什么?
?陶哲軒談什么是好的數學
?田淵棟:數學的用處(下篇)
?你絕對沒想過原來數學家這么流氓,一言不合就進行暴力證明
?世界上最牛的五篇博士論文
?數學中有哪些巧合讓人眼前一亮?
?算法立功!清華畢業教授美國被搶車,警察無能為力自己用“貪心算法”找回
?學術史上的奇文:怎樣用數學抓獅子
?臺大教授的反思:最難的一課 我們卻沒教給學生
?麻省理工學院(MIT)研究生學習指導—— 怎樣做研究生
?分享 數學,常識和運氣 ——投資大師詹姆斯·西蒙斯2010年在MIT的講座
算法數學之美微信公眾號歡迎賜稿
稿件涉及數學、物理、算法、計算機、編程等相關領域,經采用我們將奉上稿酬。
投稿郵箱:math_alg@163.com
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的十大应用在数学的计算机语言的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CMU博士Nature撰文:机器学习要避
- 下一篇: 西南联大数学名师的“治学经验之谈”及启示