如何在 matlab 中确定矩阵,以便在给定已知系数矩阵情况下返回其行缩减梯形形式?显然,我需要一个也适用于未完全排名的矩阵的算法/函数。
我不知道如何处理这个...请任何人帮助我吗?非常感谢!:)
如何在 matlab 中确定矩阵,以便在给定已知系数矩阵情况下返回其行缩减梯形形式?显然,我需要一个也适用于未完全排名的矩阵的算法/函数。
尝试这个!此处的示例具有 3x3 矩阵的等级 2。
A = [1 1 1; 2 2 2; 5 7 6];
rrefA = rref(A);
disp(rrefA) % rref of A
C=[A eye(size(A))];
rrefC = rref(C);
R=rrefC(:,4:6);
disp(R*A) % should get rref of A
disp(R)
我仍然无法理解这个有什么好处,但在 matlab 中你可以简单地(ab)使用斜杠运算符:
>> [rrefA, jb] = rref(A);
>> R = rrefA(:,jb)/A(:,jb);
这是一个示例,表明此方法也适用于非方阵:
>> A = randn(10,3)*randn(3,4);
>> rank(A)
ans =
3
>> size(A)
ans =
10 4
>> [rrefA, jb] = rref(A);
>> R = rrefA(:,jb)/A(:,jb);
>> rank(R)
ans =
3
>> norm(R*A-rrefA)/norm(A)
ans =
1.7351e-15
请注意,这个答案只是代码高尔夫:减少排梯队形式不是最稳定的等级揭示因式分解,正如上面克里斯蒂安克拉森所指出的那样。
你可以解方程,然后使用结果项: