1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
function [v,beta,s] = house (x)
%HOUSE find a Householder reflection.
% Example:
% [v,beta,s] = house (x)
% See also: cs_demo
% Copyright 2006-2007, Timothy A. Davis.
% http://www.cise.ufl.edu/research/sparse
n = length (x) ;
if (n == 1)
sigma = 0 ;
else
sigma = x (2:n)' * x (2:n) ;
end
v = x ;
if (sigma == 0)
s = x (1) ;
v (1) = 0 ;
beta = 0 ;
else
s = sqrt (x(1)^2 + sigma) ;
if (x (1) <= 0)
v (1) = x (1) - s ;
else
v (1) = -sigma / (x (1) + s) ;
end
beta = -1 / (s * v(1)) ;
end
|