声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4379|回复: 18

[近似分析] 碰撞求解

[复制链接]
发表于 2007-7-21 11:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
function dydt = vv(t,y)
dydt = [y(2);-0.1*y(2)-y(1)+cos(2.8*(t+0.019))];

上面这个方程,假设给他加一个控制条件。
当位移x=0.5时候产生碰撞,然后反向。但是此时速度变为碰撞前的0.8倍。
请问用ode45求解的时候怎么控制?
回复
分享到:

使用道具 举报

发表于 2007-7-21 12:22 | 显示全部楼层
加一个判断语句,类似于分段线性函数的写法,不知道可不可行!
 楼主| 发表于 2007-7-21 13:55 | 显示全部楼层

回复 #2 octopussheng 的帖子

这样不行
发表于 2007-7-21 14:39 | 显示全部楼层
那考虑在求解程序中添加判断语句,

想了下,还真不好实现!难哦!

是不是考虑做一个循环,在循环中加入一个判断语句,我再想想!
发表于 2007-7-21 17:05 | 显示全部楼层
我这样考虑 给一个位移的误差 比如 0.5+(1e-5)和 0.5-(1e-5), 如果位移进入这个范围内,就反向 当然位移的误差越小越好 计算时间就长了:@)
 楼主| 发表于 2007-7-21 17:36 | 显示全部楼层
原帖由 hohoo 于 2007-7-21 17:05 发表
我这样考虑 给一个位移的误差 比如 0.5+(1e-5)和 0.5-(1e-5), 如果位移进入这个范围内,就反向 当然位移的误差越小越好 计算时间就长了:@)


想法是这样的,但是直接用ode45求解的时候是控制不住的
发表于 2007-7-21 20:52 | 显示全部楼层
用fortran或c编个程序就ok,龙特库塔求解模块很好找,然后几条判断语句ok
发表于 2007-7-22 08:36 | 显示全部楼层
确实修改Runge-Kutta法计算程序比我们在这里想着怎么修改函数去让RK识别要好很多,呵呵!

在下面贴两个程序模块,一个是Fotran的,一个是C的,省得无水去找了!

直接作为模块使用,我测试过,没有问题的!

RK法Fotran和C程序.doc

37 KB, 下载次数: 44

程序代码

评分

1

查看全部评分

 楼主| 发表于 2007-7-22 09:21 | 显示全部楼层
原帖由 octopussheng 于 2007-7-22 08:36 发表
确实修改Runge-Kutta法计算程序比我们在这里想着怎么修改函数去让RK识别要好很多,呵呵!

在下面贴两个程序模块,一个是Fotran的,一个是C的,省得无水去找了!

直接作为模块使用,我测试过,没有问题的!


  你说的是已经试着解决上面那个问题了?
发表于 2007-7-22 09:38 | 显示全部楼层
不是,我的意思是这两个模块我用别的方程算过,模块本身是没有问题的

但是里面还需要作些修改,像中原说的,加一些判断语句!

我这两天在算些东西,有些忙不过头,所以就不能帮着修改啦!

无水加油哦,呵呵!
 楼主| 发表于 2007-7-23 16:32 | 显示全部楼层
已经想到一个比较笨的方法解决。就是直接自己编写一个定步长RK 法。如:
http://forum.vibunion.com/forum/ ... p%3Bfilter%3Ddigest
发表于 2007-7-23 19:51 | 显示全部楼层
确实,这个因为是在计算过程中进行判断的,只能根据你的要求去修改RK方法了
发表于 2008-1-15 18:19 | 显示全部楼层
可以用解析法来做吧!但是我现在也还没有调出来!!
 楼主| 发表于 2008-1-15 19:55 | 显示全部楼层

回复 13楼 的帖子

但是我这个解析解比较困难啊
发表于 2008-12-12 22:35 | 显示全部楼层
请问碰撞需要哪些数学方面的知识
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-19 19:02 , Processed in 0.136160 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表