電腦模擬

出自維基百科,自由嘅百科全書
跳去導覽 跳去搵嘢
用電腦模擬技術模擬一個颱風出嘅圖像
OpenGL 整嘅群動模擬

電腦模擬粵拼din6 nou5 mou4 ji5英文computer simulation),又叫電腦仿真,係科學上嘅一種研究方法。研究者會整一個模擬想研究嘅現象嘅數學模型,個模型會講明個現象涉及邊啲變數同埋呢啲變數之間嘅方程式係點,跟住個研究者就會將個模型寫成電腦程式嚟行,睇吓「如果個數學模型正確,會發生乜嘢事」(模擬結果),可以用嚟按理論知識預測現實世界嘅現象。電腦模擬通常仲會配合埋科學視覺化(scientific visualization)技術,將模擬結果以圖像嘅形式呈現出嚟[1][2]

舉個簡單嘅例子說明,群動(flocking)係電腦模擬嘅一個出名例子,想像家陣有一大柞個體一齊移動,途中佢哋會守三條規則:分隔-唔好撞到隔離嘅其他個體;順向-將自己方向對準周圍其他個體嘅平均凝聚-將自己置於周圍其他個體嘅平均嘅位置。用電腦模擬嘅話,個程式會類似噉(以下嘅係虛擬碼):

 設 n 件物件;
 設呢 n 件物件嘅初始位置
 設 t(時間)= 0;
 While t 未到某個值,
   Foreach 物件
     計「如果呢件物件跟嗰三條法則郁,佢嘅新位置會响邊」;
   顯示出每件物件嘅新位置;
   t 上升 1;

於是研究者就能夠知道「如果群動嘅數學模型正確,會發生乜嘢事(啲物件郁起上嚟望落會係點嘅樣)」。事實表明咗,群動模型可以準確噉預測某啲自然現象,例如係一大群雀鳥一齊飛嗰陣個雀群成嘅形態[3]

電腦模擬係科學運算(scientific computing)一個不可或缺嘅部份,喺物理學[4]化學[5]生物學[6]等嘅自然科學上都會用到。除此之外,電腦模擬仲有俾人用落去社會科學(例:用博弈論模擬社會,想像「如果社會當中有咁多咁多百分比嘅人跟噉樣噉樣嘅法則做決策,個經濟會變成噉樣噉樣」)[7]同埋工程學(例:模擬「如果部機械用噉嘅設計,部機械嘅效率會係咁高咁高」)[8]嗰度。

基礎[編輯]

睇埋:科學運算

理論模型[編輯]

內文:科學方法數學模型

科學係用科學方法(scientific method)嚟追求知識,而科學方法涉及以下嘅步驟[9]

  1. 根據手上已知係真嘅事實,諗一啲理論出嚟(「基於我哋經已觀察到嘅呢啲現象,我推測啲現象背後嘅法則係噉噉噉,令呢種現象出現」),而為求精確,呢啲理論通常都想係用數學模型嘅方式表達嘅;
  2. 跟手就靠邏輯性嘅思考,去諗吓呢柞理論會做點樣嘅預測(「如果我提倡嘅呢個理論係真確嘅,理應會...」);
  3. 然後就做實驗觀察嚟攞數據,驗證吓個理論嘅預測係咪真確(「如果我呢個理論係真確,呢個實驗理應會得出某個某個結果,而個實際嘅實驗結果係...」);
  4. 如果數據顯示,個理論係做唔到準確嘅預測嘅話,就要一係根據攞到嘅數據睇吓個理論要點改先可以令佢做到準確啲嘅預測,一係就要諗新理論取代舊理論[10]

用電腦模擬做科研想要做嘅就係幫手做預測:原則上,「個理論作出乜嘢預測」呢一點可以由個研究者齋靠諗嚟做到(睇埋思想實驗),例子可以睇吓好似基本牛頓力學(Newtonian mechanics)入面嗰啲相對簡單(一條式得嗰三四個變數)嘅物理定律,但當研究緊嗰樣現象有返咁上下複雜嗰陣,「齋靠個研究者用諗」好多時就會難令人信服,於是研究者就將自己個理論(用數學模型嘅方式表示)編寫成一個電腦程式,然後再行呢個程式,睇吓個程式會引致乜嘢結果-呢啲結果就會係佢個理論會作出嘅預測[1][2]

基本程式[編輯]

睇埋:電腦圖像

喺最基本上,一個做電腦模擬嘅程式可以想像成以下噉嘅虛擬碼[2]

 初始化(講明個模型有乜變數);
 設 t(時間)= 0;
 While t 未到某個值,
   按個理論嘅數學模型,計吓個現象跟住會變成點;
   顯示出個現象變成咗點嘅樣;
   t 上升 1;

呢個過程會俾研究者睇到「如果嗰個數學模型成立,噉會見到啲乜嘢現象」呢一樣資訊

主要類型[編輯]

視覺化[編輯]

睇埋:科學視覺化

自然科學模擬[編輯]

社會科學模擬[編輯]

工程學模擬[編輯]

限制[編輯]

睇埋[編輯]

參考文獻[編輯]

  • Kaizer, J. S., Heller, A. K., & Oberkampf, W. L. (2015). Scientific computer simulation review (PDF). Reliability Engineering & System Safety, 138, 210-218.
  • Winsberg, E. (2010). Science in the age of computer simulation. University of Chicago Press.

[編輯]

  1. 1.0 1.1 Strogatz, Steven (2007). "The End of Insight". In Brockman, John (ed.). What is your dangerous idea?. HarperCollins.
  2. 2.0 2.1 2.2 Donald Craig (1996). The Simulation Algorithm.
  3. Reynolds, Craig W. (1987). "Flocks, herds and schools: A distributed behavioral model.". ACM SIGGRAPH Computer Graphics. 21. pp. 25–34.
  4. Thijssen, J. (2007). Computational physics. Cambridge university press.
  5. Lewars, E. (2003). Computational chemistry. Introduction to the theory and applications of molecular and quantum mechanics, 318.
  6. Banzhaf, W., & Eckman, F. H. (1995). Evolution and biocomputation: computational models of evolution (Vol. 899). Springer Science & Business Media.
  7. Macy, M. W., & Skvoretz, J. (1998). The evolution of trust and cooperation between strangers: A computational model. American Sociological Review, 638-660.
  8. Huff, G. H., Feng, J., Zhang, S., Cung, G., & Bernhard, J. T. (2004). Directional reconfigurable antennas on laptop computers: Simulation, measurement and evaluation of candidate integration positions. IEEE Transactions on Antennas and Propagation, 52(12), 3220-3227.
  9. Curd, M., & Cover, J. A. (1998). Philosophy of science: The central issues. C. Pincock (Ed.). New York: WW Norton.
  10. Godfrey-Smith 2003, Chapter 14: "Bayesianism and Modern Theories of Evidence".

[編輯]