
QR分解
-
2023年3月19日发(作者:夜天光)MATLAB基于Gram-Schmidt的QR分解
程序:
%%基于Gram-Schmidt的QR分解
function[Q,R]=myself_qr(A)
[m,n]=size(A);
ifrank(A)~=n
error('该矩阵⽆法进⾏进⾏基于Gram-Schmidt的QR分解!');%检测参数异常,停⽌程序
end
Q=zeros(m,n);
R=zeros(n,n);
R(1,1)=norm(A(:,1));
Q(:,1)=A(:,1)/R(1,1);
fork=2:n
forj=1:k-1
R(j,k)=Q(:,j)'*A(:,k);
end
q=zeros(m,1);
forj=1:k-1
q=Q(:,j)*R(j,k)+q;
end
R(k,k)=norm(A(:,k)-q);
Q(:,k)=(A(:,k)-q)/R(k,k);
end
测试程序:
clc;
clear;
A=rand(4,3);
[QR]=qr(A);
[Q1R1]=myselfqr(A);
fprintf('qr函数QR结果:n');
Q*R-A
fprintf('myselfqr函数QR结果:n');
Q1*R1-A
结果:
👁️ 阅读量:0
© 版权声明:本文《QR分解》内容均为本站精心整理或网友自愿分享,如需转载请注明原文出处:https://www.zastudy.cn/wen/1686863298a358704.html。