woshiaq 发表于 2011-1-5 16:09

请教用MATLAB求解动力学方程时初始值的取法?

例如动力学方程:{x''}+{x'}+{x}={F}
其中X为一向量,利用matlab中的ode45求解此动力学方程的响应,那么就会涉及到初始值的赋予,请问这个初始值怎么取呢?我用(假设四个)求解的结果是出现NaN   问这怎么解决呢?

appleseed05 发表于 2011-1-5 22:18

一般来说,初始值都是随机取一个小值,因为实际的初始值大多数情况下是不知道的。加入你的系统是线性的,那么随便初始值取什么都会收敛到一个相同的结果,但是如果是非线性系统那就不一定了。针对你的情况,如果你的系统是线性的,结果是NaN的话可能是两种原因,一是系统本身就是不稳定的,二是程序有错误。如果系统是非线性的,请先检查程序有没有错误,系统是不是稳定,如果这两者没有问题,可以改变初始值试试。

yejet 发表于 2011-1-11 10:14

appleseed05 发表于 2011-1-5 22:18 static/image/common/back.gif
一般来说,初始值都是随机取一个小值,因为实际的初始值大多数情况下是不知道的。加入你的系统是线性的,那 ...

你漏说了一种情况,对于某些动力学模型中存在开方项
这经常会导致分析过程中出现这种情况,这个问题就比较麻烦了

woshiaq 发表于 2011-1-12 21:59

回复 3 # yejet 的帖子

那这样怎么处理呢   

yejet 发表于 2011-1-13 09:07

本帖最后由 yejet 于 2011-1-13 09:07 编辑

注意多关注一下论坛的相关讨论
http://forum.vibunion.com/thread-96873-1-1.html
http://forum.vibunion.com/thread-97919-1-1.html
页: [1]
查看完整版本: 请教用MATLAB求解动力学方程时初始值的取法?