我是计算机编程的新手,并且有一些使用python编程的经验.我正在考虑开发一个程序来进行物理模拟(射弹,圆周运动,阻尼简谐运动系统等)作为业余爱好项目.我想编写一个程序,它可以由一个非技术用户(我的同学)在各种平台(mac,windows等)上运行,没有任何设置和python似乎不是一个很好的选择建立这样一个程序所以我正在寻找替代方案.JavaScript引起了我的注意,因为它似乎在现代浏览器上非常强大,特别是与HTML5结合使用.我想知道是否适合在这种类型的应用程序中使用JavaScript,以及关于我应该从哪里开始的一些信息(我没有JavaScript知识)在此先感谢!
是的,我确实看过网站上的类似线程,但我想自己写一些东西比使用第三方库(除了前端,如果可能的话):)
我正在尝试编写基于Haskell中的Metropolis算法的MCMC程序,我遇到了从概率分布(生成伪随机数)和构造程序的问题.现在,我很高兴使用带有硬编码种子的生成器,而不是处理处理IO的复杂性.
似乎我应该使用状态monad来跟踪随机生成器状态,先前的马尔可夫链状态,卡方值和算法的每个步骤之间的接受计数,然后最终收集所有马尔可夫链状态和最后接受计数.这是最好的/惯用的方式吗?如果是这样,程序的布局应该是什么(即提议函数的类型签名和大都市步骤函数等).
我已经看到一些处理随机数的示例程序,其中从某种概率monad生成特定长度的随机数列表,然后通过一些简单的函数来执行计算.如果可能的话,我真的想避免这种内部形式的程序.
编辑:暂时删除WIP代码.
我试图在Haskell中实现经典的RK4算法来解决耦合的ODE系统,以简单的钟摆作为样本系统.不幸的是我无法修复以下错误.
Pendulum.hs:43:27:
No instance for (Num [Double]) arising from a use of `rk4'
Possible fix: add an instance declaration for (Num [Double])
In the first argument of `iterate', namely `(rk4 fs h)'
In the expression: iterate (rk4 fs h) initial
In an equation for `result': result = iterate (rk4 fs h) initial
Failed, modules loaded: none.
Run Code Online (Sandbox Code Playgroud)
Haskell推断出rk4的类型
rk4 :: (Fractional b, Num [b]) => [[b] -> [b] -> b] -> b -> [[b]] -> [[b]]
Run Code Online (Sandbox Code Playgroud)
源代码
module Pendulum where
import …Run Code Online (Sandbox Code Playgroud)