返回目录

QR_Householder.m

text/plain
567 bytes
2025-10-22 16:15:58

文件预览

clear; clc;

% 输入参数:
% A:待进行QR分解的矩阵(m×n矩阵)
A = [1 2 3; 4 5 6; 7 8 9];  % 示例矩阵


[m, n] = size(A);
Q = eye(n);

for j = 1 : n - 1
    sigma = sign(A(j, j)) * norm(A(j:n, j), 2);
    u = A(j:n, j) + sigma * eye(n - j + 1, 1);
    beta = sigma * (sigma + A(j, j));
    I = eye(n - j + 1);
    Hj = I - 1 / beta * (u * u');
    Hk = blkdiag(eye(j - 1), Hj);
    Q = Q * Hk;
    A = Hk * A;
end
R = A;

% 输出结果:
% Q:正交矩阵(满足Q'=Q逆)
% R:上三角矩阵(满足A=Q*R)
Q, R