我已经给出了一个nxn
上三角矩阵R
,我想求解方程组Rx=0
,其中x
是一个 size 的向量n
。此外, 的最低对角线R
是0
( R(n,n)=0
)。因此我想设置x(n)=1
.
我尝试了一些循环,但我不知道如何解决它。
谢谢您的帮助。
我已经给出了一个nxn
上三角矩阵R
,我想求解方程组Rx=0
,其中x
是一个 size 的向量n
。此外, 的最低对角线R
是0
( R(n,n)=0
)。因此我想设置x(n)=1
.
我尝试了一些循环,但我不知道如何解决它。
谢谢您的帮助。
保证 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