【问题标题】:Generalized eigenvalue problem广义特征值问题
【发布时间】:2011-07-19 13:31:57
【问题描述】:

我正在尝试将广义特征值问题转换为正常的特征值计算。

我有这个代码:

[V,D,flag] = eigs(A, T);

现在我把它转换成:

A1 = inv(T)*A;
[V1,D1,flag1] = eigs(A1);

我不应该得到相同的结果吗?根据我在 Matlab 文档中的理解,第一个方程求解:

A*V = B*V*D

第二个解决了:

A*V = V*D

我错过了什么吗?

谢谢!!

【问题讨论】:

    标签: matlab linear-algebra eigenvector eigenvalue


    【解决方案1】:

    一个简单的例子:

    A = rand(4); B = randn(4); B = B'*B;         %'# some matrices
    [VV,DD] = eig(B\A);
    [V,D] = eigs(A,B);
    V = bsxfun(@rdivide, V, sqrt(sum(V.*V)));    %# make: norm(V(:,i))==1
    

    结果:

    V =
         -0.64581       0.8378      0.77771      0.50851
          0.70571     -0.51601     -0.32503     -0.70623
          0.27278     0.076874     -0.51777      0.25359
          0.10245      0.16095     -0.14641     -0.42232
    VV =
         -0.64581       0.8378     -0.77771     -0.50851
          0.70571     -0.51601      0.32503      0.70623
          0.27278     0.076874      0.51777     -0.25359
          0.10245      0.16095      0.14641      0.42232
    D =
           17.088            0            0            0
                0      0.27955            0            0
                0            0     -0.16734            0
                0            0            0     0.027889
    DD =
           17.088            0            0            0
                0      0.27955            0            0
                0            0     -0.16734            0
                0            0            0     0.027889
    

    注意:特征值的排序并不总是相同的,符号约定也可能不同......

    【讨论】:

      【解决方案2】:

      首先检查T 是否可逆。其次,我确定D = D1V = V1 达到比例因子。检查V1 的每一列是否与V 的对应列相同,达到比例因子(即查看V./V1)。

      【讨论】:

        猜你喜欢
        • 2014-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-09-30
        • 1970-01-01
        • 1970-01-01
        • 2012-02-22
        相关资源
        最近更新 更多