2013-08-14 8 views
3

Google에서 검색했으며 GSL을 사용하여 직사각형 행렬의 역수를 계산하는 함수를 찾을 수 없습니다. 찾기가 어려웠으므로 여기에 대한 답은 직사각형 행렬의 역행렬을 찾아야 할 때 다른 사람들을 도울 것입니다. GSL을 사용할 수없는 경우 사용하기 쉽고 직사각형 행렬의 역수를 제공하는 대체 라이브러리를 제안하십시오.GSL을 사용하여 C에서 직사각형 행렬의 역함수를 찾는 방법

+0

당신은 적용 [SVD (http://www.gnu.org/software/gsl/manual/html_node/Singular-Value-Decomposition.html) 다음 pseudoinver을 계산할 수 있습니다 예를 들어 [R 문서] (http://hosho.ees.hokudai.ac.jp/~kubo/Rdoc/library/corpcor/html/pseudoinverse.html)에서 제안 된대로 – Evert

+0

C로 어떻게? –

+0

GSL에는 SVD 솔버가 있습니다. 그리고 그것은 단지 매트릭스 곱셈입니다. – Evert

답변

2

예, 가능합니다. Mathematics가 아닌 Linear Algebra 장에 있기 때문에 아마도 지루하지 않았을 것입니다. 먼저

INTgsl_linalg_LU_invert 통해 역을 결정하는 사용 후 LU 분해를 계산하고 GSL에서

(CONST gsl_matrix * LU, CONST gsl_permutation의 * p를 gsl_matrix * 역)

자세한 예제는 여기를 참조하십시오 https://lists.gnu.org/archive/html/help-gsl/2008-11/msg00001.html

+0

https://www.gnu.org/software/gsl/manual/html_node/LU-Decomposition.html – alfC