From ab89d579c0423cf5b4f732578b578b23d5c2ec14 Mon Sep 17 00:00:00 2001 From: songyc macbook Date: Sun, 26 Jul 2026 06:54:10 +0900 Subject: [PATCH] =?UTF-8?q?docs:=202.3=20=EC=86=8C=EA=B1=B0=EB=B2=95?= =?UTF-8?q?=EC=9D=98=20=EB=B9=84=EC=9A=A9=20=EB=8B=A8=EA=B3=84=EB=B3=84=20?= =?UTF-8?q?=EC=9C=A0=EB=8F=84=20=EB=B3=B4=EA=B0=95=20(1/3=20n=C2=B3?= =?UTF-8?q?=EA=B3=BC=20n=C2=B2=EC=9D=98=20=EC=9D=B4=EC=9C=A0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 1단계가 n²인 이유(행×성분 세기), 단계별 축소로 제곱합이 되는 구조, 제곱합 ≈ ∫x² = n³/3 적분 근사와 수치 검증(n=100) 추가 - 우변 n²의 순방향/역대입 단계별 유도와 짝짓기 트릭 설명 - LU 재사용 이득을 수치로 정리 (n=1000 → 약 333배) - 스스로 점검 답변에 유도 요약 반영 Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01G8rNxLqi5rYjRamC8uwiJW --- ..._선형방정식_Ax_=_b_풀기_1784805780272_0.edn | 2 +- pages/2.3 행렬 계산과 A = LU.md | 29 +++++++++++++++---- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/assets/2장_선형방정식_Ax_=_b_풀기_1784805780272_0.edn b/assets/2장_선형방정식_Ax_=_b_풀기_1784805780272_0.edn index c661d68..274ccf6 100755 --- a/assets/2장_선형방정식_Ax_=_b_풀기_1784805780272_0.edn +++ b/assets/2장_선형방정식_Ax_=_b_풀기_1784805780272_0.edn @@ -1171,4 +1171,4 @@ :page 55}, :content {:text "[:span]", :image 1784898936929}, :properties {:color "yellow"}}], - :extra {:page 55}} + :extra {:page 4}} diff --git a/pages/2.3 행렬 계산과 A = LU.md b/pages/2.3 행렬 계산과 A = LU.md index 09e316f..c4067c9 100755 --- a/pages/2.3 행렬 계산과 A = LU.md +++ b/pages/2.3 행렬 계산과 A = LU.md @@ -13,10 +13,26 @@ deck:: Logseq/전공공부/선형대수학 - 💡 이 책의 일관된 메시지: $x = A^{-1}b$ 라고 해서 실제로 $A^{-1}$ 를 계산하지는 마라. 소거+역대입이 훨씬 싸다. - **소거법의 비용** (연산 횟수 세기) - 📌 원문 (p.97): ((6a635bbc-cd20-4362-8dcc-ae180ca53cba)) - - $A \to U$: 1단계(1열 소거)는 약 $n^2$ 번의 곱셈·뺄셈, 2단계는 $(n-1)^2$, … → 총합 $n^2 + (n-1)^2 + \cdots + 1^2 \approx \frac{1}{3}n^3$. - - 💡 제곱의 합 $\approx$ $x^2$ 의 적분 = $\frac{1}{3}n^3$ — 미적분과의 연결. - - 우변 $b \to c$ (소거 적용) 그리고 $c \to x$ (역대입): 합쳐서 정확히 $n^2$ 번. - - $$[(n-1) + (n-2) + \cdots + 1] + [1 + 2 + \cdots + (n-1) + n] = n^2$$ + - 세는 단위: 소거의 기본 동작은 "피벗 행에 승수를 **곱해서** 아래 행에서 **뺀다**" — 성분 하나를 갱신할 때마다 곱셈 1번 + 뺄셈 1번이 한 쌍으로 든다. 아래에서 "1번"은 이 (곱셈, 뺄셈) 한 쌍을 뜻한다. + - **왜 1단계가 약 $n^2$ 번인가** — 1열의 피벗 아래를 전부 0으로 만드는 비용: + - 피벗 아래에는 $(n-1)$ 개의 행이 있다. 그 각각의 행에 대해 "1행 × 승수"를 빼야 한다. + - 한 행을 갱신할 때 그 행의 성분 $n$ 개가 각각 (곱셈+뺄셈) 1번씩 필요하다. + - 따라서 1단계 = $(n-1)$ 행 × $n$ 성분 = $n^2 - n$ 번 ≈ $n^2$ 번. (1행 자체는 바뀌지 않으므로 $n^2$ 이 아니라 $n^2 - n$ 이지만, $n$ 이 크면 차이는 무시된다.) + - **왜 총합이 $\frac{1}{3}n^3$ 인가** — 단계마다 문제가 한 사이즈씩 줄어든다: + - 1단계가 끝나면 1행과 1열은 완성. 남은 작업은 오른쪽 아래의 $(n-1) \times (n-1)$ 부분행렬 — 크기 $(n-1)$ 짜리 문제를 새로 시작하는 것과 같다. 그래서 2단계 ≈ $(n-1)^2$ 번, 3단계 ≈ $(n-2)^2$ 번, …, 마지막 단계 ≈ $1^2$ 번. + - $$\text{총합} \approx n^2 + (n-1)^2 + (n-2)^2 + \cdots + 2^2 + 1^2 = \frac{1}{3}n\left(n+\tfrac{1}{2}\right)(n+1) \approx \frac{1}{3}n^3$$ + - 💡 왜 제곱의 합이 $\frac{1}{3}n^3$ 인가: $1^2 + 2^2 + \cdots + n^2$ 은 곡선 $y = x^2$ 아래 넓이를 폭 1짜리 계단으로 근사한 것과 같다. 그 넓이가 적분 $\int_0^n x^2\,dx = \frac{1}{3}n^3$. 정확한 공식 $\frac{1}{3}n(n+\frac{1}{2})(n+1)$ 을 전개해도 최고차항은 $\frac{1}{3}n^3$ 이고, $n$ 이 충분히 크면 $\frac{1}{2}$ 과 $1$ 은 중요하지 않다. + - 수치로 확인: $n = 100$ 이면 제곱의 합은 정확히 $338{,}350$, 근사값 $\frac{100^3}{3} = 333{,}333$ — 오차 1.5%. $n$ 이 클수록 더 정확해진다. + - **왜 우변은 $n^2$ 번뿐인가** — $b$ 는 열 하나(성분 $n$ 개)라서 행렬보다 훨씬 싸다: + - ① 순방향 $b \to c$: 1단계에서 $b_2, \cdots, b_n$ 에서 $b_1$ 의 배수를 뺀다 → $(n-1)$ 번. 2단계는 $b_1$ 과 무관하므로 $(n-2)$ 번. … 마지막 단계는 1번. + - ② 역대입 $c \to x$: $x_n$ 은 $u_{nn}x_n = c_n$ 에서 피벗으로 나누는 1단계. $x_{n-1}$ 은 (이미 구한 $x_n$ 을 대입 + 피벗으로 나눔) 2단계. … $x_1$ 은 $(n-1)$ 개를 대입하고 나누는 $n$ 단계. + - $$\underbrace{[(n-1) + (n-2) + \cdots + 1]}_{①\ b \to c} + \underbrace{[1 + 2 + \cdots + (n-1) + n]}_{②\ c \to x} = n^2$$ + - 💡 $n^2$ 이 되는 짝짓기 트릭 (p.98): ①의 $(n-1)$ 과 ②의 $1$, ①의 $(n-2)$ 와 ②의 $2$, … 를 짝지으면 매 쌍의 합이 $n$ 이고 쌍이 $(n-1)$ 개 → $n(n-1)$. ②에 짝 없이 남은 마지막 $n$ 하나를 더하면 $n(n-1) + n = n^2$. 딱 떨어진다. + - **결론 — $LU$ 를 저장하는 이유를 수치로**: + - $A \to LU$ 분해(비싼 부분): $\approx \frac{1}{3}n^3$ 번 — **한 번만** 하면 된다. + - 새로운 $b$ 마다 드는 비용: $Lc = b$ (순방향) + $Ux = c$ (역대입) = $n^2$ 번. + - $n = 1{,}000$ 이면 $\frac{1}{3}n^3 \approx 3.3$ 억 번 vs $n^2 = 100$ 만 번 — 두 번째 $b$ 부터는 **약 333배 싸게** 푼다. + - ⚠️ 우변 처리에 필요한 정보(각 단계의 승수 $\ell_{ij}$)가 전부 $L$ 에 저장되어 있다는 것이 핵심 — 그래서 $A$ 를 다시 소거할 필요가 없다. - 크기 감각: $n = 1{,}000$ 이면 약 1초. $n$ 이 2배가 되면 시간은 $2^3 = 8$ 배 ($n^3$ 규칙). 실무의 큰 행렬은 대부분 **희소행렬** (sparse matrix, 대부분 성분이 0)이라 $A = LU$ 계산이 훨씬 빠르다. - $A = LU$ **분해** — 이 장의 핵심 공식 - 소거 과정 $EA = U$ 를 뒤집으면 $A = E^{-1}U = LU$. [[2.2 소거행렬과 역행렬]]의 식 (11)이 $\ell_{ij}$ 가 $L$ 의 정확한 위치에 배치됨을 보여줬다. @@ -54,8 +70,9 @@ deck:: Logseq/전공공부/선형대수학 - ② $Ux = c$ 를 **역대입**으로 풀어 $x$ 를 얻는다. - 💡 같은 $A$ 에 우변 $b$ 만 바뀌는 문제를 여러 번 풀 때 진가: 비싼 $\frac{1}{3}n^3$ 분해는 한 번만, 이후는 $b$ 마다 $n^2$ 만 든다. - ### ❓ 스스로 점검 - - $A \to U$ 소거, 우변 처리($b \to c \to x$)의 연산 횟수는 각각 대략 얼마인가? - - $A \to U$ 는 약 $\frac{1}{3}n^3$ 번의 곱셈·뺄셈, 우변은 (소거 + 역대입 합쳐) 정확히 $n^2$ 번. + - $A \to U$ 소거, 우변 처리($b \to c \to x$)의 연산 횟수는 각각 대략 얼마인가? 유도 과정도 요약하라. + - $A \to U$ 는 약 $\frac{1}{3}n^3$ 번: 1단계는 $(n-1)$ 행 × $n$ 성분 ≈ $n^2$ 번이고, 단계마다 부분행렬 크기가 하나씩 줄어 $n^2 + (n-1)^2 + \cdots + 1^2 \approx \int_0^n x^2 dx = \frac{1}{3}n^3$. + - 우변은 정확히 $n^2$ 번: 순방향 $(n-1) + \cdots + 1$, 역대입 $1 + 2 + \cdots + n$ — 합치면 $n^2$. 그래서 $LU$ 를 한 번 구해두면 새 $b$ 마다 $n^2$ 만 든다 ($n=1000$ 이면 분해 대비 약 333배 싸다). - $A = LU$ 에서 $L$ 의 주대각선과 그 아래에는 정확히 무엇이 들어가는가? - 주대각선에는 1, 주대각선 아래 $(i,j)$ 성분에는 소거 때 쓴 승수 $\ell_{ij}$ 가 부호 그대로 들어간다. ($U$ 의 주대각선에는 피벗.) - "소거에서 피벗 행에 곱해 빼는 행은 $A$ 의 행이 아니라 $U$ 의 행이다" — 왜 이 관찰이 $A = LU$ 증명의 핵심인가?