sleepinglion 发表于 2013-2-28 15:37

矩阵的特征值问题

请问各位大神,矩阵的特征值问题用MATLAB的eig函数能不能全部搞定?为什么我看有的博士论文(齿轮系统动力学方面的论文)还有专门讲解如何求解矩阵特征值的问题呢?

dgyezw007 发表于 2013-7-7 19:01

用MATLAB的eig函数能全部搞定的,只是不能掌握计算精度,而自己编程算可以完全控制所需的精度,不过需要较深的数值计算和编程的知识。

mxlzhenzhu 发表于 2013-7-8 22:54

dgyezw007 发表于 2013-7-7 19:01 static/image/common/back.gif
用MATLAB的eig函数能全部搞定的,只是不能掌握计算精度,而自己编程算可以完全控制所需的精度,不过需要较深 ...

能不能再介绍一下,比如eig()函数的实用性;谢谢。

最近我也遇到这个问题了;我都不知道该相信Nastran还是Matlab了。

或许你是对的,需要自己编程。

补充内容 (2015-12-24 18:29):
eig内部的运算相当复杂;可能会对矩阵预处理一下,最后大抵用QR和QZ算法;而eigs函数会调用隐式重启动的Lanczos算法。

dgyezw007 发表于 2013-7-11 00:23

关于eig()函数的详细介绍,可以参考帮助文件,eig函数只能选用Cholesky或QZ法来解。
你用Nastran算的应该是结构模态吧,是用有限元算的,系统模型本质是无限自由度的(当然有限元前处理将其离散化,但自由度数量一般都是很大的);而Matlab的eig函数是算集中参数模型的,一般自由度数量不会很大。如果你能得到有限元前处理后的总体质量矩阵和总体刚度矩阵,直接用eig函数应该也是可以的。
自己编程主要还是考虑计算精度和计算效率问题,例如通用的有限元程序(Abaqus,Nastran)可能对某些特定问题不是很有效,这时才考虑自己编程采用特殊的数值算法计算。

whdwpy666 发表于 2013-7-31 12:39

help eig
页: [1]
查看完整版本: 矩阵的特征值问题