用惩罚方法约束的特征值问题

计算科学 线性代数 特征值 约束 惩罚法
2021-12-12 09:48:09

我试图约束一个特征值问题。我知道利用约束向量的零空间的方法,但我想知道是否会出于相同目的使用惩罚方法。在 MATLAB/Octave 尝试以下操作

r = rand(4,4);
r=r' + r;
p=[1, 0,  0 , -1]';
w=10000;
[V, D] = eig(r + w*p*p');
V

不执行p=[1,0,0,1]对于所有特征向量(系统的组件 1 和 4 应该具有相同的值)。似乎总是有 1 个特征向量,其中第一个和最后一个向量分量的值相同且符号相反。

是否有任何明显的原因导致这种情况发生而我想念它?抱歉,如果这很明显,我的线性代数有点生疏。

1个回答

我发现了错误,我也只需要在右侧约束隐含的单位矩阵:

r = rand(4, 4);
r = r' + r;
p=[1 0 0  -1]';
M = eye(4);
w = 1000; 
[V,D ] = eig(r + w*p*p', M + w*p*p');
V