繁体   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