【原创】矩阵Householder变换Matlab代码_风雪夜归人_新浪博客

本帖由坛原创,原帖参见,转载请注明Matlab技术论坛原创

 

如果有任何问题、建议,或者更多资源、代码、视频,欢迎您访问专业的Matlab技术交流平台——Matlab技术论坛

 

Wish my dear girl,healthy pretty and oveliness

 

2010-1-16 23:42:17

 

function [H,rho]=householder(x,y)
% 求解正交对称的Householder矩阵H,使Hx=rho*y,其中rho=||x||/||y||
%
% 参数说明
% x:列向量
% y:列向量,x和y必须具有相同的维数
%
% 实例说明
% x=[3 5 6 8]';
% y=[1 0 0 0]';
% H=householder(x,y);
% H*x-rho*y % 验证Hx=rho*y
% H'*H % 验证正交
%
% 关于HouseHolder变换
% 1.H=I-2vv',其中||v||=1,我们称H为反射(HouseHolder)矩阵,易证H对称且正交
% 2.如果||x||=||y||,那么存在HouseHolder矩阵H=I-2vv,其中v=±(x-y)/||x-y||,使Hx=y
% 3.如果||x||≠||y||,那么存在HouseHolder矩阵H,使Hx=rho*y,其中rho=||x||/||y||
% 4.Householder矩阵,常用于将一个矩阵A通过正交变换对角阵
%
% by dynamic of Matlab技术论坛
% see also

% contact me
% 2010-01-16 23:31:29
%
x=x(:);
y=y(:);
if length(x)~=length(y)
    error('The Column Vectors X and Y Must Have The Same Length!');
end
rho=norm(x)/norm(y);
y=rho*y;
v=(x-y)/norm(x-y);
I=eye(length(x));
H=I-2*v*v';

郑重声明:资讯 【【原创】矩阵Householder变换Matlab代码_风雪夜归人_新浪博客】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——