✅ 操作成功!

QR分解

发布时间:2023-06-16 作者:admin 来源:文学

QR分解

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