mxn 행렬을 얻고 QR이 그것을 분해하는 프로그램을 작성하려고합니다.Matlab QR 하우스 홀더 인수 분해가 잘못되었습니다.
아직 완료되지 않았지만 문제가 발생했습니다. 나는 그들이 Q1라는 무엇 위키 피 디아 http://en.wikipedia.org/wiki/QR_decomposition
A=[12,-51,4;6,167,-68;-4,24,-41]
, Q2에서의 예 내 프로그램을 실행 해봤 ... 내가 QTEMP는했다. 매번 Qtemp를 계산할 때 위키피디아와 같은 결과를 얻는 것을보기 위해 인쇄합니다. Q1에서는 그렇지만 Q2에서는 그렇지 않습니다.
Q2와 광산은 같은 값이지만 다른 부호가 있습니다. 그들이 어디에 +있는 -, 그들이있는 -, 나는 + 있습니다. 두 번째 QTEMP에 대한
Q=eye(m);
R=A;
for i=1:min(m-1,n)
ei=zeros(n,1);
ei(i,1)=1;
x=A(:,i);
for j=1:i-1
x(j,1)=0;
end
u=x-norm(x)*ei;
v=u/norm(u);
Qtemp=eye(m)-2*(v*v');
A=Qtemp*A;
disp(Qtemp);
end
말 그대로 그들의 알고리즘을 복사 코드로 번역하지만, 여전히 나쁜 출력 :
이 내 코드입니다.
행렬의 'A (1,1)'이 15이고 Wikipedia의 행렬이 12라는 이유가 있습니까? – horchler
예, 잘못 인쇄되었습니다. 내 코드를 테스트하기 위해 올바른 것을 사용했습니다. 지금 게시글을 수정했습니다. –