콜레스키 분해
Cholesky decomposition선형 대수학에서, 콜레스키 분해 또는 콜레스키 인수분해(/,lʃski/sh--LES-kee로 발음)는 에르미트 양의 행렬을 더 낮은 삼각 행렬과 그 공역 전치 행렬의 곱으로 분해하는 것으로, 예를 들어 몬테카를로 시뮬레이션에 유용하다.앙드레 루이 촐레스키에 의해 실제 매트릭스가 발견되어 1924년에 [1]사후에 출판되었다.적용 가능한 경우, 콜레스키 분해는 선형 [2]방정식의 시스템을 푸는 데 LU 분해보다 약 두 배 더 효율적입니다.
진술
에르미트 양의 정의 행렬 A의 콜레스키 분해는 다음 형태의 분해이다.
여기서 L은 실수와 양의 대각선 엔트리를 갖는 하부 삼각행렬이고, L*은 L의 켤레 전치이다. 모든 에르미트 양의-정의 행렬(그리고 모든 실수의 대칭 양의-정의 행렬)은 고유한 콜레스키 [3]분해를 갖는다.
역방향은 3차적으로 유지된다.A를 일부 가역 L, 하위 삼각형 또는 기타에 대해 LL*로 쓸 수 있다면 A는 에르미트이고 양의 유한이다.
A가 실행렬인 경우(따라서 대칭적인 양의-확정) 인수분해는 다음과 같이 기술될 수 있다.
여기서 L은 양의 대각 [4][5][6]엔트리가 있는 실제 하위 삼각 행렬입니다.
양의 반정의 행렬
에르미트 행렬 A가 양의 유한 행렬 대신 양의 반 유한 행렬일 경우, L의 대각 엔트리가 [7]0이 될 수 있는 A = LL* 형식의 분해가 여전히 존재한다.분해는 고유할 필요가 없습니다.예를 들어 다음과 같습니다.
그러나 A의 순위가 r이면 정확히 r개의 양의 대각 요소와 n-r 열이 모두 0을 [8]포함하는 고유한 하위 삼각형 L이 있습니다.
또는 피벗 선택이 고정되었을 때 분해를 일의로 할 수 있다.계급 r의 A는 n×n긍정적인semidefinite 매트릭스 형식적으로 다음 적어도 하나의 치환 행렬 P가 PAPT형식 PAPT)LL* L로)[L10L20]{L\displaystyle \mathbf{}={\begin{bmatrix}\mathbf{L}_{1}&는 독특한 분해 이런, 0\\\mathbf{L}_{2}&, 0\end{bmatrix 있다.}}}, where1 L은 양의 [9]대각선을 갖는 r × r 하부 삼각행렬이다.
LDL 분해
고전적인 콜레스키 분해의 밀접하게 관련된 변종은 LDL 분해이다.
여기서 L은 하부 단위 삼각(단위 각도) 행렬이고 D는 대각 행렬입니다.즉, 분해에서 추가적인 대각 행렬 D를 도입하는 비용으로 L의 대각 원소는 1이어야 한다.주된 장점은 LDL 분해를 계산하고 기본적으로 동일한 알고리즘으로 사용할 수 있지만 제곱근 [10]추출을 피할 수 있다는 것이다.
이러한 이유로 LDL 분해는 종종 제곱근 없는 콜레스키 분해라고 불립니다.실행렬의 경우 인수분해는 AT = LDL 형식이며 LDL 분해(또는T LDL 분해, LDL 분해)라고도 합니다.이는 실제 대칭 행렬의 eigendecomposition인 A = QΩQ를T 연상시키지만, δ와 D는 유사한 행렬이 아니기 때문에 실제로는 상당히 다르다.
LDL 분해는 다음과 같이 LL* 형식의 콜레스키 분해와 관련이 있습니다.
반대로, 양의 유한 행렬의 고전적인 콜레스키 A {\ =\{ \mathbf {이 주어진다면, 만약 S가의 대각선을 포함하는 대각 행렬이라면, 분해될 수 있다 \ \^{*}} 여기서
- S - {\ =\ \^{- (각 열을 조정하여 대각 요소 1로 함),
A가 양의 유한이면 D의 대각선 원소는 모두 양의 값이다.양의 반정의 A에 대해서는 대각선 D의 0이 아닌 원소의 수가 정확히 [11]A의 등급인 \{L} \ 분해가 존재한다.콜레스키 분해가 존재하지 않는 일부 부정 행렬은 D에 음의 엔트리가 있는 LDL 분해가 있다: 이것은 A의 첫 번째 n-1 선행 주요 마이너 행렬이 비단수 [12]행렬인 것으로 충분하다.
예
대칭 실행렬의 콜레스키 분해는 다음과 같습니다.
LDLT 분해는 다음과 같습니다.
적용들
콜레스키 분해는 주로 선형 A \ =\ 의 수치 해법에 사용됩니다. 만약 A가 대칭이고 양의 유한이라면, 우리는 번째 로 A x b \\mathbf {Ax} =\를풀 수 있습니다.=^{\} , 、 L {= \} } 、 = = = = = = = = = = ==== \ \ = y \ by by= \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\^{\ 분해에서 제곱근을 얻는 것을 제거하는 다른 방법은 A = {A} {^{\ {\mathrm} 을 계산하는 것입니다으로 D \^{\}\ {x} =\{} } 。
대칭 형태로 만들 수 있는 선형 시스템의 경우 뛰어난 효율성과 수치 안정성을 위해 콜레스키 분해(또는 그 LDL 변형)가 선택 방법입니다.LU 분해와 비교하면 약 [2]2배의 효율이 있습니다.
선형 최소 제곱
A 대칭 및 양의 확정 A를 갖는 Ax = b 형태의 시스템은 응용 프로그램에서 매우 자주 발생한다.예를 들어, 선형 최소 제곱 문제의 정규 방정식은 이 형식입니다.또한 행렬 A가 물리적 고려에서 양수여야 하는 에너지 함수에서 발생할 수 있습니다. 이것은 편미분 방정식의 수치 해법에서 자주 발생합니다.
비선형 최적화
비선형 다변량 함수는 준뉴턴 방법이라고 불리는 뉴턴 방법의 변형을 사용하여 매개변수에 대해 최소화될 수 있습니다.반복 k에서 검색 은 k k - { B _ {} _ { k } = - g { } 이다서 p k { p _ { k}는 스텝 이고 k{ g k }는 그라데이션이다. k는 각 반복마다 랭크 1 업데이트를 반복하여 형성된 헤시안 행렬에 대한 근사치입니다.잘 알려진 두 가지 업데이트 수식을 Davidon이라고 합니다.Fletcher-Powell(DFP) 및 Broyden-Fletcher-Goldfarb-Shanno(BFGS). 헤시안 행렬 자체의 [13]근사치의 콜레스키 분해를 업데이트하는 것이 아니라 반올림 오차를 통한 양의 정의 조건의 손실을 회피한다.
몬테카를로 시뮬레이션
콜레스키 분해는 다중 상관 변수를 가진 시스템을 시뮬레이션하기 위해 몬테카를로 방법에서 일반적으로 사용됩니다.공분산 행렬을 분해하여 아래쪽 삼각 L을 구합니다. 상관 관계가 없는 표본 u의 벡터에 적용하면 [14]모형화할 시스템의 공분산 특성을 가진 표본 벡터 Lu가 생성됩니다.
다음 간단한 예시는 콜레스키 분해로 얻을 수 있는 경제성을 나타내고 있습니다.목표는 상관계수 \ }와 2(\2의 상관관계를 가진 x 1과 x 2를 하는 것입니다.이를 실현하기 위해서는 먼저 다음을 수행해야 합니다.상관없는 2개의 가우스 z1 z_과({2})를 생성합니다.는 Box-Muller 변환을 사용하여 수행할 수 있습니다.필요한 상관계수 {\ \가 주어졌을 때 정규변수는 변환 1 {\} = + - {\ {\ \{1}+{ ^}} 변환으로 구할 수 있습니다.
칼만 필터
무향료 Kalman 필터는 일반적으로 콜레스키 분해를 사용하여 소위 시그마 점 집합을 선택합니다.Kalman 필터는 길이 N의 벡터 x 및 N × N 행렬 P의 공분산으로서 시스템의 평균 상태를 추적합니다.행렬 P는 항상 양의 반확정이며 LL로T 분해될 수 있습니다.L의 열은 평균 x에서 더하고 빼서 시그마 점이라고 불리는 2N 벡터 집합을 형성할 수 있습니다.이러한 시그마 점은 시스템 상태의 평균과 공분산을 완전히 캡처합니다.
행렬 반전
에르미트 행렬의 명시적 역수는 3 n 연산( style { 곱셈)[10]을 사용하여 선형 시스템을 푸는 것과 유사한 방법으로 콜레스키 분해로 계산할 수 있다.전체 반전을 효율적으로 인플레이스 방식으로 수행할 수도 있습니다.
비헤르미트 행렬 B는 다음 아이덴티티를 사용하여 반전할 수도 있습니다.여기서 BB*는 항상 에르미트 행렬입니다.
계산
콜레스키 분해는 여러 가지 방법으로 계산할 수 있습니다.일반적으로 사용되는 알고리즘의 계산 복잡도는 일반적으로 [citation needed]O(n3)입니다.다음에 설명하는 알고리즘은 모두 실제 플레이버의 경우 (1/3)n의3 FLOP(n3/6의 곱셈과 같은 수의 추가)와 복잡한 [15]플레이버의 경우 (4/3)n의3 FLOP를 포함합니다.여기서 n은 매트릭스 A의 크기입니다.따라서 2n/3 FLOP를 사용하는3 LU 분해 비용의 절반(Trefeten 및 Bau 1997 참조)을 가집니다.
다음 알고리즘 중 어떤 알고리즘이 더 빠를지는 구현의 세부 사항에 따라 달라집니다.일반적으로 첫 번째 알고리즘은 데이터에 덜 규칙적으로 액세스하기 때문에 속도가 약간 느려집니다.
콜레스키 알고리즘
분해행렬 L을 계산하는 데 사용되는 콜레스키 알고리즘은 가우스 제거의 수정된 버전입니다.
재귀 알고리즘은 i : = 1로 시작하고
- A(1) : = A.
스텝 i에서 매트릭스(i) A는 다음과 같은 형태를 가진다.
여기서i−1 i는 차원 i - 1의 항등 행렬을 나타낸다.
행렬i L을 다음과 같이 정의하면
(A는 양의 확정이므로 a(i) >0이라는 점에i,i 주의해 주십시오)이 경우 A는 다음과 같이(i) 쓸 수 있습니다.
어디에
b*i는i 외부 제품이기 때문에 (Golub & Van Loan)에서는 이 알고리즘을 외부 제품 버전이라고 부릅니다.
i에 대해 1부터 n까지 반복합니다.n개의 단계를 거치면 A = I이 됩니다(n+1).따라서 우리가 찾고 있는 아래쪽 삼각행렬 L은 다음과 같이 계산된다.
콜레스키-바나치에비치와 콜레스키-크라우트 알고리즘
방정식을 쓰면
다음 정보를 얻을 수 있습니다.
따라서 L 엔트리의 공식은 다음과 같습니다.
복소행렬 및 실행렬의 경우 대각선 및 연관된 오프대각선 요소의 중요하지 않은 임의의 부호 변경이 허용된다.제곱근 아래의 식은 A가 실수이고 정의일 경우 항상 양수입니다.
복소 에르미트 행렬의 경우 다음 공식이 적용됩니다.
왼쪽 위의 엔트리를 알면 (i, j) 엔트리를 계산할 수 있습니다.계산은 보통 다음 순서 중 하나로 배열됩니다.
- 촐레스키-바나치에비치 알고리즘은 행렬 L의 왼쪽 상단 모서리에서 시작하여 행렬 행별로 계산합니다.
위해서 (i = 0; i < > 치수; i++) { 위해서 (j = 0; j <=> i; j++) { 흘러가다 합 = 0; 위해서 (k = 0; k < > j; k++) 합 += L[i][k] * L[j][k]; 한다면 (i == j) L[i][j] = sqrt(A[i][i] - 합); 또 다른 L[i][j] = (1.0 / L[j][j] * (A[i][j] - 합)); } }
- 콜레스키-크라우트 알고리즘은 행렬 L의 왼쪽 상단 모서리에서 시작하여 행렬을 열별로 계산합니다.
위해서 (j = 0; j < > 치수; j++) { 흘러가다 합 = 0; 위해서 (k = 0; k < > j; k++) { 합 += L[j][k] * L[j][k]; } L[j][j] = sqrt(A[j][j] - 합); 위해서 (i = j + 1; i < > 치수; i++) { 합 = 0; 위해서 (k = 0; k < > j; k++) { 합 += L[i][k] * L[j][k]; } L[i][j] = (1.0 / L[j][j] * (A[i][j] - 합)); } }
어느 쪽의 액세스 패턴을 사용해도, 필요에 따라서 계산 전체를 인스톨 할 수 있습니다.
계산의 안정성
우리가 잘 조절된 선형 방정식의 시스템을 풀려고 한다고 가정합시다.LU 분해를 사용하면 피벗 전략을 사용하지 않는 한 알고리즘이 불안정해집니다.후자의 경우 오차는 행렬의 이른바 성장 인자에 따라 달라지는데, 행렬은 일반적으로 (항상 작은 것은 아닙니다.)
이제 콜레스키 분해를 적용할 수 있다고 가정합니다.전술한 바와 같이 알고리즘은 2배의 속도로 동작합니다.또, 피벗은 불필요하고, 에러는 항상 작아집니다.구체적으로 Ax = b를 풀고 y는 계산된 솔루션을 나타내며, y는 교란된 시스템(A + E)y = b를 해결합니다.
여기서 ·는2 행렬 2-노름이고n, c는 n에 따른 작은 상수이고, θ는 단위 반올림이다.
콜레스키 분해에 대해 알아야 할 한 가지 우려는 제곱근의 사용이다.인수분해되는 행렬이 필요에 따라 양의 확정일 경우, 제곱근 아래의 숫자는 정확한 산술에서 항상 양의 값입니다.안타깝게도 반올림 오류로 인해 수치가 음수가 될 수 있습니다.이 경우 알고리즘은 계속할 수 없습니다.그러나 이는 행렬의 조건이 매우 나쁜 경우에만 발생할 수 있습니다.이 문제를 해결하는 한 가지 방법은 분해되는 행렬에 대각 보정 행렬을 추가하는 것입니다.[16]이것은 분해의 정확도를 떨어뜨릴 수 있지만, 다른 이유로 매우 유리할 수 있습니다. 예를 들어, 최적화에서 뉴턴의 방법을 수행할 때, 대각 행렬을 추가하는 것은 최적에서 멀리 떨어져 있을 때 안정성을 향상시킬 수 있습니다.
LDL 분해
A가 대칭일 때 제곱근을 취할 필요가 없는 다른 형태는 대칭 무한 인수분해이다[17].
D 및 L 엔트리에 적용되는 재귀 관계는 다음과 같습니다.
이것은 D에서 생성된 대각 요소가 0이 아닌 한 작동합니다.그러면 분해가 고유해집니다.A가 실재하면 D와 L이 실재한다.
복소 에르미트 행렬 A의 경우 다음 공식이 적용됩니다.
다시 말하면, 액세스 패턴에 의해서, 필요에 따라서 계산 전체를 인스톨 할 수 있습니다.
블록 바리안트
부정행렬에 사용하면 LDL* 인수분석은 신중하게 [18]피벗하지 않으면 불안정하다고 알려져 있습니다.구체적으로는 인수분해의 요소가 임의로 증가할 수 있습니다.가능한 개선은 블록 하위 행렬(일반적으로 2 × 2)[19]에 대해 인수 분해를 수행하는 것입니다.
여기서 위의 행렬의 모든 요소는 정사각형 하위 행렬입니다.이로부터, 이러한 유사한 재귀 관계는 다음과 같습니다.
여기에는 행렬 곱과 명시적 반전이 포함되므로 실제 블록 크기가 제한됩니다.
분해 업데이트
실제로 자주 발생하는 작업 중 하나는 콜레스키 분해의 갱신이 필요하다는 것입니다.자세한 것은, 의 콜레스키 A ∗\ \} \ } { * } } the the the the { { \ style \ { { { { { { { { { { { { { { { in in in { { { { { { { { { { { { in in in in in in 및 업데이트된 의 콜레스키 분해 ~ ~ L ~( { {{ { } } } { L {\ L {{\{{\ {\mathbf {L}}}}}}}}}}}}}} {{{{}}}}}}}}}}}}}}}}}}}}}}}}}}은는) A{\ {A의 콜레스키 분해를 계산하기 위해 이전에 계산되었습니다.
랭크 1 갱신
갱신된 A~\이가) A ~ + \{\A}} \mathbf} 에 된 구체적인 경우.
다음은 1등급 업데이트를 실현하는 Matlab 구문으로 작성된 함수입니다[20].
함수 [L] = cholupdate(L, x) n = 길이(x), k = 1:n r = sqrt(L(k, k)^2 + x(k)^2); c = r / L(k, k), s = x(k, k); k = k인 경우, k = l(k); n인 경우
n등급 업데이트는 M\에 대해 A~ + { { \ mathbf } = \ { + \ 이 분해를 업데이트하는 업데이트입니다.
랭크 1 다운데이트
랭크 1 다운데이는 랭크 1 업데이트와 비슷하지만 덧셈이 뺄셈으로 대체된다는 점이 다릅니다.~ - { \\ } = \ } - \ = 새로운 A ~{ \\ } { * }} 。이것은 새로운 행렬 A ~ { style \ tilde { tilde { tilde \ mathbf { A } }가 아직 양수인 경우에만 작동합니다.
위의 1위 업데이트 코드는 1위 다운데이를 수행하기 위해 쉽게 적응할 수 있습니다.즉, 할당의 2개의 추가 코드를 치환하기만 하면 됩니다.r
그리고.L((k+1):n, k)
뺄셈으로
행 및 열 추가 및 제거
대칭 및 양의 유한 A(\가 블록 형태로 다음과 같이 표현되는 경우:
그리고 그 상부의 콜레스키 인자는
새 A~ {\의 경우와 하지만 행과 열이 새로 삽입되면
우리는 전체 분해량을 직접 계산하지 않고A\style의콜레스키인수분해를 찾는 데 관심이 있습니다.
\= \b} \{b} col ( M) style {의 해에는 A \ \ { A } \ \{b로 적습니다. 다음 관계를 찾을 수 있습니다.
행과 열의 치수를 적절히 설정(제로 포함)하면 이러한 공식을 사용하여 임의의 위치에 행 또는 열을 삽입한 후 콜레스키 계수를 결정할 수 있습니다.역문제는, 만약 우리가
콜레스키 분해가 알려진
콜레스키 인자를 알아내려고 합니다
과열이 제거된 A {A의 경우,
그럼 다음 규칙이 생성됩니다.
새로운 행렬의 콜레스키 분해를 찾는 것과 관련된 위의 방정식은 A ~ ± x { { { } } \ \mathbf \mathbf } , a a notice { a a a a a a a a a a a a a a notice notice notice a a notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice notice가증섹션[21]
양의 반확정 행렬에 대한 증명
인수를 제한하여 증명하다
위의 알고리즘은 모든 양의 유한 A가 콜레스키 분해임을 나타냅니다.이 결과는 제한 인수에 의해 양의 반확정 케이스로 확장될 수 있습니다.이 주장은 완전히 건설적이지 않다. 즉, 콜레스키 인자를 계산하기 위한 명시적 수치 알고리즘을 제공하지 않는다.
A가 n×(\ n n 양의 반각행렬인 시퀀스 k ) : ( + ) \ left ( \ {A} _ { \right )_은(는) 양의 유한 행렬로 구성됩니다.(이것은 예를 들어 다항식 함수 미적분의 스펙트럼 매핑 정리의 직접적인 결과이다.)또한.
연산자 규범에 따릅니다.양의 확정 케이스로부터, 각 kk(\는 노름 연산자의 성질에 의한 콜레스키 A L { }{k를 가진다.
연산자 노름을 갖춘 n)(\ M_이(가) C* 대수이기 에 { \가 유지됩니다. k ) \ ( \ { { } \ )는 연산자의 바나흐 공간의 경계 집합이므로 상대적으로 콤팩트하다(기본 벡터 공간이 유한 차원이기 때문이다).그 결과, ( k \로도 나타나는 수렴적 서브시퀀스를 갖는다. L \ 이 {\이(가) 원하는 특성을 가지고 있는지 쉽게 확인할 수 있습니다. { \ } = \ L }^ { *} } L { \ \{ L lower diagonal diagonalularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularularular
A \ = \ \ 기본 벡터 공간은 유한 차원이기 때문에 연산자 공간의 모든 위상이 동일하다. k ) \ ( \ { { } \ )는 표준 평균 (k \ (\ right )의 L \{L} \ displaystyle \ left ( \ mathbf { L}_ {k} \ right )의 경향이 있습니다._은(는 엔트리에 L{\displaystyle {L}을를) 표시하는 이 있습니다.즉, 각 k \k})는 음의 대각 엔트리가 아닌 삼각형의 하한이므로 L(\displaystyle \mathbf {L도 음의 대각 L(\})
QR 분해에 의한 프루프
A를 양의 반정의 에르미트 행렬이라고 .그리고 제곱근 \{A} =\{B의 곱으로 쓸 수 있다. 이제 QR 분해는 B {\ 에 될 수 있다는 유니터리이고 R은 위쪽 삼각형입니다.분해를 원래의 등식에 삽입하면 ( R ) Q R R R r R r R r Rr R r R r R r \ { B } ^*} = \ mathbf {B } = ( \ } ^{ *} } } } ^*} } ^* ^mathb} * * * * * * * * * * * ^{*}}은(는) 증명을 완료합니다.
일반화
콜레스키 인수분할은 연산자 엔트리가 있는 행렬로 일반화할[citation needed] 수 있습니다(꼭 유한할 필요는 없습니다).{ n { 을(를) 힐베르트 공간의 연속이라고 합니다측정 시스템 행렬 고려
정합으로 작용하다
각각 어디에
는 유계 연산자입니다.만약 A가 모든 유한 k와 임의의 유한 k에 대하여 양의(반유한)이라면
h , h 0 { { \ \ 0} 이 있으면 A = LL* 이 되도록 하위 삼각 연산자 행렬 L이 존재합니다.L의 대각선 엔트리를 양수로 할 수도 있습니다.
프로그래밍 라이브러리 구현
- C 프로그래밍 언어: GNU Scientific Library는 Cholesky 분해의 몇 가지 구현을 제공합니다.
- 맥시마 컴퓨터 대수 체계: 함수
cholesky
콜레스키 분해를 계산합니다. - GNU 옥타브 수치 계산 시스템은 콜레스키 분해를 계산, 업데이트 및 적용하기 위한 몇 가지 함수를 제공합니다.
- LAPACK 라이브러리는 Fortran, C 및 대부분의 언어에서 액세스할 수 있는 Cholesky 분해의 고성능 구현을 제공합니다.
- Python에서 함수는
cholesky
에서numpy.linalg
모듈이 콜레스키 분해를 수행합니다. - Matlab에서는
chol
함수는 콜레스키 분해를 제공합니다.주의:chol
는 기본적으로 입력 행렬의 상위 삼각 계수를 사용합니다. 즉, A R {\ A을(는 계산합니다. 여기서 R {\ R은 상위 삼각 계수가 됩니다.플래그를 전달하여 하위 삼각 계수를 사용할 수 있습니다. - R에서는
chol
함수는 콜레스키 분해를 제공합니다. - 줄리아에서는
cholesky
에서 기능하다LinearAlgebra
표준 라이브러리는 콜레스키 분해를 제공합니다. - 매스매티카에서 함수는 "
CholeskyDecomposition
행렬에 적용할 수 있습니다. - C++ 에서는, 복수의 선형 대수 라이브러리가 이 분해를 서포트합니다.
- Armadillo(C++ 라이브러리)는 다음 명령을 제공합니다.
chol
콜레스키 분해를 하는 거야 - 고유 라이브러리는 희박 행렬과 조밀 행렬 모두에 대해 콜레스키 인수 분해를 제공합니다.
- ROOT 패키지에서는
TDecompChol
수업이 있습니다.
- Armadillo(C++ 라이브러리)는 다음 명령을 제공합니다.
- Analytica에서 함수는
Decompose
콜레스키 분해를 일으킵니다 - Apache Commons Math 라이브러리는 Java, Scala 및 기타 모든 JVM 언어로 사용할 수 있는 구현이 있습니다.
「 」를 참조해 주세요.
메모들
- ^ Benoit (1924). "Note sur une méthode de résolution des équations normales provenant de l'application de la méthode des moindres carrés à un système d'équations linéaires en nombre inférieur à celui des inconnues (Procédé du Commandant Cholesky)". Bulletin Géodésique (in French). 2: 66–67. doi:10.1007/BF03031308.
- ^ a b Press, William H.; Saul A. Teukolsky; William T. Vetterling; Brian P. Flannery (1992). Numerical Recipes in C: The Art of Scientific Computing (second ed.). Cambridge University England EPress. p. 994. ISBN 0-521-43108-5. Retrieved 2009-01-28.
- ^ 골럽앤반론(1996년, 페이지 143년), 혼앤존슨(1985년, 페이지 407년), 트레페텐앤바우(1997년, 페이지 174년).
- ^ Horn & Johnson(1985년, 페이지 407).
- ^ "matrices - Diagonalizing a Complex Symmetric Matrix". MathOverflow. Retrieved 2020-01-25.
- ^ Schabauer, Hannes; Pacher, Christoph; Sunderland, Andrew G.; Gansterer, Wilfried N. (2010-05-01). "Toward a parallel solver for generalized complex symmetric eigenvalue problems". Procedia Computer Science. ICCS 2010. 1 (1): 437–445. doi:10.1016/j.procs.2010.04.047. ISSN 1877-0509.
- ^ 골럽앤반론(1996년, 페이지 147).
- ^ Gentle, James E. (1998). Numerical Linear Algebra for Applications in Statistics. Springer. p. 94. ISBN 978-1-4612-0623-1.
- ^ Higham, Nicholas J. (1990). "Analysis of the Cholesky Decomposition of a Semi-definite Matrix". In Cox, M. G.; Hammarling, S. J. (eds.). Reliable Numerical Computation. Oxford, UK: Oxford University Press. pp. 161–185. ISBN 978-0-19-853564-5.
- ^ a b Krishnamoorthy, Aravindh; Menon, Deepak (2011). "Matrix Inversion Using Cholesky Decomposition". 1111: 4144. arXiv:1111.4144. Bibcode:2011arXiv1111.4144K.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ So, Anthony Man-Cho (2007). A Semidefinite Programming Approach to the Graph Realization Problem: Theory, Applications and Extensions (PDF) (PhD). Theorem 2.2.6.
- ^ 골럽앤반론(1996년, 정리 4.1.3)
- ^ Arora, J.S. Optimal Design 소개(2004), 페이지 327. https://books.google.com/books?id=9FbwVe577xwC&pg=PA327
- ^ Matlab randn 문서.mathworks.com
- ^ ?potrf 인텔 ® 마스 커널 라이브러리 [1]
- ^ Fang, Haw-ren; O'Leary, Dianne P. (8 August 2006). "Modified Cholesky Algorithms: A Catalog with New Approaches" (PDF).
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ Watkins, D. (1991). Fundamentals of Matrix Computations. New York: Wiley. p. 84. ISBN 0-471-61414-9.
- ^ Nocedal, Jorge (2000). Numerical Optimization. Springer.
- ^ Fang, Haw-ren (24 August 2007). "Analysis of Block LDLT Factorizations for Symmetric Indefinite Matrices".
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ 기준:
- ^ Osborne, M. (2010), 부록 B.
레퍼런스
- Dereniowski, Dariusz; Kubale, Marek (2004). "Cholesky Factorization of Matrices in Parallel and Ranking of Graphs". 5th International Conference on Parallel Processing and Applied Mathematics (PDF). Lecture Notes on Computer Science. Vol. 3019. Springer-Verlag. pp. 985–992. doi:10.1007/978-3-540-24669-5_127. ISBN 978-3-540-21946-0. Archived from the original (PDF) on 2011-07-16.
- Golub, Gene H.; Van Loan, Charles F. (1996). Matrix Computations (3rd ed.). Baltimore: Johns Hopkins. ISBN 978-0-8018-5414-9.
- Horn, Roger A.; Johnson, Charles R. (1985). Matrix Analysis. Cambridge University Press. ISBN 0-521-38632-2.
- S. J. Julier와 J. K.울만"확률 분포의 비선형 변환을 근사화하는 일반 방법"
- S. J. Julier와 J. K.Uhlmann, Proc의 "비선형 시스템으로의 칼만 필터의 새로운 확장"AeroSense: 11번째 인터넷.항공우주/방위 감지, 시뮬레이션 및 제어, 1997, 182–193페이지.
- Trefethen, Lloyd N.; Bau, David (1997). Numerical linear algebra. Philadelphia: Society for Industrial and Applied Mathematics. ISBN 978-0-89871-361-9.
- Osborne, Michael (2010). Bayesian Gaussian Processes for Sequential Prediction, Optimisation and Quadrature (PDF) (thesis). University of Oxford.
- Ruschel, Joang Paulo Tarasconi, 학사학위 "CPU와 GPU에서의 콜레스키 분해 병렬 구현" Universidade Federal Do Rio Grande Do Sul, Instituto De Informatica, 2016 페이지 29-30.
외부 링크
과학의 역사
- Sur la résolution numérique des systéquations linéaires, Cholesky의 1910년 원고를 온라인으로, 비브넘(프랑스어와 영어)에서 분석(영어에서는 '테를레차저' 클릭)
정보
- "Cholesky factorization", Encyclopedia of Mathematics, EMS Press, 2001 [1994]
- Cholesky 분해, 데이터 분석 개요서
- www.math-linux.com에서의 콜레스키 분해
- 콜레스키 분해는 과학 만델탈로 간단해졌다.
컴퓨터 코드
- LAPACK은 고밀도 선형 대수 문제를 해결하기 위한 FORTRAN 서브루틴의 집합입니다(DPORTRF, DPORTRF2, 상세 성능).
- ALGLIB에는 C++, C#, Delphi, Visual Basic 등에 대한 LAPACK의 일부 포트가 포함되어 있습니다(spdmatrixcholesky, hpdmatrixcholesky).
- libflame은 LAPACK 기능을 가진 C 라이브러리입니다.
- 오스틴에 있는 텍사스 대학의 콜레스키 인수 분해의 고성능 실장에 관한 메모와 비디오.
- Cholesky : TBB + 스레드 + SSE는 TBB, 스레드 및 SSE(스페인어)를 사용하여 CF의 구현을 설명하는 책입니다.
- 구글의 라이브러리 "세레스 솔버"입니다.
- 매트랩의 LDL 분해 루틴.
- Armadillo는 C++ 선형 대수 패키지입니다.
- Rosetta Code는 Chrestomathy 프로그래밍 사이트입니다.의 토픽을 참조해 주세요.
- AlgoWiki는 알고리즘의 속성 및 구현 기능의 오픈 백과사전(페이지 토픽에 기재되어 있습니다.
- 인텔 ® oneAPI 마스 커널 라이브러리 인텔 최적화 수치 컴퓨팅용 산술 라이브러리 potrf, ?potrs
시뮬레이션에서의 매트릭스 사용
- Martin Hauh, 컬럼비아 대학교 상관 랜덤 변수 및 확률 프로세스 생성