基于文档
http://www.gnu.org/software/gsl/manual/html_node/Householder-Transformations.html
和
http://en.wikipedia.org/wiki/Householder_transformation
我认为下面的代码可以成功地生成与单位向量normal_vector正交的平面上的反射矩阵。
gsl_matrix * reflection = gsl_matrix_alloc(3, 3);
gsl_matrix_set_identity(reflection);
gsl_linalg_householder_hm(2, normal_vector, reflection);然而,据我所知,结果并不是一个反射矩阵。特别是在我的例子中,它有真实的特征值-(2 + 1/3),这对于反射矩阵是不可能的。
所以我的问题是:
(1)我做错了什么?对我来说,这似乎是可行的。
(2)如果这种方法不起作用,有人知道如何使用gsl构建这样的矩阵吗?
作为最后的说明,我意识到gsl提供了在不实际查找矩阵的情况下应用Householder变换的函数。实际上,我需要在我的案例中使用矩阵来做其他工作。
发布于 2010-08-02 12:42:12
反射矩阵P永远不会形成。取而代之的是v,和P = I - \tau v v^T中的一样。
gsl_linalg_householder_hm应用PA转换,必须先用gsl_linalg_householder_transform生成v
https://stackoverflow.com/questions/3384990
复制相似问题