tianlei2005 发表于 2007-7-19 09:46

请教非对称刚度矩阵的动力学问题

最近遇到一个问题:
{x''}+{x'}+{x}={F},但是K和C不是对称矩阵,这样就不能用eig方法,然后通过正则变换去解。想请教大侠。对于这种问题,还能用振型叠加法求解吗,如果可以,过程是什么,当然如果某位大侠有代码就更好了。另外我用runge-kutta方法去计算,算了2个小时都没有结果?

appleseed05 发表于 2007-7-19 12:36

你到底要求动力学响应还是求特征值?

如果是其特征值,可以用 = eig(A,B,flag)% 由flag指定算法计算特征值D和特征向量V,flag的可能值为:'chol' 表示对B使用Cholesky分解算法,这里A为对称Hermitian矩阵,B为正定阵。'qz' 表示使用QZ算法,这里A、B为非对称或非Hermitian矩阵。
当然也可以直接eig,在求特征值时matlab会自动判断方法,如果非对称就用QZ。

振型叠加法哪本结构动力学或者转子动力学书上都有,按照步骤一步一步来。
你的系统有多少自由度?自由度比较大的话,RK方法计算很慢是很正常的,甚至不能算。你也可以试试Newmark,welson-theta等等方法,精度不错快很多。

如果还觉得慢,那就抛弃matlab吧,fortran的速度要快很多。
推荐几本书,你问的问题都有,你翻一下:
1。Finite Element Procedures
2。邹经湘,结构动力学
3。钟一谔,转子动力学
4。王勖成,有限单元法

[ 本帖最后由 appleseed05 于 2007-7-19 12:42 编辑 ]

tianlei2005 发表于 2007-7-19 14:11

回复 #2 appleseed05 的帖子

谢谢您的建议,我的目的是想用振型叠加法求解动态响应,因为如果K和M都是对称矩阵的话,通过=eig(K,M)得到的的N就是正则振型矩阵,然后通过正则变换就可以求动态响应;我现在的K不是对称矩阵,此时我将得到的N作归一化处理,再将其从新排列得到N1,可是N1‘*K*N1不是对角矩阵,这说明我得到的N1仍不是主振型,请问是哪里出了问题

ME! 发表于 2013-1-8 19:34

我也是同样的问题,求助

hnczf739892267 发表于 2015-1-20 09:21

楼主的问题解决了吗
页: [1]
查看完整版本: 请教非对称刚度矩阵的动力学问题