householder.m

来自「使用QR分解方法计算矩阵特征值的matlab源码」· M 代码 · 共 22 行

M
22
字号
function [v,b]=householder(x)
%Householder变换
n=length(x);
m=max(abs(x));
x=x/m;
q=x(2:n)'*x(2:n);
v(1)=1;
v(2:n)=x(2:n);
if q==0
    b=0;
else
    a=(x(1)^2+q)^(1/2);
    if x(1)<=0
        v(1)=x(1)-a;
    else
        v(1)=-q/(x(1)+a);
    end
    b=2*v(1)^2/(q+v(1)^2);
    v=v/v(1);
end
v=v';

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?