Matlab 用m文件采用ODE45与Simulink采用ODE45的运算结果异同??
我开始用M文件采用ODE45进行非线性微分方程求解,外部激励是一个Random,所以把外部激励参数传递到子函数里进行求解,但是计算过程比较慢后来我用Simulink进行求解,同样采用ODE45方法,外部激励是相同的,但是两种方法算出的结果相差几个percent,按理来说,同样的条件,同样的方法,结果应该一致,所以我怀疑编程出了问题,可是找不出问题,只是怀疑是不是在子函数里调用外部激励时出了问题,请教高手:我的外部激励是用的randn函数,个数是时间段/时间步长,在子函数里要用到与每个时间点对应的一个Random数,所以我这样做的 floor(t/时间步长)+1,比如说在时间点2.5秒时调用的random是第2501的数,不知道这样做是不是真的会产生很大误差? 换个确定性的激励试试看,随机的有时候不好说明问题 谢谢,我试试,不过我最终还是要用随机的激励 既然是随机激励,那么两次rand成的激励很可能不同(相同的概率很小),结果不同是必然的。
回复 4楼 的帖子
对,激励是随机的,结果不同是必然的,相同了才有大问题了 我用的是randn函数生成的随机激励,但是我的m文件和simulink的随机激励产生的是一样的,这点我还是明白的回复 6楼 的帖子
既然是随机的,当然每次产生的数都不会相同,所以你的外部激励就不一样了
页:
[1]