%author:野渡无人
%create date:2007-11-20
function [Q,R]=myqr(A)
Q=0;
R=0;
[m,n]=size(A);
if m~=n
fprintf('请输入一个方阵');
return;
end
alpha=zeros(m,n);
beta=zeros(m,n);
K=eye(m,n);
for i=1:m
alpha(:,i)=A(:,i);
end
for i=1:m
beta(:,i)=alpha(:,i);
for j=1:i-1
K(j,i)=dot(alpha(:,i),beta(:,j))/dot(beta(:,j),beta(:,j)) ;
beta(:,i)=beta(:,i)-K(j,i)*beta(:,j);
end
end
for i=1:n
Q(:,i)=beta(:,i)/norm(beta(:,i));
Beta(i)=norm(beta(:,i));
end
R=diag(Beta)*K;
矩阵分解中matlabQR分解自编源代码
最新推荐文章于 2024-01-04 16:47:51 发布