加载中…
个人资料
MATLAB技术论坛
MATLAB技术论坛
  • 博客等级:
  • 博客积分:0
  • 博客访问:590,608
  • 关注人气:489
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

【原创】矩阵Householder变换Matlab代码

(2010-01-16 23:55:24)
标签:

杂谈

分类: MATLAB

本帖由Matlab技术论坛原创,原帖参见http://www.matlabsky.com/thread-4828-1-1.html,转载请注明Matlab技术论坛原创

 

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

 

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
http://www.matlabsky.com
% contact me matlabsky@gmail.com
% 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';

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有