수치해석 공식 모음- Midterm
수치해석 1장부터 7장까지의 암기할 공식들만 적어놓은 포스트이다.
1. Vector
벡터 기본
1. 벡터 크기 (length)
\[\|\vec{a}\| = \sqrt{a_1^2 + a_2^2 + \dots + a_n^2}\]2. 단위 벡터 (unit vector)
\[\hat{a} = \frac{\vec{a}}{\|\vec{a}\|}\]내적 (Dot Product)
1. 공식 (정의)
\[\vec{a} \cdot \vec{b} = a_1b_1 + a_2b_2 + \dots + a_n b_n\]2. 각도와의 관계
\[\vec{a} \cdot \vec{b} = \|\vec{a}\| \|\vec{b}\| \cos \theta\]3. 직교(수직) 조건
\[\vec{a} \cdot \vec{b} = 0 \Rightarrow \vec{a} \perp \vec{b}\]외적 (Cross Product, 3차원 전용)
1. 공식 (벡터 형태)
\[\vec{a} \times \vec{b} = \begin{bmatrix} a_2b_3 - a_3b_2 \\ a_3b_1 - a_1b_3 \\ a_1b_2 - a_2b_1 \end{bmatrix}\]2. 크기와 방향
\[\|\vec{a} \times \vec{b}\| = \|\vec{a}\| \|\vec{b}\| \sin\theta\]- 결과 벡터는 벡터 a, b 양쪽에 대해 수직
- 오른손 법칙 적용
방향 관련
각도 구하기
\[\cos \theta = \frac{\vec{a} \cdot \vec{b}}{\|\vec{a}\|\|\vec{b}\|}\]법선 벡터 구하기
- 두 벡터 u, v 가 평면 위에 있을 때:
직선 관련
1. 매개변수 표현 (3D)
\[\vec{x}(u) = \vec{a} + u \vec{b}\]- a : 한 점, b : 방향 벡터
2. 두 점 P0, P1지나는 직선
\[\vec{x}(u) = (1 - u)\vec{P}_0 + u\vec{P}_1\]평면 관련
1. 일반형
\[ax + by + cz + d = 0\]2. 벡터형 (점 + 법선 벡터)
\[(\vec{x} - \vec{x}_0) \cdot \vec{n} = 0\]직선과 평면의 교차 조건
1. 직선:
\[\vec{x} = \vec{a} + u \vec{b}\]2. 평면:
\[(\vec{x} - \vec{x}_0) \cdot \vec{n} = 0\]- 교차 조건:
- 평행 or 포함:
2. Matrix
기본 연산 공식
항등행렬
\(AI = IA = A\)
전치행렬 (Transpose)
\[(A^T)_{ij} = A_{ji}\] \[(A^T)^T = A\] \[(AB)^T = B^TA^T\]행렬식 (Determinant)
1. 2X2 행렬
\[\left| \begin{matrix} a & b \\ c & d \end{matrix} \right| = ad - bc\]2. 3X3 행렬
\[|A| = a_{11}(a_{22}a_{33} - a_{23}a_{32}) - a_{12}(a_{21}a_{33} - a_{23}a_{31}) + a_{13}(a_{21}a_{32} - a_{22}a_{31})\]역행렬 (Inverse)
1. 정의
\[A^{-1} A = AA^{-1} = I\]- 존재 조건: \(|A| \ne 0\)
2. 2X2 행렬 역행렬
\[A = \begin{bmatrix} a & b \\ c & d \end{bmatrix} \Rightarrow A^{-1} = \frac{1}{ad - bc} \begin{bmatrix} d & -b \\ -c & a \end{bmatrix}\]가우스-조르당 소거법
-
확대 행렬 [A I]에서 시작 - A를 항등행렬로 바꾸면, 오른쪽은 A의 역행렬
고유값 & 고유벡터 (EigenValue)
1. 정의
\[AX = \lambda X\]2. 특성 방정식
\[\det(A - \lambda I) = 0\]대각화 (Diagonalization)
1. 대각화 가능 조건
- n개의 선형 독립 고유벡터 존재
2. 수식
\[A = PDP^{-1}\]- P: 고유벡터들을 열벡터로 구성한 행렬
- D: 고유값을 대각에 가지는 대각행렬
3. Transformation
기본 변환 공식
1. 2D Translation (이동)
\[x' = x + t_x,\quad y' = y + t_y\]2. 2D Scaling
- Uniform scaling (모든 축 동일):
- Non-uniform scaling:
3. 2D Rotation (원점 기준)
\[x' = \cos\theta \cdot x - \sin\theta \cdot y \\ y' = \sin\theta \cdot x + \cos\theta \cdot y\]Isometry 변환
- 거리, 각도 유지
- 조건:
\(A = \begin{bmatrix} a & b \\ c & d \end{bmatrix}\)
가 직교 행렬
⇒ \(AA^T = I, \det(A) = \pm 1\)
Similarity (유사변환)
- Isometry + Scaling
- 조건: \(A = \begin{bmatrix} a & b \\ c & d \end{bmatrix},\ A^T A = k^2 I\)
Shear (전단변환)
-
x방향 전단: \(x' = x + k y\)
-
y방향 전단: \(y' = y + k x\)
-
행렬:
Affine Transformation
\[\begin{bmatrix} x' \\ y' \\ 1 \end{bmatrix} = \begin{bmatrix} a & b & t_x \\ c & d & t_y \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ 1 \end{bmatrix}\]- 직선성, 평행성, 비율 유지
Linear Transformation (3D)
- Translation 제외한 선형 변환:
- 조건: \(\det(M) \ne 0 (역행렬 존재)\)
Homogeneous Coordinates (동차좌표)
일반 변환:
\[\vec{X}' = M \vec{X} + \vec{T} \Rightarrow \begin{bmatrix} x' \\ y' \\ z' \\ 1 \end{bmatrix} = \begin{bmatrix} M & T \\ 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ z \\ 1 \end{bmatrix}\]- 모든 변환 (회전, 이동, 스케일, 전단)을 행렬 곱 하나로 표현 가능
요약:
- Isometry ↔ 거리/각도 유지
- Similarity ↔ 모양 유지 (크기만 변함)
- Affine ↔ 평행 유지
- Homogeneous ↔ Translation 포함 가능
4. Ortho
Orthogonal Matrix (직교 행렬)
1. 정의
\[A^T A = AA^T = I \quad \Rightarrow \quad A^{-1} = A^T\]2. 정사각행렬 A의 열벡터들이 오르토노멀(orthonormal) 집합이면
⇒ A는 직교 행렬 \(\vec{v}_i \cdot \vec{v}_j = \delta_{ij}\)
직교 행렬의 성질
1. 길이 보존
\[\|\vec{X}\| = \|A \vec{X}\|\]2. 각도 보존
\[\cos\theta = \frac{\vec{X} \cdot \vec{Y}}{\|\vec{X}\|\|\vec{Y}\|} = \frac{(A\vec{X}) \cdot (A\vec{Y})}{\|A\vec{X}\|\|A\vec{Y}\|}\]좌표계 변환 공식
1. 이동된 좌표계
\[X' = T^{-1} X\]- T: 원점 이동 행렬
2. 회전된 좌표계
\[X' = R^{-1} X\]- R: 회전 행렬
3. 회전 + 이동된 좌표계
\[X' = (TR)^{-1} X = R^{-1} T^{-1} X\]Normal Vector 변환
-
평면의 법선 벡터 N이 변환 후에도 여전히 수직인지?
-
직교 변환 M일 경우, 정상적으로 변환됨:
5. Rotation
2D 회전
- 원점 기준 각만큼 회전:
3D 축별 회전 행렬
(x축 기준 회전)
\[\begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos\alpha & -\sin\alpha \\ 0 & \sin\alpha & \cos\alpha \end{bmatrix}\](y축 기준 회전):
\[\begin{bmatrix} \cos\beta & 0 & \sin\beta \\ 0 & 1 & 0 \\ -\sin\beta & 0 & \cos\beta \end{bmatrix}\](z축 기준 회전):
\[\begin{bmatrix} \cos\gamma & -\sin\gamma & 0 \\ \sin\gamma & \cos\gamma & 0 \\ 0 & 0 & 1 \end{bmatrix}\]임의의 축 회전
- 회전 공식 (Rodrigues’ formula):
회전 행렬 조합
\[R = R_z(\alpha) R_y(\beta) R_x(\theta)\]오일러 각도 (Euler Angles)
- 다양한 조합 존재:
-
Z-X-Z: \(R = R_z(\gamma) R_x(\beta) R_z(\alpha)\)
-
Z-X-Y: \(R = R_z(\gamma) R_x(\beta) R_y(\alpha)\)
-
-
Gimbal Lock 주의:
- 한 축의 회전이 다른 회전을 덮어써 자유도 1개 상실
Quaternion 회전 표현
- 축 A = (a_x, a_y, a_z), 각 회전 쿼터니언:
- 회전 행렬로 변환 가능
- 보간(Interpolation)에 안정적 (SLERP)
거리 공식 요약
1. 점 Q와 직선 P,V 사이 거리:
\[d = \frac{\| (Q - P) \times \vec{V} \|}{\|\vec{V}\|}\]2. 점 Q와 평면 N (Q-P) 사이 거리:
\[d = \frac{N \cdot (Q - P)}{\|N\|}\]6. Curves
Parametric Curve 기본식
\[p(u) = c_0 + c_1 u + c_2 u^2 + c_3 u^3\]- 도함수 (접선 벡터):
- 벡터형:
Hermite Curve
- 정의 조건:
- 행렬 표현:
- Hermite Matrix:
Bezier Curve (Cubic)
-
제어점 4개:
-
시작/끝 접선 근사:
- 수식:
- Bernstein (Blending functions):
연속성 (Continuity)
| 종류 | 의미 |
|---|---|
| C0 | 위치 연속 (점 일치) |
| C1 | 접선 연속 (미분 일치) |
| C2 | 곡률 연속 (2차 미분 일치) |
| G1 | 접선 방향만 같음 (크기 다름 가능) |
B-Spline Curve
-
주어진 제어점 4개:
-
조건식:
- 행렬 표현:
7. Surfaces
곡면의 표현 방식
1. 암시적 곡면 (Implicit)
\[f(x, y, z) = 0\]2. 매개변수 곡면 (Parametric)
\[p(u, v) = \begin{bmatrix} x(u, v) \\ y(u, v) \\ z(u, v) \end{bmatrix}\]Bilinear Surface
- 4 꼭짓점 보간:
- 특징: 평평하고, 경계가 직선
Bi-cubic Surface (3차 다항 곡면)
- u, v 모두 3차 다항식 사용:
- 경계는 Hermite curve, 내부 제어 가능
- Twist vector 시각화 어려움
Bezier Surface
- 제어점 16개: p_{ij}
- B_i(u): Bernstein 함수
- 장점: 파생 함수 계산 용이
- 단점: 로컬 제어 불가
B-Spline Surface
- 곡선의 B-Spline 확장
- 행렬 표현:
- P: 4 X 4 제어점 행렬
- M_S: B-Spline Matrix
Bezier Curve/Subdivision 공식
- 곡선을 두 개로 분할:
- 분할 조건:
- 각 점 계산 시 재귀 분할로 표현
Surface Subdivision (곡면 분할)
- u 고정 → v 방향 곡선 4개 분할
- v 고정 → u 방향 곡선 4개 분할
- 총 4개의 패치로 나눔
- 정지 조건 만족 시
GL_QUADS로 렌더링