먼저 알아야 할 것

  • 벡터, 내적과 노름, 선형독립 (공학수학 선형대수학): ‘벡터, 직선과 평면’ 단원 앞부분의 좌표, 벡터 연산, 내적, 선형독립, 기저
  • 행렬과 행렬-벡터 곱, 행렬 곱셈과 전치 (공학수학 선형대수학): ‘행렬’ 단원의 행렬 종류, 곱셈, 전치, 블록 분할
  • 행렬식, 역행렬, 대각화와 행렬 거듭제곱 (공학수학 선형대수학): ‘행렬’ 단원 전체. 문서의 과목별 관점에 여인수 전개, 부분 피벗팅 가우스–조르당, 대각화 예가 있다
  • 직교성과 직교 사영 (공학수학 선형대수학): ‘직교 행렬과 좌표계’ 단원의 직교 행렬과 두 정리. 문서의 과목별 관점에 있다
  • 추상 벡터공간과 베지어 곡선 (공학수학 선형대수학): ‘곡선’ 단원의 베지어 곡선. 문서의 과목별 관점에 기하 행렬 \(M_B\)와 끝 접선이 있다
  • 주성분 분석 (공학수학 확률과 통계): ‘경계 볼륨과 PCA’ 단원의 PCA
  • LU 분해 (공학수학 선형대수학): ‘삼각 행렬과 LU 분해’ 단원 전체. 문서의 과목별 관점에 있다
  • 도함수의 활용과 최적화 (공학수학 미분적분학): ‘1차원 최적화’ 단원 앞부분의 극값 판정. 문서의 과목별 관점에 있다
  • 헤세 행렬과 극값 판정, 경사 하강법 (공학수학 미분적분학): ‘다차원 최적화’ 단원의 헤세 판정·중심 차분과 기울기·최급상승법. 문서의 과목별 관점에 있다
  • 선형 근사와 뉴턴 방법 (공학수학 미분적분학): ‘비선형 방정식 1’ 단원의 뉴턴-랩슨 방법. 문서의 과목별 관점에 있다
  • 미분방정식과 오일러 방법, 테일러 급수 (공학수학 미분적분학): ‘미분방정식 1’ 단원의 오일러 방법(문서의 과목별 관점)과 테일러 급수
  • 최소제곱법 (공학수학 선형대수학): ‘최소제곱법’ 단원의 오차 노름, 최소제곱 직선과 포물선. 문서의 과목별 관점에 있다
  • 선형변환, 기저 변환 (공학수학 선형대수학): ‘기하 변환’과 ‘직교 행렬과 좌표계’ 단원의 변환과 좌표계

벡터, 직선과 평면

읽기 전에
  1. \(y = mx + b\)로 수직선 \(x = 3\)을 적을 수 있을까? → 직선과 평면의 방정식
  2. 두 벡터에 모두 수직인 벡터를 계산 한 번으로 만들 수 있을까? → 외적
번호 개념 한 줄 개념 코드 연습
01 외적 두 벡터에 모두 수직, 길이는 평행사변형 넓이, 오른손 법칙 verify —
02 직선과 평면의 방정식 직선 \(\mathbf x = \mathbf a u + \mathbf b\), 평면 \((\mathbf x - \mathbf x_0)\cdot\mathbf n = 0\), 부호로 어느 쪽인지 verify —

떠올려 보기: 노트를 닫고 직선의 매개변수 식, 평면의 법선 식, 점이 어느 쪽인지 판정하는 법, 직선과 평면의 교점 공식을 한 장에 써 본다.

행렬

개념: 이 묶음는 공학수학 선형대수학 문서에 과목별 관점으로 합쳤다(위 ‘먼저 알아야 할 것’). 고윳값 정의는 고윳값과 고유벡터에 있다.

기하 변환

읽기 전에
  1. 회전은 행렬 곱인데 평행이동은 덧셈이다. 둘을 행렬 하나로 묶을 수 있을까? → 동차 좌표
  2. 넓이를 지키는 변환은 길이도 지킬까? → 기하 변환의 종류
번호 개념 한 줄 개념 코드 연습
03 기하 변환의 종류 무엇을 지키나: 강체(거리) ⊂ 닮음(각) ⊂ 아핀(평행) ⊂ 사영(곧은 선) fig1 · plot · verify —
04 동차 좌표 끝에 1을 붙여 평행이동도 행렬 곱. 오른쪽 행렬이 먼저 fig1 · plot · verify 동차 좌표 예제 사다리 · 문제 코드

떠올려 보기: 노트를 닫고 강체·닮음·아핀·사영 변환을 ‘지키는 것’으로 포함 관계 그림을 그리고, 점 \(P\) 중심 회전을 동차 좌표 행렬 곱으로 써 본다.

직교 행렬과 좌표계

읽기 전에
  1. 면을 \(x\) 방향으로 2배 늘리면, 면의 법선도 같은 행렬로 바꾸면 될까? → 법선 벡터의 변환
  2. 카메라가 오른쪽으로 움직이면 화면 속 물체의 좌표는 어떻게 될까? → 좌표계 변환
번호 개념 한 줄 개념 코드 연습
05 법선 벡터의 변환 법선은 \((M^{-1})^\top\)로. 직교 행렬이면 \(M\) 그대로 fig1 · plot · verify —
06 좌표계 변환 원점을 빼고 새 축마다 내적: \(X' = R^{-1}T^{-1}X\) verify —

떠올려 보기: 노트를 닫고 직교 행렬의 정의와 두 정리(정규직교 열, 길이·각 보존), 법선 변환식, 좌표계 변환 \(X' = R^{-1}T^{-1}X\)를 써 본다.

반사, 회전, 투영

읽기 전에
  1. 비스듬한 축을 중심으로 돌리는 행렬을 기본 회전만으로 만들 수 있을까? → 임의 축 회전
  2. 세 각도로 자세를 적으면 무엇이 문제일까? → 오일러 각과 짐벌 잠금
  3. 철길이 멀리서 한 점으로 모여 보이는 것을 행렬로 쓸 수 있을까? → 평행 투영과 원근 투영
번호 개념 한 줄 개념 코드 연습
07 반사와 반전 축으로 옮기기 → 축에 대해 부호 뒤집기 → 되돌리기 fig1 · plot · verify —
08 임의 축 회전 다섯 단계로 축을 \(x\)축에 맞추거나 로드리게스 공식 하나로 verify 임의 축 회전 예제 사다리 · 문제 코드
09 오일러 각과 짐벌 잠금 기본 회전 세 번. 가운데가 90°이면 자유도 하나를 잃는다 verify —
10 쿼터니언 \(q = (\cos\frac\theta2, \sin\frac\theta2\mathbf n)\), \(q\mathbf v\bar q\). 짐벌 잠금 없음, 매끄러운 보간 verify —
11 평행 투영과 원근 투영 평행은 크기 그대로, 원근은 \(z\)로 나눠 먼 것이 작게 fig1 · plot · verify —
12 점·직선·평면 사이의 거리와 교점 사영을 빼고 남은 수직 부분, 편미분 0, 법선과의 내적 verify —

떠올려 보기: 노트를 닫고 회전을 나타내는 세 방법(기본 회전의 곱, 축-각과 로드리게스, 쿼터니언)을 장단점과 함께 표로 쓰고, 원근 투영 행렬을 써 본다.

곡선

읽기 전에
  1. 네 점을 모두 지나는 3차 곡선을 이어 붙이면 이음점이 매끄러울까? → 에르미트 곡선
  2. 곡선이 조절점을 꼭 지나지 않아도 된다면 무엇을 얻을까? → B-스플라인
  3. 두 곡선이 같은 방향으로 이어지면 ‘매끄럽다’고 해도 될까? → 곡선의 연속성
번호 개념 한 줄 개념 코드 연습
13 3차 보간 곡선 네 점을 \(u = 0, \frac13, \frac23, 1\)에서 지나게. \(\mathbf p(u) = \mathbf u^\top M_I\mathbf p\) fig1 · fig2 · plot · verify —
14 에르미트 곡선 끝점 둘과 끝 접선 둘로. 이음점 기울기를 맞출 수 있다 fig1 · plot · verify —
15 곡선의 연속성 \(C^0\) 이어짐, \(C^1\) 속도, \(C^2\) 가속도, \(G^1\) 방향만 fig1 · plot · verify —
16 B-스플라인 점을 지나지 않고 근처를 지나며 \(C^2\), 점 하나는 조각 넷에만 fig1 · plot · verify B-스플라인 예제 사다리 · 문제 코드

떠올려 보기: 노트를 닫고 3차 보간·에르미트·베지어·B-스플라인을 ‘무엇으로 정하나, 점을 지나나, 이음점 연속성, 블렌딩 함수가 0 이상인가’ 네 칸의 표로 쓰고, 네 기하 행렬 \(M_I, M_H, M_B, M_S\)가 같은 틀 \(\mathbf u^\top M\mathbf p\)에서 나온다는 것을 설명해 본다.

곡면

읽기 전에
  1. 네 꼭짓점만으로 휘어진 곡면을 만들 수 있을까? → 매개변수 곡면 패치
  2. 곡선을 화면에 그리려면 몇 개의 선분으로 나눠야 할까? → 베지어 곡선의 세분화
번호 개념 한 줄 개념 코드 연습
17 매개변수 곡면 패치 \(u\), \(v\) 두 방향: 쌍선형, 쌍3차(꼬임 벡터), 베지어, 스플라인 fig1 · plot · verify —
18 베지어 곡선의 세분화 중점만으로 반씩 나눠 평평할 때까지. 다른 곡선은 \(M_B^{-1}M\)으로 바꿔서 fig1 · plot · verify —

떠올려 보기: 노트를 닫고 곡면 패치 네 종류의 식과 장단점, 베지어 곡선을 반으로 나누는 중점 계산 세 단계를 써 본다.

경계 볼륨과 PCA

읽기 전에
  1. 비스듬히 길쭉한 물체를 감싸는 가장 작은 상자는 어느 방향일까? → 경계 볼륨
번호 개념 한 줄 개념 코드 연습
19 경계 볼륨 물체를 감싸는 상자. PCA 방향으로 돌리면 꼭 맞는다 fig1 · plot · verify —

떠올려 보기: 노트를 닫고 점 네 개로 평균, 공분산, 고유벡터, 상자의 폭을 구하는 순서를 처음부터 써 본다.

삼각 행렬과 LU 분해

개념: 이 묶음는 공학수학 LU 분해의 과목별 관점으로 합쳤다(삼각 연립방정식, 둘리틀 방법, 오차 줄이기, 역행렬).

반복법

읽기 전에
  1. 미지수가 10만 개인 연립방정식을 소거법 대신 ‘대충 넣고 고치기’로 풀 수 있을까? → 야코비 방법과 가우스-자이델 방법
  2. 식의 순서를 바꾸기만 해도 반복법이 실패할 수 있을까? → 야코비 방법과 가우스-자이델 방법
번호 개념 한 줄 개념 코드 연습
20 야코비 방법과 가우스-자이델 방법 식마다 자기 변수로 풀어 되풀이. 대각 우세면 수렴, 가우스-자이델이 더 빠름 fig1 · impl · plot 야코비와 가우스-자이델 예제 사다리 · 문제 코드

떠올려 보기: 노트를 닫고 야코비와 가우스-자이델의 갱신식, 수렴 조건, 이완 계수의 세 범위를 쓰고, 예의 3×3 계를 한 회차씩 돌려 본다.

보간

읽기 전에
  1. 표에 1, 1.1, 1.2, 1.3의 값만 있을 때 1.15의 값을 짐작하려면? → 다항식 보간
  2. 점을 하나 더 얻었을 때 보간 다항식을 처음부터 다시 구해야 할까? → 뉴턴 다항식과 분할 차분
  3. 두 방향 사이를 직선으로 섞으면 무엇이 문제일까? → 구면 선형 보간
번호 개념 한 줄 개념 코드 연습
21 다항식 보간 \(n + 1\)개 점을 지나는 \(n\)차 이하 다항식은 하나. 라그랑주 \(\sum y_iL_i\) fig1 · plot · verify —
22 뉴턴 다항식과 분할 차분 항 하나씩 덧붙이는 꼴. 계수는 분할 차분표의 대각선 fig1 · impl · plot —
23 구면 선형 보간 사잇각을 \(\theta t\)로 고르게. 쌍선형·삼선형은 축마다 선형 보간 fig1 · plot · verify —

떠올려 보기: 노트를 닫고 라그랑주와 뉴턴 꼴을 같은 세 점으로 각각 만들어 같은 다항식인지 확인하고, 선형 보간·정규화 선형 보간·구면 선형 보간의 차이를 그림으로 그려 본다.

최소제곱법

읽기 전에
  1. 지수 곡선을 최소제곱으로 맞추려는데 정규방정식이 일차가 아니다. 어떻게 할까? → 자료 선형화
번호 개념 한 줄 개념 코드 연습
24 자료 선형화 축을 바꿔 직선으로 편 뒤 최소제곱. 원래 오차의 최소는 아니다 fig1 · plot · verify —

떠올려 보기: 노트를 닫고 오차 노름 세 가지, 최소제곱 직선의 정규방정식, 지수·로그·분수 모형의 선형화 표를 써 본다.

1차원 최적화

읽기 전에
  1. 도함수 없이, 함수 값을 몇 번만 계산해서 최솟값의 위치를 좁힐 수 있을까? → 황금분할 탐색
  2. 함수 계산을 정확히 20번만 할 수 있다면 구간을 어떻게 나눠야 할까? → 피보나치 탐색
번호 개념 한 줄 개념 코드 연습
25 황금분할 탐색 단봉 함수에서 두 점 비교로 구간을 0.618배씩. 회차당 계산 한 번 fig1 · impl · plot —
26 피보나치 탐색 비율을 \(F_{n-k-1}/F_{n-k}\)로 바꿔 회차 수를 미리 정함. 마지막 폭 \((b - a)/F_n\) fig1 · impl · plot —

떠올려 보기: 노트를 닫고 황금분할 탐색의 \(r^2 + r - 1 = 0\)이 어디서 나오는지 그림으로 설명하고, 피보나치 탐색의 회차 수를 허용 오차에서 정하는 법을 써 본다.

다차원 최적화

읽기 전에
  1. 미분할 수 없는 두 변수 함수의 최댓값은 어떻게 찾을까? → 직접 탐색법
번호 개념 한 줄 개념 코드 연습
27 직접 탐색법 도함수 없이: 무작위로 찍기, 한 변수씩, 지나온 방향으로 한 번 더 fig1 · impl · plot —

떠올려 보기: 노트를 닫고 직접 탐색 세 가지와 기울기 방법(최급상승법), 2변수 헤세 판정 \(\lvert H\rvert\)를 한 장에 정리해 본다.

비선형 방정식 1

읽기 전에
  1. 부호가 다른 두 점 사이에서 근을 반드시 찾는 방법은? → 이분법
  2. 도함수를 모를 때 뉴턴 방법을 쓸 수 있을까? → 할선법
번호 개념 한 줄 개념 코드 연습
28 이분법 부호가 다른 구간을 반씩. 늘 수렴하지만 느림 fig1 · impl · plot —
29 할선법 뉴턴의 도함수를 두 점의 기울기로. 근을 사이에 둘 필요 없음 fig1 · impl · plot —

떠올려 보기: 노트를 닫고 이분법·뉴턴·할선법의 갱신식, 멈추는 기준, 장점과 단점을 표로 쓴다.

비선형 방정식 2

읽기 전에
  1. \(x^2 - x - 2 = 0\)을 \(x = g(x)\)로 바꾸는 방법에 따라 결과가 달라질까? → 고정점 반복
  2. 비선형 방정식 두 개를 동시에 푸는 데 뉴턴 방법을 쓸 수 있을까? → 다변수 뉴턴 방법
  3. 근 찾기 방법 네 개 중 무엇을 고를지 가르는 질문은? → 근 찾기 방법 비교
번호 개념 한 줄 개념 코드 연습
30 고정점 반복 \(x = g(x)\)를 되풀이. 근 근처에서 \(\lvert g'\rvert < 1\)이면 선형 수렴 fig1 · fig2 · impl · plot —
31 다변수 뉴턴 방법 각 식을 평면으로 근사해 연립 일차방정식을 풀며 이동. 이차 수렴 fig1 · impl · plot —
32 근 찾기 방법 비교 가르는 질문: 근이 있는 구간을 아는가, 도함수를 아는가 fig1 · plot · verify —

떠올려 보기: 노트를 닫고 고정점 반복의 수렴 조건을 평균값 정리로 설명하고, 다변수 뉴턴 방법의 한 걸음을 행렬로 써 본다.

미분방정식 1

읽기 전에
  1. 오일러 방법보다 정확하게 가려면 무엇을 더 알아야 할까? → 테일러 급수 방법
  2. 미분을 하지 않고도 테일러 급수만큼 정확할 수 있을까? → 룽게-쿠타 방법
번호 개념 한 줄 개념 코드 연습
33 테일러 급수 방법 한 걸음을 고계 도함수까지 넣은 테일러 급수로. \(k = 1\)이면 오일러 fig1 · impl · plot —
34 룽게-쿠타 방법 미분 대신 여러 곳의 기울기를 무게 평균. RK4는 4번 재서 4차 fig1 · impl · plot 룽게-쿠타 예제 사다리 · 문제 코드

떠올려 보기: 노트를 닫고 2차 RK의 두 조건 \(w_1 + w_2 = 1\), \(aw_2 = \frac12\)를 테일러 전개로 끌어내고, RK4의 네 기울기를 써 본다.

미분방정식 2

읽기 전에
  1. \(y'' = \dots\) 같은 2계 방정식에 1계용 RK4를 쓸 수 있을까? → 연립 상미분방정식
  2. 막대 양 끝의 온도만 알 때 안쪽 온도는 어떻게 구할까? → 사격법
  3. 미분방정식을 연립 일차방정식으로 바꿀 수 있을까? → 유한 차분법
번호 개념 한 줄 개념 코드 연습
35 연립 상미분방정식 미지 함수를 벡터로 묶어 같은 공식. 고계는 \(z = y'\)로 1계 연립 fig1 · impl · plot —
36 사격법 모르는 처음 기울기를 짐작해 쏘고 끝점에 맞게 고치기 fig1 · impl · plot —
37 유한 차분법 미분을 이웃 점 차이로 바꿔 삼중대각 연립방정식 하나로 fig1 · impl · plot —

떠올려 보기: 노트를 닫고 같은 막대 문제를 사격법과 유한 차분법으로 각각 푸는 순서를 쓰고, 두 방법이 비선형일 때 어떻게 달라지는지 비교해 본다.

다른 과목과의 연결

흐름

graph TD
  C1["01 외적"]
  C2["02 직선과 평면의 방정식"]
  C3["03 기하 변환의 종류"]
  C4["04 동차 좌표"]
  C5["05 법선 벡터의 변환"]
  C6["06 좌표계 변환"]
  C7["07 반사와 반전"]
  C8["08 임의 축 회전"]
  C9["09 오일러 각과 짐벌 잠금"]
  C10["10 쿼터니언"]
  C11["11 평행 투영과 원근 투영"]
  C12["12 점·직선·평면 사이의 거리와 교점"]
  C13["13 3차 보간 곡선"]
  C14["14 에르미트 곡선"]
  C15["15 곡선의 연속성"]
  C16["16 B-스플라인"]
  C17["17 매개변수 곡면 패치"]
  C18["18 베지어 곡선의 세분화"]
  C19["19 경계 볼륨"]
  C20["20 야코비 방법과 가우스-자이델 방법"]
  C21["21 다항식 보간"]
  C22["22 뉴턴 다항식과 분할 차분"]
  C23["23 구면 선형 보간"]
  C24["24 자료 선형화"]
  C25["25 황금분할 탐색"]
  C26["26 피보나치 탐색"]
  C27["27 직접 탐색법"]
  C28["28 이분법"]
  C29["29 할선법"]
  C30["30 고정점 반복"]
  C31["31 다변수 뉴턴 방법"]
  C32["32 근 찾기 방법 비교"]
  C33["33 테일러 급수 방법"]
  C34["34 룽게-쿠타 방법"]
  C35["35 연립 상미분방정식"]
  C36["36 사격법"]
  C37["37 유한 차분법"]
  C1 --> C2
  C3 --> C4
  C2 --> C5
  C4 --> C5
  C4 --> C6
  C1 --> C6
  C4 --> C7
  C4 --> C8
  C1 --> C8
  C8 --> C9
  C9 --> C10
  C4 --> C11
  C3 --> C11
  C2 --> C12
  C2 --> C13
  C13 --> C14
  C14 --> C15
  C15 --> C16
  C14 --> C17
  C16 --> C17
  C16 --> C18
  C17 --> C18
  C6 --> C19
  C13 --> C21
  C21 --> C22
  C10 --> C23
  C21 --> C23
  C25 --> C26
  C25 --> C27
  C22 --> C29
  C28 --> C30
  C30 --> C31
  C28 --> C32
  C29 --> C32
  C30 --> C32
  C33 --> C34
  C34 --> C35
  C35 --> C36
  C29 --> C36
  C36 --> C37