삼각형 (위 또는 아래) 행렬을 반전시키는 간단한 방법이 있습니까?
-
05-07-2019 - |
문제
나는 몇 가지 기본 선형 대수 연산을 구현하려고 노력하고 있으며 이러한 작업 중 하나는 삼각형 (위 및/또는 하부) 행렬의 역전입니다. 그렇게 할 수있는 쉽고 안정적인 알고리즘이 있습니까?
고맙습니다.
해결책
예, 사용하십시오 뒤로 대체. 매트릭스를 반전시키는 표준 알고리즘은 LU 분해 (하위 삼각형 및 상부 삼각형 매트릭스로 분해)를 찾아 삼각형 조각에서 백 스러움을 사용한 다음 결과를 결합하여 원래 행렬의 역수를 얻는 것입니다.
다른 팁
가능하다면 반전하지 마십시오. 그것은 수치 선형 대수의 기본 계명 중 하나입니다.
매트릭스 L 자체를 메모리에 유지하고 계산하는 것이 훨씬 빠르고 수치 적으로 안정적입니다.
inv(L)b
Inv (L)로 다른 일을해야 할 때마다 등을 대체 할 때마다.
반전을위한 관례 알고리즘은 시스템을 해결해야합니다.
inv(L)[1 0 0 ...],
inv(L)[0 1 0 ....],
inv(L)[0 0 1 ....]
그래서, 당신은 그것을 전혀 뒤집지 않는 것이 훨씬 쉽다는 것을 알 수 있습니다.
삼각형 매트릭스 L이 낮을수록 Backsubstitution을 사용하면 오른쪽에 대해 시스템 L X = B를 빠르게 해결할 수 있습니다. b.
L을 반전 시키려면 오른쪽 으로이 시스템을 해결할 수 있습니다. , 0, ..., 1) 결과 용액 벡터를 단일 (반드시 낮은 삼각형) 행렬에 결합합니다.
폐쇄 형식 솔루션에 관심이 있다면 역의 대각선 요소는 원래 대각선 요소의 역전이며, 역의 나머지 요소에 대한 공식은 대각선에서 상하를 움직일 때 점점 더 복잡해집니다. .
제휴하지 않습니다 StackOverflow