【发布时间】:2017-10-18 18:59:30
【问题描述】:
我正在尝试使用以下运动方程计算阻尼结构的特征值 λ (lambda):
(λ²M + λC + K) x = 0 ,
其中 M、C 和 K 是稀疏矩阵。使用 MATLAB 的 polyeig 函数有效,但我想去更大的系统并利用我的矩阵的稀疏性。我已经使用状态空间线性化来获得广义特征值问题,如下所示:
(A - λB) z = 0,
与
A = [K , 0 ; 0,-M],
B = [-C , -M ; -M, 0],
z = [x ; λx]
用 MATLAB 的 eigs 函数解决这个问题:
lambda = eigs(A,B,10,'sm')
产生以下输出:
lambda =
1.0e+03 *
-0.2518 - 1.3138i
-0.2518 + 1.3138i
-0.4690 - 1.7360i
-0.4690 + 1.7360i
-0.4690 - 1.7360i
-0.4690 + 1.7360i
-0.5387 - 1.8352i
-0.5387 + 1.8352i
NaN + NaNi
NaN + NaNi
前八个特征值是正确的,但似乎后两个特征值无法收敛。增加 Lanczos 基向量的数量似乎并不能改善问题。
然而,奇怪的是,增加计算的特征值的数量 (k) 允许越来越多的特征值收敛:
-
k = 10: 收敛的 lambda 数 = 8 -
k = 20: 收敛的 lambda 数 = 8 -
k = 50: 收敛的 lambda 数 = 8 -
k = 100: 收敛的 lambda 数 = 20 -
k = 120: 收敛的 lambda 数 = 80 -
k = 150: 收敛的 lambda 数 = 150
还值得一提的是,许多不与k 的较低值收敛的特征值似乎是退化的或至少是非常紧密的间隔。
我想知道是否有人能想出对此行为的解释?如果是这样,有什么方法可以使所有特征值收敛而不使k 非常大?谢谢!
【问题讨论】:
-
有趣的问题和高度连贯的问题;我希望每个人都这么好!欢迎来到 Stack Overflow,赞一个:)
-
M、C和K与对称有多接近? -
矩阵都是对称的(理论上和数值上)。
-
@DimitriK 这个问题还没有解决和相关吗?我正在考虑在这个问题上发布一个小赏金,但前提是这对你有用。并且以防您在赏金持续期间能够在一周内回复查询。
-
很抱歉答案不完整,但我还不能发表评论。您的矩阵 A 和 B 似乎是对称的,因此根据this,您的特征值应该是实数,但您计算的特征值很复杂。你能上传你的代码和矩阵吗?
标签: matlab math eigenvalue