2013-04-10 2 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)에 더 적합합니다. –

+0

아래 답변 중 하나를 찾았습니까? –

답변

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 

이가이다 네가하는 경우에 그것을하는 편리한 방법 사이에있는 모든 단계를 알고 있지만, 분명히 rref 기능을 사용하는 것이 일반적으로 축약 형 줄이기 양식을 찾는 것이 좋습니다.

.6667 같은 값을 복사하는 대신 matlab에서 모든 단계를 수행하면 반올림 문제가 발생하지 않습니다.