将双摆运动仿真网页版打包成桌面版。
由于Linux下electron实现圆角UI有问题,所以Linux版源码请修改css去掉圆角。上面展示的源码只适合Windows和Mac使用。
双摆的运动微分方程:
用四阶龙格-库塔算法进行迭代计算:
虽然这只是个小项目,但背后却蕴藏着一些物理和数学原理,需要用到理论力学和工程数学知识,有兴趣的可以看详细的解读:双摆运动仿真背后的原理
首先,要知道双摆是一种混沌运动。所谓的混沌就是运动轨迹是实实在在确定的,即在理论上可用数学计算出,可以提前预测的。但却在实际中,无法准确预测,因为混沌运动对初始条件极其敏感,注意,是极其。初始条件一点点的细微不同,会导致后期巨大的差异。
所以无论Matlab或js计算精度有多高,总会有细微误差。故均不能长期准确计算出双摆的理论轨迹。这也是为什么不能长期预测天气的原因。
虽然不能长期准确预测运动轨迹,但还是要简单对比一下js和Matlab的计算精度。毕竟仿真不是看动画做得多逼真多好看,而是与真实情况多接近。
首先来看看短期仿真对比,因为短期仿真与真实值接近:
还是看得出有不小的区别的。这里不得不说Matlab在计算上还是很厉害,仅用0.1的迭代步长就可以算出比较稳定的数据。而上图JavaScript用的0.0001的迭代步长(即计算量比Matlab多1000倍),并且不同的步长算出的数据也不太稳定。当然,Matlab用的自带的算法,具体我也不知道用的啥算法,但我估计使用了修正算法。而此项目用的四阶龙格-库塔算法,大概没有修正,越到后越远离真实值。哎,被Matlab无情吊打。不过还是要说一下,由于混沌运动的特性,算到后面Matlab也不会很准确。
总结:此应用对双摆运动的仿真短期还行,时间长了精度较差,娱乐一下还行吧。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。