0

我已经给出了一个nxn上三角矩阵R,我想求解方程组Rx=0,其中x是一个 size 的向量n。此外, 的最低对角线R0( R(n,n)=0)。因此我想设置x(n)=1.

我尝试了一些循环,但我不知道如何解决它。

谢谢您的帮助。

4

1 回答 1

2

保证 R 的特征值为零,并且您想要的解决方案是与该特征值对应的特征向量的倍数。让我们首先创建一些矩阵 R:

>> R = triu(rand(3, 3));
>> R(3, 3) = 0;
>> R

R = 

    0.8147    0.9134    0.2785
         0    0.6324    0.5469
         0         0         0

现在让我们获取特征值和特征向量:

>> [V, E] = eig(R)

V =

    1.0000   -0.9806    0.4289
         0    0.1958   -0.5909
         0         0    0.6833


E =

    0.8147         0         0
         0    0.6324         0
         0         0         0

特征向量是 E 的对角线元素

>> E = diag(E);
>> index = find(abs(E) < 1e-16); %// NB don't use find(E==0) because of fp problems...

现在拉出正确的特征向量

>> v = V(:, index);

并确保其最终元素等于 1

>> v = v / v(end)

v =

    0.6277
   -0.8648
    1.0000

您可以检查这是否是您想要的解决方案

>> R * v

ans =

     0
     0
     0
于 2014-11-26T14:59:34.517 回答