-
1 # IT的老司機
-
2 # 塞外暮雪
ORTRAN 是最好的科學計算語言。專門為科學計算設計的。Fortran 90 內建的運算元組的命令可以讓你簡單直接的完成別的語言需要多次迴圈判斷的任務。 Fortran + IMSL數學庫+ Unix伺服器,效率最高,計算速度最快。
-
3 # 大學生程式設計指南
就科學計算而言fortran使用的領域最廣泛,科學計算主要考慮兩個因素準確性和執行效率,這點和企業級的程式設計的側重點不太一樣,企業級講究的功能體驗以及系統程式的穩定性,企業級對於演算法的追求沒有科學計算那麼強烈,畢竟不是每個功能需求都用得上演算法,而且在實際應用過程中C語言已經是公認的效率比較高的程式語言了,但相對科學計算而言就專業性而言還是fortran相對更加高效,簡單的矩陣操作直接在底層就封裝i起來了,但是C語言需要呼叫多次的函式才能搞定。
在科學計算領域現在程式語言裡面的python也開始涉足這塊,但是應用範圍比較有限,只是做資料報表統計方面有些優勢,在效能還是差距不少,術業有專攻,在效率上差異不是一點兩點,在快速製作報表以及粗略的資料統計方面還是有著獨特的優勢。
現在的科學計算慢慢向大型化發展,已經在某些地方向c++方向遷移了,畢竟現在的硬體配置以及工程量越來越巨大,之前簡單的微控制器程式設計1,2個人就能搞定一件事,轉向嵌入式程式設計很多都需要團隊作戰,企業級的程式語言對於模組化分工更加專業,現在都在各自融合各自的優點,互相選擇優勢點進行消化吸收。
當然在科學計算的程式語言還有MATLAB等等都有各自適合場所,沒有最好的,合適的就是最好的。
-
4 # EmacserVimer
做科學計算,可維護性?不重要!健碩性?不重要!可擴充套件性?不重要!可重用性?不重要!做軟體程式設計,可維護性?很重要!健碩行?很重要!可擴充套件性?很重要!可重用性?很重要!
科學計算程式設計其實比較關注準確性以及執行效率在軟體工程程式設計領域,尤其是企業級開發領域,通常要求程式碼是方便維護的,程式碼健壯性要好,可重用性要高,可擴充套件性要好,而且迭代起來要方便。畢竟工業級的系統必須考慮到需求變動的問題,在傳統軟體開發領域還不算突出,但是尤其是到了網際網路領域,網際網路需求變化快,C端使用者永遠是最難搞定的,需求變動極大,那麼上述條件就顯得非常重要。
做科學計算的程式是給自己人用的,但是軟體程式設計的基本上都是給使用者用的,不一樣這一點上,使用者群體完全不同。
做科學計算基本上沒有所謂的全新的專案,甚至可以說都沒必要強調專案,做科學計算基本上很少有所謂的生命週期的概念,你基本上不用考慮所謂的版本迭代的問題。專案開始完成就沒了,下個專案可能是完全不想幹的,但是解決問題的方法都差不多,但是軟體程式設計就不一樣,業務變化多端,迭代非常常見。
科學計算程式設計,往往你一個人或者極少數人玩,但是軟體程式設計不一樣,可能很多人要協作,以後還要不同的人來迭代,很多人會重構、重寫你的程式碼,很多人會review你的程式碼,很多時候效率什麼的都忽略了,畢竟硬體資源豐富,犧牲掉效率怕什麼!關鍵是別人要好用你的程式碼。但是科學計算無所謂了,基本上不會有人會review你的程式碼。軟體程式設計文件、測試、UI等等都還是蠻重要的。
做科學計算程式設計,最重要的是準確性、執行效率。為了方便數學程式設計,能不能方便的構造陣列,有沒有好的設計決策就比較重要了。
FORTRAN語言是Formula Translation的縮寫,中文意為“公式翻譯”,幾乎是專門為那些能夠用數學公式表達的問題而設計的,其數值計算的功能非常強。Fortran的語法規則極其嚴格,這用在科學計算領域最適合不過了。
Fortran可以直接用陣列、複數進行運算,而用其他語言比如C/C++,你則要至少進行兩次迴圈,或者要呼叫的函式形式引數有好幾個。C++在處理很多矩陣類問題的時候也比較痛苦,而這也是Fortran的強項。相對於Mathematica、python和Matlab這樣的高階語言,Fortran效率更高,並且在平行計算領域,Fortran還是絕對的王者。
因此目前在科學計算變成領域,Fortran是目前使用最多的程式語言。
-
5 # simxpert
這個要結合你的具體需求和具體應用場景來說吧。
第一個,比較早出現的專門用於科學計算的程式語言是fortran。當然還有比它更早的,比如algor(大概是這麼拼寫的),但是現在基本上都已經消失了。
fortran一直到今天,在科學計算領域仍然佔有非常重要的一席之地。這得益於fortran本身的設計就是專門為了科學計算而設計的。然後,fortran經過這麼多年發展,已經積累了大量的久經考驗的各種數學庫。此外,fortran對於平行計算的支援也非常好,這對於執行在超級計算機上的應用程式是非常重要的。
fortran對於跨平臺的支援也非常好,很多計算應用程式需要執行在各種不同的計算機上。
第二個C/c++。他兩關係密切,這裡把他兩合併一起當作一個語言來說吧,不糾結具體的語言差別了。這哥倆個當然是大名鼎鼎了。很多應用場景都會涉及,科學計算當然也不例外。這兩個的優點大家都知道,就是程式執行效率很高。缺點是開發難度大,對程式設計師要求比較高,因此開發效率低。此外,他們的跨平臺效能和對平行計算的支援也是非常優秀的,這也是編寫大型科學計算軟體的程式語言必須具備的基本條件。
第三個,Matlab。這也是一個非常強大的數學軟體。當然,他包括的東西,遠遠超出數學的範圍。使用Matlab的特點是開發效率好很高,Matlab直接以舉證為基本運算單位,只需要編寫很少的程式碼就能完成很複雜的功能。但是他的缺點是執行效率不高。和fortran,C語言編寫的計算程式比較起來,執行效率差距比較大,不太適合編寫對執行效率比較高的大型計算程式,比如有限元計算軟體。
除此之外,其他的程式語言譬如python,c#,也都可以編寫科學計算軟體。但是他們的設計初衷並非為科學計算而生,在很多方面還是️很多不足,很少會用他們來編寫大型數值計算軟體。一般也就用來編寫介面,核心計算部分一般還是會用其他語言。
回覆列表
我所知道的是,mathematic,Matlab,cTex。都是科學計算、符號演算、公式推導以及專業文章編寫,屬於專業人士用的。
至於python,覺得不太可能,因為沒那麼大的專業庫做支撐。