2009-05-28 3 views
1

제목에서 말했듯이, 나는 양의 명확한 행렬 A에 대해 콜레 스키 LDL 분해를 형성해야합니다 (일반 콜레 스키와 마찬가지로, L의 대각선 1 개, 대각선 행렬입니다). 나는 Lapack에서 단 하나의 함수를 발견했다. 그러나 행렬 A는 tridiagonal이어야한다고 말한다. lapack과 같은 일부 무료 서브 루틴 라이브러리에서 그런 기능을 수행하는 기능이 있습니까?LAPACK/BLAS에 Fortran 서브 루틴이 있습니까? 아니면 LDL 분해를 계산할 다른 곳이 있습니까?

답변

2

체크 아웃 LAPACK에서 SSPTRF 기능 :

목적
=======

SSPTRF는 Bunch-을 사용하여 압축 된 형식으로 저장된 실제 대칭 행렬 A의 인수 분해를 계산 카우프만 대각선 회동 방법

A = U * D * ** U는 T 또는 A = L * D * L ** T는 U (또는 L) permutat의 제품

이온 및 유닛 상부 (하부) 삼각 행렬이고, D는 대칭이고 대각선이고, 은 1x1 및 2x2 대각선 블록이다.

또한, Golub과 밴 대출의는 "매트릭스 계산은"책은 분해를 수행하는 알고리즘을 제공합니다. 제 3 판에서는 138 페이지, 섹션 4.1.2 "Symmetry와 LDL^T Factorization"을 참조하십시오.

관련 문제