LU 분해 계산기
두리틀 소거법으로 정방행렬을 하삼각행렬과 상삼각행렬로 분해합니다.
행렬 분해
같은 행의 원소는 쉼표나 공백으로, 행 사이는 세미콜론으로 구분하세요.
LU 분해 안내
LU 분해는 정방행렬 A를 L과 U의 곱으로 나타냅니다. L은 주대각선 위의 모든 원소가 영인 하삼각행렬입니다. U는 주대각선 아래의 모든 원소가 영인 상삼각행렬입니다. 여기서 사용하는 두리틀 방식에서는 L의 대각 원소가 모두 일입니다. 표시된 두 인수를 곱하면 일반적인 부동소수점 반올림 오차를 제외하고 원래 입력 행렬이 복원됩니다.
이 분해는 가우스 소거법을 바탕으로 합니다. 피벗 아래의 원소를 없애는 데 사용하는 각 소거 승수를 L에 저장하고, 변형되는 행 사다리꼴 행렬이 U가 됩니다. 이 구조는 소거 작업을 버리지 않고 기록한다는 장점이 있습니다. L과 U를 구해 두면 같은 계수행렬에 대해 우변이 다른 여러 연립방정식을 처음부터 소거하는 것보다 훨씬 효율적으로 풀 수 있습니다.
A × x = b를 풀려면 먼저 전진대입으로 L × y = b를 풀고, 이어 후진대입으로 U × x = y를 풉니다. 삼각 연립방정식은 각 단계의 방정식에서 새로운 미지수가 하나만 등장하므로 계산이 간단합니다. LU 인수는 행렬식 계산에도 유용합니다. L의 대각 원소가 일이면 행렬식은 U의 대각 원소를 곱한 값입니다. 역행렬 계산과 수치 시뮬레이션에서도 이 구조를 기본 구성 요소로 사용합니다.
이 계산기는 간결한 행렬 표기법을 지원합니다. 각 행의 값은 쉼표나 공백으로 구분하고 행 사이에 세미콜론을 넣으세요. 이 형태의 LU 분해는 정방행렬이 필요하므로 각 행의 원소 수가 전체 행 수와 같아야 합니다. 음수와 소수를 지원합니다. 결과는 표시할 때만 반올림하며 소거 연산 자체는 JavaScript 배정밀도 산술을 사용합니다.
구현에는 피벗 선택 없는 두리틀 분해를 사용하므로 소거 중 만나는 모든 피벗은 영이 아니어야 합니다. 가역행렬이라도 첫 피벗이 영이면 분해 전에 행 순서를 바꿔야 할 수 있습니다. 완전한 수치 라이브러리는 이를 순열행렬 P로 나타내어 P × A = L × U 관계를 사용합니다. 피벗 오류가 나오면 적절히 행 순서를 바꿔 입력하거나 피벗 선택을 지원하는 풀이기를 사용하세요. 조건이 양호한 수업 예제와 대각 피벗을 사용할 수 있는 행렬에는 명확하고 바로 확인 가능한 분해 결과를 제공합니다.
LU 분해 예시
| 행렬 A | 인수 | 확인 |
|---|---|---|
| 4,3;6,3 | L: 1,0;1.5,1 및 U: 4,3;0,-1.5 | L과 U를 곱하면 원래의 두 행 행렬이 됩니다. |
| 2,0;0,5 | L: 단위행렬, U: 2,0;0,5 | 대각행렬은 이미 상삼각행렬입니다. |
| 2,1,1;4,-6,0;-2,7,2 | L: 1,0,0;2,1,0;-1,-1,1 | 대응하는 U의 행은 2,1,1;0,-8,-2;0,0,1입니다. |
LU 분해 계산 방법
- 각 행을 쉼표나 공백으로 구분한 숫자로 작성하세요.
- 행을 세미콜론으로 연결하고 정방행렬인지 확인하세요.
- '행렬 분해'를 선택해 두리틀 가우스 소거법을 실행하세요.
- L과 U를 확인한 뒤 곱하여 입력 행렬과 같은지 확인하세요.
LU 분해 자주 묻는 질문
LU 분해란 무엇인가요?
정방행렬을 하삼각행렬과 상삼각행렬로 인수분해하는 것입니다. 행 순열이 필요하지 않으면 두 행렬의 곱이 원래 행렬과 같습니다.
LU 분해는 왜 유용한가요?
계수행렬이 같은 여러 연립방정식을 풀 때 소거 작업을 재사용할 수 있습니다. 행렬식, 역행렬, 수치해석 계산도 간단해집니다.
어떤 형식으로 행렬을 입력하나요?
행 안의 원소는 쉼표나 공백으로, 행 사이는 세미콜론으로 구분하세요. 각 행의 원소 수는 전체 행 수와 같아야 합니다.
피벗 오류가 발생하는 이유는 무엇인가요?
피벗 선택 없는 두리틀 소거법은 영인 피벗으로 나눌 수 없습니다. 행 순서를 바꾸면 해결될 수 있으며, 범용 소프트웨어는 순열행렬과 부분 피벗 선택을 사용합니다.
소수와 음수를 입력할 수 있나요?
네. 유한한 소수와 음수를 입력할 수 있습니다. 인수를 읽기 쉽게 표시값은 소수점 아래 여덟 자리로 반올림합니다.