matlab数值分析程序--高等数学,数值代数的matlab实现-文字版, matlab电子书, 和matlab 有关的电子书:

5.5 豪斯霍尔德(Householder)方法及其MATLAB程序

5.5  豪斯霍尔德(Householder)方法及其MATLAB程序


豪斯霍尔德变换(Householder transformation)又称初等反射(Elementary reflection),最初由A.C Aitken在1932年提出。Alston Scott Householder在1958年指出了这一变换在数值线性代数上的意义。这一变换将一个向量变换为由一个超平面反射的镜像,是一种线性变换。其变换矩阵被称作豪斯霍尔德矩阵,在一般内积空间中的类比被称作豪斯霍尔德算子。超平面的法向量被称作豪斯霍尔德向量。




如果 v 给出为单位向量而 I 是单位矩阵,则描述上述线性变换的是 豪斯霍尔德矩阵 (v^* 表示向量v 的共轭转置)

H = I - 2 vv^*.\,

豪斯霍尔德矩阵有如下性质:

进一步的,H 实际上按上面描述的那样反射了点 X (用它的位置向量 x 来识别),因为

Hx = x-2vv^*x = x - 2\langle v,x\rangle v,

这里的 \langle, \rangle 表示点积。注意 \langle v, x\rangle 等于从 X 到超平面的距离。



豪斯霍尔德变换可以将向量的某些元素置零,同时保持该向量的范数不变。例如,将非零列向量\mathbf{x}=[x_1,\ldots,x_n ]^T变换为单位基向量\mathbf{e}=[1,0,\ldots,0]^T的豪斯霍尔德矩阵为

\mathbf{H} = \mathbf{I} - \frac{2}{\langle \mathbf{v},\mathbf{v} \rangle}
\mathbf{vv}^H

其中豪斯霍尔德向量\mathbf{v}满足:

\mathbf{v} = \mathbf{x} + \rm{sgn}(x_1) \Vert x \Vert_2 \mathbf{e}_1 . \,

Dubrulle 在2000年给出了将豪斯霍尔德变换应用于生成一个一般的稀疏向量的一个数值稳定的算法。

对一个矩阵的各个列向量逐一进行相应的豪斯霍尔德变换,可以将这个矩阵变换为上海森伯格矩阵、上三角矩阵等形式。后者就是QR分解的豪斯霍尔德算法。


欢迎转载,转载请注明来自一手册:http://yishouce.com/book/3/3050500.html
友情链接It题库(ittiku.com)| 版权归yishouce.com所有| 友链等可联系 admin#yishouce.com|粤ICP备16001685号-1