涉及的物理、数学公式及计算过程

计算中存在的问题

模拟的可视化主要基于Geogebra实现。Geogebra演示能力强,操作大部分是交互式的,少量的代码和函数只是让它潜能更大。Geogebra的数值计算方法的能力之强,远超出了常人对一个几何类软件本该有的期望。——这就是为何选择Geogebra作模拟的工具。

进行简单数值模拟,涉及一些数值计算。复杂和可用解析求解验算的,不妨借助代数符号计算方面的工具完成。

不过计算过程之中,碰上解析的解不存在、而geogebra的计算又力所不能及的情况,仍然留有遗憾。虽然可以在其它软件里面计算离散点,拟合出反函数,但是这个笨办法比较笨拙,不是首选。

模拟计算中的不同方面

充分利用已知条件和假设,简化建模,然后找切入点

曲线方程及其图像:

这里写图片描述

y(x)=1+cosx,x0(1)

机械能守恒:

势能到动能的转化:

12mv20+mgΔh=12mv2v(x0)=v20+2g(1cosx0)(2)

v 的水平方向分量:

y(x)=1+cosxy(x)=sin(x)

所以,切线方向即速度方向和如下向量相同

(11+sin2x,sinx1+sin2x)

所以,速度 v(x0) 沿水平和垂直方向分解,则速度水平分量的大小是:

vh(x0)=v(x0)1+sin2x0=v20+2g(1cosx0)1+sin2x0(3)

时间的计算

则在 x 附近跑完足够小的水平距离微元 dx所用时间:

dτ=dxvh(x)

x=0 出发贴着曲线运动到 x0 所用的时间:

τ(x0)=x00dxvh(x)=x001+sin2xv20+2g(1cosx)dx(4)

不对速度进行分解,则利用弧长的微分,相除之后积分得到相同结果:

弧长微分:

ds=1+y(x)2dx=1+sin2xdx(5)

(2) 代入,直接得到跟 (4) 等价的结果:

τ(x0)=x=x0x=0dsv(x)=x001+sin2xv20+2g(1cosx)dx(4')

这意味着,沿曲线运动的小球运动到水平位置的坐标为 x0 处时, 时间用掉了 τ(x0) , 一直沿着水平方向运动的小球在同一时间走过的水平方向的路程是 v0τ(x0) , 公式也容易看到一般情况下 v0τ(x0)x0

一般情况下,不指望能求出这个积分的解析解,数值解则是容易的。——即使这么简单的问题的计算,也要对相对复杂的被积函数求数值积分。被积函数虽然复杂,但是性质很好,所以这种数值积分的任务在Geogebra里面可以轻松完成。

数值问题和特殊函数的反函数

然而,给定时间 t ,是否能够得到解析形式的沿曲线的小球水平方向上走了多远 x(t)?看似合理的要求,求一个积分函数 (4) 的反函数又有些不近情理。

为什么在模拟中,由给定的时间计算沿曲线运动的小球的位置是重要的?因为模拟的是小球的运动或动力学,其运动状态要随着时间的演化作演示。

——之前的演示是如何实现的?是让沿曲线运动的小球在 x 方向的位移均匀变化的情况下实现的(从而,这个假的模拟用的伪时间,跟真正的时间之间并非线性关系)。

此外,如果只是从单纯模拟的角度考虑,可以对 (4) 计算出密密麻麻的一系列 (x,τ) ,不妨叫它 (x,τ) 表;我们当年查三角函数表、对数表、概率统计问题的分布表,跟这个原理就非常类似。(题外话:我一直不理解,大学的有些老师们,在各种类似WPS和MS Excel 等spreadsheet数学类工具软件内置函数都很强大的情况下,不教软件而仍然只强调这些表格的重要性,这是为什么;难道不该淘汰这些东西吗)然后用查表插值的方法可以轻松实现逆函数的数值近似。但是这种方法,初值每变化一次,都要对 (x,τ) 表格从新计算。理想的情况下当然是能够有Geogebra计算能力之内的解析解。(这个任务,在mathematica, maple, matlab等里面是可以通过迭代方法实现的,不过geogebra还没这么厉害)

为了解决这个问题,还有一种思路是:喊救命,求助。——因为我经常这么做,已经很有经验了,分享一下。

我通常的第一选项是,stackexchange.com 上面发问题,等集思广益。既然还跟Geogebra的局限性有关,当然第二选项是到Geogebra的Forum上提问,但是这两天,这个geogebra.org又只有翻了才能稳定地连接上,这大大降低了效率。我很生气,但是后果不严重。

计算有什么用?

看了半天计算,这个简单例子,定性分析受力情况也应该想象得到。然而,定量计算跟定性结果的对比,让我对这个例子的理解前所未有的深入。知道了简化模型的局限所在,也知道了计算的局限,以及原始的案例要想实现,哪些条件须满足,甚至,如果涉及到更复杂些的情况,如何分析等等。

计算是笨拙的,只能对简化了的情形。计算又很有用,即使简化了的情形,也能让人了解更多更深入。

更新

终于有点空闲,更新一下。表格其实跟离散点齐次多项式拟合效果相似。用齐次多项式拟合,然后,修正之前的图。初速度分别为 3、5、12的情况下,小球约束在曲线 1+cosx 上运动的动画。注意: 要想让小球自由滚动,而不发生平抛,临界速度约 103.16

初始速度为3 ,必然不会平抛的情况下,沿曲线运动的小球,水平位置一直超前于沿水平直线运动前进的小球:

这里写图片描述

初始速度为5 ,速度稍微大于临界速度 10 ,无其它约束(在曲线上)的话,一开始会有平抛;有约束的时候,约束力和重力的合力的水平分量方向跟小球水平运动方向相反,为减速力。这导致沿曲线运动的红色小球,最初阶段其水平位移落后于沿水平直线运动前进的蓝色小球,从模拟图也可以看到:
这里写图片描述

当初始速度高于临界值很多,为12 的时候,红色小球水平方向的总体的滞后就分外明显了:
这里写图片描述

这三个图中,我用常数项为0的多项式拟合特定时刻红色小球的水平方向位移,即:如下函数的反函数,在图示所须的区间上,用多项式拟合求得:

τ(x)=x0sin2(t)+12g(1cost)+v20dx

之后在Geogebra中就很容易计算了。——这是动态图中蓝色小球终于是匀速运动的了。之前的其实是变速的,用于模拟时,红色小球和蓝色小球运动状况都不够逼真。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值