一个3x3的反射矩阵基于文件构建使用GSL
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转换而不实际找到矩阵的函数。实际上我需要矩阵在我的情况下进行其他工作。]
你肯定normal_vector真的是一个单位矢量? – 2010-08-02 04:36:24
是的,在我发布之前,我仔细检查了一下。 – 2010-08-02 04:45:21