碰撞求解
function dydt = vv(t,y)dydt = ;
上面这个方程,假设给他加一个控制条件。
当位移x=0.5时候产生碰撞,然后反向。但是此时速度变为碰撞前的0.8倍。
请问用ode45求解的时候怎么控制? 加一个判断语句,类似于分段线性函数的写法,不知道可不可行!
回复 #2 octopussheng 的帖子
这样不行 那考虑在求解程序中添加判断语句,想了下,还真不好实现!难哦!
是不是考虑做一个循环,在循环中加入一个判断语句,我再想想! 我这样考虑 给一个位移的误差 比如 0.5+(1e-5)和 0.5-(1e-5), 如果位移进入这个范围内,就反向 当然位移的误差越小越好 计算时间就长了:@) 原帖由 hohoo 于 2007-7-21 17:05 发表 http://www.chinavib.com/forum/images/common/back.gif
我这样考虑 给一个位移的误差 比如 0.5+(1e-5)和 0.5-(1e-5), 如果位移进入这个范围内,就反向 当然位移的误差越小越好 计算时间就长了:@)
想法是这样的,但是直接用ode45求解的时候是控制不住的 用fortran或c编个程序就ok,龙特库塔求解模块很好找,然后几条判断语句ok 确实修改Runge-Kutta法计算程序比我们在这里想着怎么修改函数去让RK识别要好很多,呵呵!
在下面贴两个程序模块,一个是Fotran的,一个是C的,省得无水去找了!
直接作为模块使用,我测试过,没有问题的! 原帖由 octopussheng 于 2007-7-22 08:36 发表 http://www.chinavib.com/forum/images/common/back.gif
确实修改Runge-Kutta法计算程序比我们在这里想着怎么修改函数去让RK识别要好很多,呵呵!
在下面贴两个程序模块,一个是Fotran的,一个是C的,省得无水去找了!
直接作为模块使用,我测试过,没有问题的!
你说的是已经试着解决上面那个问题了? 不是,我的意思是这两个模块我用别的方程算过,模块本身是没有问题的
但是里面还需要作些修改,像中原说的,加一些判断语句!
我这两天在算些东西,有些忙不过头,所以就不能帮着修改啦!
无水加油哦,呵呵! 已经想到一个比较笨的方法解决。就是直接自己编写一个定步长RK 法。如:
http://forum.vibunion.com/forum/viewthread.php?tid=32704&extra=page%3D1%26amp%3Bfilter%3Ddigest 确实,这个因为是在计算过程中进行判断的,只能根据你的要求去修改RK方法了 可以用解析法来做吧!但是我现在也还没有调出来!!
回复 13楼 的帖子
但是我这个解析解比较困难啊 请问碰撞需要哪些数学方面的知识
页:
[1]
2