level 12
朱老剑客
楼主
在“小球平抛落地动画”中,https://tieba.baidu.com/p/3302500443,@go活宝哈哈 从Inside Mathcad中找到了灵感,但我仍旧觉得Inside Mathcad中给出的结果不是我想要的。
我不想用微分方程来解这道题,这个题目本身是高一的物理知识,牛顿运动力学范畴的,如果能够用牛顿运动力学的那套公式来求解出来自然是最理想的了。
我感觉在这里最难的是实现触发机制,也就是当达到某一个条件的时候,其中的一个变量需要变化,而且保持这个变化进行之后的计算,直到再次发生这个条件再会发生变化。
小球落地问题还比较容易,是一个质点的运动速度发生条件变化(当撞击地面的时候,速度方向发生改变),但如果要解决一般情况动量守恒问题,比如说两个球相撞,或者n个球相撞,求每个球的运动轨迹,如果没有触发机制,纯粹使用微分方程求解的话,是很难建模的。
更不用提解决“交通流”问题了,https://tieba.baidu.com/p/3554491924。
触发机制,可以不必考虑整个仿真过程,而只是用条件来约束仿真中的变量变化,当发生了某个条件时,即触发了一种变化,这对于解决不确定系统的问题来说,基本上就和VisSim、Simulink的动态求解是一样的了,就可以处理比较复杂的动力学问题了。
我用“月城case语句”在下面的程序中初步实现了触发:



这个程序只是一个雏形,稳定性鲁棒性很差,求解结果对dt的取值太敏感。
我把源程序上传了,http://1000eb.com/13e2y
如何优化这个程序,以提高它的求解稳定性,希望得到各位的帮助。
我感觉在MC中实现触发机制意义重大,可以使MC从静态求解领域向动态求解迈进,用MC处理“系统动力学”问题也就不是神话了。
2015年03月30日 16点03分
1
我不想用微分方程来解这道题,这个题目本身是高一的物理知识,牛顿运动力学范畴的,如果能够用牛顿运动力学的那套公式来求解出来自然是最理想的了。
我感觉在这里最难的是实现触发机制,也就是当达到某一个条件的时候,其中的一个变量需要变化,而且保持这个变化进行之后的计算,直到再次发生这个条件再会发生变化。
小球落地问题还比较容易,是一个质点的运动速度发生条件变化(当撞击地面的时候,速度方向发生改变),但如果要解决一般情况动量守恒问题,比如说两个球相撞,或者n个球相撞,求每个球的运动轨迹,如果没有触发机制,纯粹使用微分方程求解的话,是很难建模的。
更不用提解决“交通流”问题了,https://tieba.baidu.com/p/3554491924。
触发机制,可以不必考虑整个仿真过程,而只是用条件来约束仿真中的变量变化,当发生了某个条件时,即触发了一种变化,这对于解决不确定系统的问题来说,基本上就和VisSim、Simulink的动态求解是一样的了,就可以处理比较复杂的动力学问题了。
我用“月城case语句”在下面的程序中初步实现了触发:



这个程序只是一个雏形,稳定性鲁棒性很差,求解结果对dt的取值太敏感。我把源程序上传了,http://1000eb.com/13e2y
如何优化这个程序,以提高它的求解稳定性,希望得到各位的帮助。
我感觉在MC中实现触发机制意义重大,可以使MC从静态求解领域向动态求解迈进,用MC处理“系统动力学”问题也就不是神话了。



