声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1381|回复: 6

[综合讨论] Matlab 用m文件采用ODE45与Simulink采用ODE45的运算结果异同??

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

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

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

x
我开始用M文件采用ODE45进行非线性微分方程求解,外部激励是一个Random,所以把外部激励参数传递到子函数里进行求解,但是计算过程比较慢
后来我用Simulink进行求解,同样采用ODE45方法,外部激励是相同的,但是两种方法算出的结果相差几个percent,按理来说,同样的条件,同样的方法,结果应该一致,所以我怀疑编程出了问题,可是找不出问题,只是怀疑是不是在子函数里调用外部激励时出了问题,请教高手:我的外部激励是用的randn函数,个数是时间段/时间步长,在子函数里要用到与每个时间点对应的一个Random数,所以我这样做的 floor(t/时间步长)+1,比如说在时间点2.5秒时调用的random是第2501的数,不知道这样做是不是真的会产生很大误差?
回复
分享到:

使用道具 举报

发表于 2007-10-29 15:26 | 显示全部楼层
换个确定性的激励试试看,随机的有时候不好说明问题
 楼主| 发表于 2007-10-29 16:03 | 显示全部楼层
谢谢,我试试,不过我最终还是要用随机的激励
发表于 2008-1-24 15:41 | 显示全部楼层
既然是随机激励,那么两次rand成的激励很可能不同(相同的概率很小),结果不同是必然的。
发表于 2008-1-25 15:48 | 显示全部楼层

回复 4楼 的帖子

对,激励是随机的,结果不同是必然的,相同了才有大问题了
 楼主| 发表于 2008-2-19 10:50 | 显示全部楼层
我用的是randn函数生成的随机激励,但是我的m文件和simulink的随机激励产生的是一样的,这点我还是明白的
发表于 2008-2-19 11:58 | 显示全部楼层

回复 6楼 的帖子

既然是随机的,当然每次产生的数都不会相同,所以你的外部激励就不一样了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-18 10:32 , Processed in 0.052879 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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