解一个豪斯霍尔德矩阵问题已知x=[9,2,6]T,H*x=[-11,0,0]T,如何求得H?H是一个Householde

1个回答

  • Householder矩阵是镜像变换.通过镜像变换,把x=[9,2,6]^T变换为Hx=[-11,0,0]^T.

    那么与镜像平面(就是当作镜子的那个平面)垂直的向量就是:

    y=x-Hx=[20,2,6]^T

    这个y就是第2问要求的y,因为它与镜像平面垂直,所以有:Hy=-y

    再求H.

    先把y单位化:v=y/|y|

    对任意向量x,H把x镜像,镜像平面是与v垂直的平面,所以:Hx=x-2(v,x)v,其中(v,x)代表内积.

    所以:Hx=x-2v(v^T x)=x-2(v v^T)x=(I-2v v^T)x,其中I是3阶单位阵.

    所以:H=I-2v v^T

    我用matlab算了一下:

    H=

    -0.8182 -0.1818 -0.5455

    -0.1818 0.9818 -0.0545

    -0.5455 -0.0545 0.8364