2013-04-10 121 views
0

我有關於手動RREF'給定矩陣的問題。所以我部分解決了這個問題,但我無法弄清楚從哪裏出發。謝謝!MatLab中矩陣的RREF

M = [1 0 2 1 18; 
    0 -3 -2 0 -8; 
    -2 -3 0 0 -41; 
    1 0 -1 1 16]; 
M2=M; 
M2(3,:) = M2(3,:)+(2*M2(1,:)); 
M2(4,:) = M2(4,:)-M2(1,:); 
M3 = M2; 
M3(3,:) = M3(3,:)+M3(2,:); 
M3(3,:) = M3(3,:)-M3(2,:); 
M3(3,:) = M3(3,:)-M3(2,:); 
M3(2,:) = (-1/3)*M3(2,:) 

結束時,我結束了

[1 0 2 1 18; 
0 1 .6667 0 2.6667; 
0 0 6 2 3; 
0 0 -3 0 -2] 
+0

你只對最終結果感興趣嗎?如果是後者,那麼這個問題更適合[math.stackexchange.com](http://math.stackexchange.com)。 – 2013-04-11 11:03:37

+0

您是否發現以下答案有幫助? – 2013-05-28 13:24:52

回答

0

要拿起你離開的地方:

x = [1 0 2 1 18; 0 1 .6667 0 2.6667; 0 0 6 2 3; 0 0 -3 0 -2]; 
x(3,:) = x(3,:)/6; 

x(1,:) = x(1,:) - 2 * x(3,:); 
x(2,:) = x(2,:) - 2/3 * x(3,:); 
x(4,:) = x(4,:) + 3 * x(3,:); 

x(1,:) = x(1,:) - 1/3 * x(4,:); 
x(2,:) = x(2,:) + 2/9 * x(4,:); 
x(3,:) = x(3,:) - 1/3 * x(4,:); 

而且類似rref(x)這將產生:

x = 

    1.0000   0   0 0.0000 17.1667 
     0 1.0000 0.0000   0 2.2223 
     0   0 1.0000   0 0.6667 
     0   0   0 1.0000 -0.5000 

這是一個方便的方法來做到這一點,如果你wa nt來了解其中的所有步驟,但顯然使用rref函數通常更適合查找縮減的行梯形式。

請注意,如果您在matlab中執行所有步驟而不是複製像.6667這樣的值,則不會發生舍入問題。