% Householder方法
% 注释的地方需要修改
clear 

A = [17,3,4;3,1,12;4,12,8];           %所求矩阵
for i=1:length(A)-2
    c=A(i+1:end,i);
    sigma1=sign(c(1))*norm(c);
    e1=eye(size(c));
    u=c+sigma1*e1;
    beta1=sigma1*(sigma1+c(1));
    R=eye(length(c))-u*u'/beta1;
    U=eye(length(A));
    U(i+1:end,i+1:end)=R;
    A=U*A*U;
end
vpa(A,8)                           % 结果有效数字位数
                                   % 出现极小的数为计算误差，可视为0