運算科學,又稱科學運算,是一個與數學模型構建、定量分析方法以及利用電腦來分析和解決科學問題相關的研究領域。在實際應用中,運算科學主要應用於:對各個科學學科中的問題,進行電腦模擬和其他形式的運算。
這一領域不同於電腦科學(對於運算、電腦以及資訊處理的研究),同時也異於科學和工程學的傳統形式——理論與實驗。科學運算技術要想獲得理解,主要需要通過在電腦上實現的數學模型進行分析。
科學家和工程師發展了電腦程式和應用軟件,來為被研究的系統建立模型,並以多種輸入參數運行這些程式。一般來說,這些模型需要大量的運算(通常為浮點運算),常在超級電腦或分散式運算平台上執行。
數值分析是運算科學中使用的技法的重要基礎。
應用
運算科學的問題域包括:
數值模擬有各種不同的目的,取決於被模擬的任務的特性:
- 重建和理解已知事件(如地震、海嘯和其他自然災害)。
- 預測未來或未被觀測到的情況(如天氣、亞原子粒子的行為)。
- 適當調整模型或利用觀察來解方程,不過也需要服從模型的約束條件(如石油勘探地球物理學、計算語言學)。
- 利用圖論建立網絡的模型,特別是那些相互聯絡的個人、組織和網站的模型。
- 最佳化已知方案(如工藝和製造過程、前端工程學)。
方法和演算法
運算科學中的演算法和數學方法是多樣的,常用的應用方法包括:
- 數值分析
- 作為收斂和漸近級數的泰勒級數的應用
- 利用自動微分運算微分
- 利用有限差運算微分
- 圖論集
- 憑藉泰勒級數和理查森外推法進行高階微分逼近
- 均勻網格上的積分方法:矩形法、梯形法、中點法和辛普森積分法
- 龍格-庫塔法解常微分方程
- 蒙地卡羅方法
- 分子動力學
- 數值線性代數
- 用高斯消元法運算LU因子
- 科列斯基分解
- 離散傅立葉轉換及應用
- 牛頓法
- 動態系統的時步法
程式語言普遍應用於科學運算應用中偏向數學的方面,包括R語言、MATLAB、Mathematica[1]、Scilab、GNU Octave、COMSOL Multiphysics、SciPy的Python語言等。偏向於密集型運算的科學運算常會利用C語言或Fortran的一些變體以及BLAS或LAPACK等最佳化代數庫。
運算科學應用程式常常建立真實世界變化情況的模型,包括天氣、飛機周圍的氣流、事故中的汽車車身變形、星系中恆星的運動、爆炸裝置等。這類程式會在電腦主記憶體中建立一個「邏輯網格」,網格中的每一項在空間上都對應一個區域,並包含與模型相關的那一空間的資訊。例如在天氣模型中,每一項都可以是一平方千米,並包含了地面海拔、當前風向、溫度、壓力等。程式會在模擬時步中基於當前狀態運算出可能的下一狀態,解出描述系統運轉方式的方程,然後重複上述過程運算出下一狀態。
「計算科學家」一詞常用於描述科學運算領域中的技能高超者。他們通常是科學家、統計學家或應用數學家,會以不同方式應用高效能電腦,以提高他們各自的應用學科(如物理學、化學或工程學的相關學科)中最先進的理論和技術水平。科學運算也對經濟學、生物學及醫學等領域有着越來越大的影響。
運算科學常被認為是科學的第三種方法,是實驗/觀察和理論這兩種方法的補充和擴充。[2] 運算科學的本質是數值演算法[3]以及計算數學[4]。在發展科學運算演算法、程式語言的有效實現以及運算結果確認上,人們已經做出了實質性的努力。運算科學中的一系列問題和解決方法都可以在相關文獻中找到。[5]
教育
在應用數學或電腦科學的教學大綱中,或是在標準的數學、科學或工程學的教學大綱中常會有運算科學的相關課程。在一些研究型學府中,科學運算可以作為另一個同層次或不同層次主修專業的輔修專業。不過近年來,歐美的運算科學專業學士和碩士學位獲得者正在不斷增加,一些學校還設有運算科學、運算工程學、運算科學與工程以及科學運算專業的博士點,而大中華地區的很多學校也開設了資訊與運算科學的本科專業。
相關領域
|
|
參見
參考文獻
外部連結
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.