사용하여 3 × 3 반사 행렬을 구축는 문서를 기반으로 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) 그 방법이 효과가 없다면 누구나 GS11을 사용하여 그러한 매트릭스를 만드는 방법을 알고 있습니까?
[마지막으로, gsl은 행렬을 실제로 찾지 않고 Householder 변환을 적용하는 기능을 제공합니다. 나는 실제로 다른 경우에 행렬을 필요로한다.]
와 당신이 normal_vector 정말 단위 벡터 것을 확실 V를 생성해야합니다, PA 변환을 적용? –
그래, 게시하기 전에 확인 했어. –