fix: 2.3 보강분의 볼드 안 LaTeX 중첩 4곳 수정 + 커밋 전 검증 절차 규칙화

- 어제 보강한 소거법의 비용 소제목들(왜 1단계가 약 n²인가 등)의 중첩 분리
- CLAUDE.md: 페이지 수정 후 커밋 전 볼드-수식 중첩 검사 스크립트 실행을 필수 절차로 명시

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G8rNxLqi5rYjRamC8uwiJW
This commit is contained in:
songyc macbook 2026-07-26 06:59:04 +09:00
parent ab89d579c0
commit 7f3b8fee3b
2 changed files with 15 additions and 4 deletions

View File

@ -40,6 +40,17 @@ disable-anki-sync:: true
- ⚠️ **수식은 반드시 다른 마크업 밖에 단독으로 쓴다.** `$...$`가 굵은 글씨(`**...**`) 등 다른 문법 안에 중첩되면 Logseq이 수식을 렌더링하지 못하고 문자 그대로 노출된다.
- 잘못된 예: `**3차원 ($\mathbb{R}^3$)**` → 올바른 예: `**3차원** ($\mathbb{R}^3$)`
- 강조하려는 구절에 수식이 섞여 있으면 텍스트 부분만 `**...**`로 감싸고 수식은 밖으로 뺀다. 예: `$Ax$ **를 계산하는 2가지 방법**`
- ⚠️ **Claude가 반복적으로 어긴 규칙이다 (특히 소제목·헤더성 볼드 구절에서). 페이지를 작성·수정했으면 커밋 전에 반드시 아래 검사를 실행해 위반 0건을 확인한다:**
```bash
python3 -c "
import re, io, glob
bad = 0
for f in glob.glob('pages/*.md'):
for i, l in enumerate(io.open(f, encoding='utf-8'), 1):
for m in re.finditer(r'\*\*([^*]+?)\*\*', l):
if '\$' in m.group(1): print(f'{f}:{i}:', m.group(0)[:80]); bad += 1
print('볼드-수식 중첩 위반:', bad)"
```
- 언어는 한국어. 수학·전문 용어는 필요시 영어 병기.
- ## 정리 스타일 (기존 노트 기준)

View File

@ -14,21 +14,21 @@ deck:: Logseq/전공공부/선형대수학
- **소거법의 비용** (연산 횟수 세기)
- 📌 원문 (p.97): ((6a635bbc-cd20-4362-8dcc-ae180ca53cba))
- 세는 단위: 소거의 기본 동작은 "피벗 행에 승수를 **곱해서** 아래 행에서 **뺀다**" — 성분 하나를 갱신할 때마다 곱셈 1번 + 뺄셈 1번이 한 쌍으로 든다. 아래에서 "1번"은 이 (곱셈, 뺄셈) 한 쌍을 뜻한다.
- **왜 1단계가 약 $n^2$ 번인가** — 1열의 피벗 아래를 전부 0으로 만드는 비용:
- **왜 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$ 인가** — 단계마다 문제가 한 사이즈씩 줄어든다:
- **왜 총합이** $\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$ 개)라서 행렬보다 훨씬 싸다:
- **왜 우변은** $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$ 를 저장하는 이유를 수치로**:
- **결론 —** $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배 싸게** 푼다.