我讨厌物理学,但我喜欢软件开发。当我在感恩节后回到学校时,在我完成可怕的事情之前,我将再接受两个季度的物理学习。我目前正在阅读关于F#测量单位功能的帖子,但我从未使用像F#这样的语言。是否适合编写应用程序,以便我可以在做自己喜欢的事情时学习物理知识?

我对命令行应用程序感兴趣(即使是那些我可以执行并且无需输入就吐出答案的应用程序),例如运动学,平面运动,牛顿定律,引力,工作,能量,动量和冲动,粒子系统,旋转运动学和动力学,角动量,静态平衡,振荡运动,波动,声音,物理光学,静电学,高斯定律,电场和电势,电容,电阻,直流电路,磁场,安培定律和电感。

我对F#感兴趣的原因是因为该语言提供了度量单位功能。

有帮助吗?

解决方案

根据我的偏见,F#非常适合物理学。它有一个称为测量单位的功能,可以为您进行尺寸分析,如果您弄错了则会提供错误。例如,如果你写:

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

那会产生编译错误,因为重力是<!> lt;米/秒^ 2 <!> gt;而不是<!> lt;米<!> gt;。这可以防止大量与物理相关的编程错误。

有关更多信息,请查看 Andrew Kennedy的博客

其他提示

我为科学家<!>引用了一个书本电话<!> F#! (介绍是免费提供的),它似乎是该领域的一个很好的介绍,因为F#似乎非常适合这种领域。

您可能希望查看介绍。

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

(不,我与作者没有关系; - )

是(任何语言)和否(了解未来的同事会使用什么,比如他们使用python。)。一个有趣的方面是 Fortress

关于尺寸分析:我的一位物理学教授给出了一个有趣的微积分技巧:假定在一个给定的烤箱中完成一磅火鸡需要一个小时,烹饪一磅2磅火鸡需要多长时间同样的烤箱?

嗯,维度分析显示

(1)为了煮火鸡所需的热能总量与火鸡的质量成正比,火鸡本身与其体积成正比,火鸡本身与其平均值的立方成正比。 QUOT;半径QUOT <!>;结果 即点击 所需的烹饪热能= k1 *(turkeyRadius <!>; ^ 3)== <!> gt;单位: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
成比例 - 鉴于turkeyRadius与质量的立方根成比例,我们得到了
  烹饪时间= k3 * sqrt(质量)

因此,烹饪2磅火鸡需要花费两(2)倍的时间,结果是完全没有计算 - 只进行尺寸分析。

是的,就像克里斯史密斯在回答中所说的那样,F#是建立函数式编程的好方法。我正在使用F#建立关于物理,工程和生物学的广泛讨论。我当然可以使用像你这样的学生的输入。没有现实生活问题的编程是一种编程方式。另一种成功的方法是提供仅供使用计算机的人使用的解决方案,这当然是另一种方式,也是建立财富的方式。

F#适用于像物理学这样的知识领域。

Fsharp是一种选择。如果你想学习一种技能,这也可能是更长远的好处,为什么不学习python。你也可以在指尖找到numpy和scipy。

学习任何计算机语言都不会教你物理学,你可以用任何语言编写程序来学习物理。

尺寸分析对于物理问题来说是一个非常方便的工具,它可以引导你远离<!>“甚至错误的<!>”。

我总是因为10 ^ 34的因素而得到一个错误的答案而获得某种不正常的乐趣,因为我的某些地方的单位出错了; - )

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top