簡體   English   中英

F#適合物理應用嗎?

[英]Is F# suitable for Physics applications?

我討厭物理學,但我喜歡軟件開發。 當我在感恩節后回到學校時,在我完成可怕的事情之前,我將再接受兩個季度的物理學習。 我目前正在閱讀關於F#測量單位功能的帖子,但我從未使用像F#這樣的語言。 是否適合編寫應用程序,以便我可以在做自己喜歡的事情的同時學習物理知識?

對於運動學,平面運動,牛頓定律,引力,工作,能量,動量和沖動等系統,我對命令行應用程序(甚至那些我可以執行並且不需要輸入就能吐出答案)感興趣粒子,旋轉運動學和動力學,角動量,靜態平衡,振盪運動,波動,聲,物理光學,靜電學,高斯定律,電場和電勢,電容,電阻,直流電路,磁場,安培定律和電感。

我對F#感興趣的原因是因為語言提供的度量單位功能。

根據我的偏見,F#非常適合物理學。 它有一個稱為度量單位的功能,可以為您進行尺寸分析,如果您弄錯了則會提供錯誤。 例如,如果你寫:

let distance : float<meters> = gravity * 3.0<seconds>

這會產生編譯錯誤 ,因為重力是<米/秒^ 2>而不是<米>。 這可以防止大量與物理相關的編程錯誤。

有關更多信息,請查看Andrew Kennedy的博客

我推出了一本名為“F#for scientific”的書(這個介紹是免費提供的),這似乎是該領域的一個很好的介紹,因為F#似乎非常適合這種領域。

您可能想看看介紹。

http://www.ffconsultancy.com/products/fsharp_for_scientists/

(不,我與作者沒有關系;-)

是(任何語言都是)和否(了解未來的同事會使用什么,比如他們使用python。)。 Fortress是一個有趣的地方。

關於尺寸分析:我的一位物理學教授給出了一個有趣的微積分技巧:考慮到在一個給定的烤箱中完美烹飪一磅火雞需要一個小時,煮一個2磅火雞需要多長時間就是同一個烤箱?

嗯,尺寸分析顯示

(1)為了煮火雞所需的熱能總量與火雞的質量成正比,火雞本身與其體積成正比,火雞本身與其平均“半徑”的立方成正比。

所需的烹飪熱能= k1 *(turkeyRadius“^ 3)==>單位:m ^ 3 * k(其中k1單位為J / m ^ 3)

(2)烤箱提供的熱能總量與火雞表面的比例乘以你煮的時間,

烤箱提供的熱量= k2 *時間*(turkeyRadius ^ 2)(其中k2單位為J / s / m ^ 2)

然后通過使用(1)=(2),您獲得
time = k1 / k2 * turkeyRadius ^(3/2)


- 烹飪時間與半徑^ 3/2成比例
- 鑒於土耳其的Radius與質量的立方根成比例,我們得到了
烹飪時間= k3 * sqrt(質量)

因此,烹飪我們的2磅火雞需要花費2到2倍的時間,結果是完全沒有計算 - 僅進行尺寸分析。

是的,就像克里斯史密斯在回答中所說的那樣,F#是建立函數式編程的好方法。 我正在使用F#建立關於物理,工程和生物學的廣泛討論。 我當然可以使用像你這樣的學生的輸入。 沒有現實生活問題的編程是一種編程方式。 另一種成功的方法是提供僅供使用計算機的人使用的解決方案,這當然是另一種方式,也是建立財富的方式。

F#適用於物理等知識領域。

Fsharp是一種選擇。 如果你想學習一種技能,這也可能是更長遠的好處,為什么不學習python。 你也可以在指尖找到numpy和scipy。

學習任何計算機語言都不會教你物理學,你可以用任何語言編寫程序來學習物理。

尺寸分析是物理問題的一個相當方便的工具,它可以引導你遠離“甚至不錯”。

我總是因為10 ^ 34的因素而得到一個錯誤的答案而獲得某種不正常的樂趣,因為我的某些地方的單位出錯;-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM