프로그래머를 위한 선형대수/3장

역행렬 실제로는 A의 역행렬 자체가 아니라 '어느 벡터 y에 대한 A의 역행렬 곱하기 y'를 구한다. 이는 연립일차방정식 Ax = y 를 푼 것으로 해석된다. 3.8.1. 정렬이 필요한 상황 대각 성분 중 0인 값이 존재하는 경우 A = LU로 분석하는 것이 불가능하다. 이론 대각성분에서 0을 만나게 되면 나머지 행 중에 0이 아닌 것과 교체한다. 구현 행의 값을 실제로 교체하는 것은 비효율적이므로 간접 참조하도록 한다. 컴퓨터에서는 0도 근사값을 반올림하여 표시할 뿐이다. 따라서 '절댓값이 최대인 것을 고른다'는 방식을 취한다. 3.8.2. 정렬해도 앞이 막혀버리는 상황 피보팅(행의 교체)만으로 해결되지 않는 경우 열까지도 교체하여 분해를 시도할 수 있다. 정사각인데도 도중에 막히는 경우는 어차피 정칙..
3.4. LU 분해의 순서 앞 절의 설명한 LU 분해의 순서를 형식적으로 풀어낸 과정 분해를 했더라도 L, U를 각각 행렬로서 다루면 메모리를 비효율적으로 사용하게 된다. 비어 있는 장소나 1로 정해져 있는 장소 등은 기록할 필요가 없다. 3.5. LU 분해 정방행렬 A에 대하여 A = LU 상태로 분해되면 행렬식 det A는 바로 구해진다. 3.6. 일차방정식 LU 분해로 풀다 방향과 계획 푸는 방법 연산량 변수소거법 가우스 요르단 소거법(Ax = y) LU 분해 Lz = y로 풀다 Ux = z를 풀다 나눗셈 n n n 0 n 곱셈 n^3 / 3 n^3 / 2 n^3 / 3 n^2 / 2 n^2 / 2 뺄셈 n^3 / 3 n^3 / 2 n^3 / 3 n^2 / 2 n^2 / 2 같은 A에서 여러 가지 ..
3.3.1. 정의 주어진 행렬 A에 대해 A를 하삼각행렬 L과 상삼각행렬 U의곱으로 나타내는 것 분해해서 무엇이 좋은가 처음부터 그런 분해가 되는가 분해된다고 해도 계산량은 어떤가 3.3.2 분해하면 뭐가 좋나요? 행렬식을 구하거나 일차방정식을 푸는 것이 간단해진다. 3.3.3. 처음에 분해가 가능한가요? 1행, 1열, 2행, 2열 ... 순서로 앞이 정해지면 뒤는 줄줄이 결정된다. 순서만 잘 따지면 분해가 된다고 이해할 수 있다. 대부분의 경우 A = LU 로 분해된다. 3.3.4. LU 분해의 계산량은? 연산 횟수 정리 출처: 히라오카 카즈유키, 호리 겐, 『프로그래머를 위한 선형대수』, 이창신, 길벗, 2017.
3.1.1. 수치 계산을 얕보지 마라 주의할 사항 수치의 정도는 유한하다. 계산량 및 메모리 소비량을 줄여야 한다. 3.1.2. 이 책의 프로그램에 대해 소스코드를 내려받을 수 있다. 학습용으로 제공되는 것이고 본방용은 아니다. 3.2. 준비 운동 벡터까지의 합 for 루프를 돌려 성분마다 조작 행렬과 벡터의 곱 이중 루프 앞 행렬의 열 수와 뒷 행렬의 행 수가 같은지 확인 각 대응하는 성분을 곱하여 합계 구하기 행렬끼리의 곱은 삼중 루프가 된다 출처: 히라오카 카즈유키, 호리 겐, 『프로그래머를 위한 선형대수』, 이창신, 길벗, 2017.
chanmuzi
'프로그래머를 위한 선형대수/3장' 카테고리의 글 목록