Numerical Analysis - FinalTerm
이번 포스트는 수치해석 기말 범위 (ch09. PCA ~ 끝범위) 까지 다룬다.
1. PCA
Principal Component Analysis (PCA)
- 고차원 데이터를 분산이 가장 큰 방향으로 정렬하거나 차원 축소에 사용하는 기법
- 데이터를 선형 변환하여, 새로운 좌표계 (주성분)에 표현함
- 데이터의 분포의 방향성, 분산 정보, 압축 가능성을 파악함.
Bounding Volume
- 복잡한 객체를 감싸하는 단순한 형태의 부피
- 종류
- Axis-Aligned Bounding Box : 사각형 박스로, x/y/z 축에 표현에 적합
- Oriented Bounding Box : PCA 기반 회전이 가능한 박스
Principal Components
- 데이터의 분산이 가장 큰 방향을 정의하는 새로운 좌표축
- 모든 PC는 원점에서 시작
- 첫번 째 PC는 원점으로부터 최대 분산의 방향
- Subsequent PC는 1st PC의 직교하게 다음 최대 분산 방향으로
PCA 절차 요약
- 평균 벡터 계산
- 모든 점에서 중심 위치로 이동하기 위해 필요
-
공분산 행렬 계산
- 공분산 행렬이 3차원일 경우 3X3 행렬로, 각 좌표 축 간의 상관관계를 나낸다. \(C = \frac{1}{N} \sum_{i=1}^{N} (P_i - \bar{P}) (P_i - \bar{P})^T\)
-
공분산 행렬 값의 고유값 분해
- 고육벡터 : 새로운 축 (주성분)
- 고유값 (eigenvalues) : 각 축 방향의 분산 크기
- 변환 행렬 구성
- 고유 벡터를 행으로 정렬한 행렬을 구성
- PCA 변환
- 직교 좌표계로의 정렬
- 원래 좔표를 평균 중심으로 이동후에 주성분 방향으로 정렬
차원 축소 (Dimensionality Reduction)
-
분산이 큰 상위 k개의 고유 벡터만 사용하는 경우
- 상위 k개의 주성분으로 구성된 행렬
- 데이터 압축 및 특징 추출 가능
2. Decomposition
Triangular System
Forward Subsitution
-
하삼각 행렬 시스템
-
위에서 아래로 순차적으로 계산 \(Lx = r\)
BackWard Substitution
-
상삼각 행렬 시스템
-
아래에서 위로 역순으로 계산 \(Lx = r\)
LU Decomposition
- 일반 행렬 M을 하삼각행렬 L과 상삼각행렬 U로 분해 \(M = LU\)
Doolittle’s Method
-
L은 대각선이 1인 하삼각행렬
- U는 상삼각 행렬
- 하나의 행렬에 L, U 정보를 함께 저장 가능
Error Correction
\[r_0 = r - Mx_0, Mx_1 = r_0, x = x_0 + x_1 + \dots\]3. Iterative Methods
Jacobi Method
-
반복적 해법 (Iterative Approximation)
-
선형 시스템
AX = B를 행 기준으로 분리하여 반복적으로 해를 업데이트 한다. -
일반 수식 \(x_i^{(k+1)} = \frac{1}{a_{ii}} \left( b_i - \sum_{j \ne i} a_{ij} x_j^{(k)} \right)\)
- 모든 x_j는 이전 반복의 값을 사용
- 수렴 속도는 느림
Gauss-Seidel Method
- 새로운 값을 바로 사용 : Jacobi Method 보다 빠르다.
- 일반 수식
- 위쪽의 새로운 값들과 아래쪽의 이전 값을 동시에 사용
- 수렴 속도 개선
Convergence Condition
- 행 기준 대각 우세 (Diagonal Dominance) 조건이면 수렴 보장:
Relaxation (이완 기법)
- Gauss-Seidel에 λ 계수 적용:
- lambda = 1 → 기본 Gauss-Seidel
- 0 < λ < 1 → Under-relaxation
- 1 < λ < 2 → Over-relaxation
4. Interpolation
Interpolation 이란?
- 주어진 점들 (x,y)을 지나는 함수를 찾는 과정
- Interpolation 구간 안의 미지점에서 추정, 즉 반대로 구간 밖은 Extrapolation
Linear Interpolation (선형 보간법)
- 두 점
(x_0, y_0), (x_1, y_1)사이 직선 보간
- LERP: 점 x가 아닌 비율 (0과 1사이)로 표현
Quadratic Interpolation (2차 보간법)
-
세 점
(x_0, y_0), (x_1, y_1), (x_2, y_2)를 지나는 2차 다항식 P(x) 구하기 -
Lagrange Interpolation (기본형) 식
Higher Degree Interpolation
-
n + 1개의 점 -> n차 다항식
-
점점 에러가 줄어들기는 하지만 항상 줄어드는 것은 아니다.
-
보간식 : \(P(x) = \sum_{i=0}^n y_i \cdot L_i(x)\)
Newton Polynomials
-
재귀적 방식
-
새로운 점 추가 시에 기존 다항식에 누적 가능하다.
-
일반 형태 \(P(x) = a_0 + a_1(x - x_0) + a_2(x - x_0)(x - x_1) + \dots\)
-
계수 계산 \(a_1 = \frac{f(x_1) - f(x_0)}{x_1 - x_0}\)
\[a_2 = \frac{f[x_2, x_1] - f[x_1, x_0]}{x_2 - x_0}\]
Spherical Linear Interpolation (SLERP)
- 두 단위 벡터 사이의 구면 상 보간
- 선형 보간보다는 회전 축 보존에 적합하다.
theta: 두 벡터 사이의 각도
Bilinear Interpolation
- 사각형 네 꼭짓점
(x,y) 상에서 추정
Trilinear Interpolation
- 3D 큐브 내 보간 (8개 점)
- 각 방향에 대해 선형 보간 →
x to y to z순서
5. Least-Squares
Least-Squares 란?
- 주어진 데이터
(x_i, y_i)에 대해서 가장 잘 맞는 함수를 찾는 방법 -
잘 맞는다의 기준은 오차 제곱합을 최소화하는 것
- 오차의 정의
- 오차를 측정하는 방법:
- 최대 오차 (Max error)
- 평균 오차 (Average error)
- RMS 오차 (Root-Mean-Square error) → 주로 사용
Least-Squares Line
-
직선을 찾기 (아래의 형태) \(f(x) = ax + b\)
-
목적
- 최적 조건: 오차 제곱합의 편미분이 0일 때
- 결과 선형 시스템
Power Fit
- 아래의 함수 형태로 Fitting
- 목적
- Linearization 가능
→ 선형 Least-Squares로 변환 가능
Data Linearization (데이터 선형화)
- 비선형 모델을 선형으로 변환 후에 선형 Least - Squares 적용
- 양변에 로그를 적용함.
Linear Least - Squares
- 일반 선형 형태
- 목적
- 선형 시스템으로 변환 가능 → 행렬 형태로 풀이
Polynomial Fitting
-
n차 다항식으로 Least-Squares 수행하기
-
2차 예시
- 역시 선형 시스템으로 변환해서 풀이 가능
Nonlinear Least- Squares
- 비선형 모델
y= f(x; A, C)에 대해서
- Partial Derivatives 를 이용해 최적화
- 일반적으로 Newton’s Method 또는 수치적 최적화 기법으로 해결
6. Optimization
Optimiazation 개념
- 목적 : 함수 f(x)의 극값(최소 or 최대) 위치 x = p 찾기
- 지역 최소 :
- 지역 최대:
극값 판정법
First Derivative Test
f'(p) = 0-> 임계점 (critcial Point)- 부호 변화에 따라서 최대 / 최소를 판정
Second Derivative Test
f''(p) > 0 (local minimum)f''(p) < 0 (local maximum)
Bracketing Search Methods
- 구간
[a,b]를 점점 좁혀 나가면서 local extremum을 찾는다 - 반복적으로 함수 평가 횟수 최소화를 목표로 한다.
Golden Ratio Search
- unimodal 함수에 적용 (극값이 하나만 존재함.)
- 두 내부점 c, d를 선택한다.
→ [a, d] 또는 [c, b] 중 하나로 갱신
- Golden Ratio 비율
-
장점
-
이전 구간의 내부점을 다음 구간에서 재활용 가능
-
평가 효율 높음
-
Fibonacci Search
-
Golden Ratio Search와 유사하지만:
- 사전 정의된 반복 횟수(n) 기반으로 진행
- r 값이 고정이 아님 → Fibonacci 수열에 따라 변화
-
Fiabonacci 수열
- 내부점 계산
- [a_k, b_k] 구간에서 내부점 c_k, d_k:
-
특징
-
고정된 반복 횟수로 종료 시점 명확
-
최종 구간 길이:
-
7. Multidimensional Unconstrained Optimization
Optimization 목적
- 다변수 함수의 극값을 찾는 방법
- 주요 기법
Direct Method
Random Search
- 임의의 점 f(x) 평가를 반복하여 최적의 점을 탐색한다.
- 장점 : 비연속 함수, 미분 불가능한 함수에도 사용이 가능하다.
- 단점 : 비효율적이고 변수 수가 많아지면 어렵다.
Univariate & Pattern Searches
- 한 번에 하나의 변수만 변경 (나머지는 고정)
- 일련의 1D 최적화 문제로 환원하여 반복
- 근처로 갈수록 비효율적
Gradient Method
-
미분을 이용한다.
-
Gradient 벡터 (기울기 벡터)
- 방향: 가장 큰 증가 방향 (steepest ascent)
- 크기: 그 방향으로의 증가율
Optimum Point 판정
1D \(f'(x) = 0\)
\[f''(x) < 0 -> 최댓값\] \[f''(x) > 0 -> 최솟값\] \[f''(x) = 0 -> saddle point 가능성이 있다.\]2D
-
임계점
-
2차 미분을 이용한 판정 필요 → Hessian Matrix 사용
Hessian Matrix
\[H = \begin{bmatrix} \frac{\partial^2 f}{\partial x^2} & \frac{\partial^2 f}{\partial x \partial y} \\ \frac{\partial^2 f}{\partial y \partial x} & \frac{\partial^2 f}{\partial y^2} \end{bmatrix}\]-
판정 기준
|H| > 0$ and $f_{xx} > 0→ 최소점|H| > 0$ and $f_{xx} < 0→ 최대점|H| < 0→ saddle point
Finite Difference Approxiamation
- 편미분 직접 계산이 어려울 때 중심차분법을 사용한다.
Steepest Ascent
- 알고리즘
- 초기점 x_0를 선택하고
- Nabla f를 계산하여 최적의 상승 방향을 찾는다.
- h를 찾아서 이동한다.
- 수렴할 대까지 반복한다.
- 수렴 속도 : 선형 수렴 (linear convergence)
8. Nonlinear Equations
Bisection Method (이분법)
-
조건 \(f(x_l) \cdot f(x_u) < 0 (초기 구간 [x_l, x_u]에서 부호가 바뀜)\)
-
수렴 보장 (언제나 수렴), 속도 느림
-
알고리즘
- 중간점 계산:
-
f(x_m) 판정: \(f(x_l) \cdot f(x_m) < 0 → x_u = x_m\)
\[f(x_l) \cdot f(x_m) > 0 → x_l = x_m\] \[f(x_m) = 0 → x_m\] -
오차 계산:
- 오차가 허용 오차보다 작으면 종료
Newton-Raphson Method
- 수렴이 빠르고, 초기에 하는 guess가 중요하다.
- 알고리즘
- 장점: 매우 빠름 (quadratic convergence)
- 단점: 발산 가능,
f'(x_i) = 0이면 실패
Secant Method
- Newton 방법에서
f'(x)를 근사치로 대체 - 알고리즘
- 장점: 미분 계산 불필요, 빠름
- 단점: 수렴 실패 가능, 두 초기 guess 필요
Simple Fixed-Point Iteration
- 형태로 변환:
- 알고리즘
- 수렴 조건:
|g'(x)| < 1일 때 수렴 (선형 수렴)
Fixed-Point Iteration
u(x, y) = 0,v(x, y) = 0시스템을 다음과 같이 재정의:
- 초기 guess
(x_0, y_0)로 시작하여 반복
Multi-diemensional Newton-Raphson
-
다변수 Taylor 전개 기반
-
1차 근사
- Jacobian Matrix
- Update Step
- 수렴 빠름
- Jacobian 계산 필요
- 초기 guess 민감
9. Differential Equations
Euler’s Method
-
매우 단순한 1차 ODE 근사법
-
알고리즘
- 초기 조건 \(y(x_0) = y_0\)
- h: step size
Taylor Series Method
\[y(x+h) 근사\] \[y(x+h) = y(x) + h y'(x) + \frac{h^2}{2!} y''(x) + \dots\]- k=1일 경우 Euler와 동일
Runge-Kutta Method
- 고정도 ODE 해법으로 실무에서 가장 많이 사용
- RK2 (Second order)
- RK4 (Fourth order)
Higher Order Differential Equations
- n차 미분 방정식
- 벡터 형태로 변환 후 Euler, RK 등 사용 가능
Systems of Equations
- 여러 ODE 동시 해석:
→ 각 식에 대해 Euler, RK 사용 가능
Initial Value Problem
- 모든 조건이 동일한 x에서 주어진다.
Boundary Value Problem
- 조건이 서로 다른 x 위치에서 주어진다.
Shooting Method
-
BVP -> IVP로 변환
-
과정
- 초기 기울기 guess (
y'(0)) 선택 - IVP로 적분 (ex: RK4 사용)
- 결과가 목표
y(L)과 차이나면y'(0)수정 → 반복
- 비선형 ODE에서는 Root Finding Problem으로 변환 가능
Finite - Deifference Method
-
미분 → 유한차분 근사 후 선형 방정식 시스템으로 변환
-
중앙 차분
- 방정식 전체를 행렬 형태로 변환:
- 경계조건
(T_0, T_n)은 RHS로 이동