7.46 오일러 방법과 절단 오차
1. 수치 적분의 필요성
로봇 동역학 방정식과 같은 비선형 상미분 방정식은 대부분 해석적(closed-form) 해를 구할 수 없다. 따라서 초기값 문제(initial value problem)
\dot{y} = f(t, y), \quad y(t_0) = y_0
의 해를 이산적인 시간 격자점에서 수치적으로 근사하는 방법이 필요하다. 오일러 방법(Euler’s method)은 가장 기본적인 수치 적분 방법으로, 고차 방법의 이론적 기초를 제공한다.
2. 전진 오일러 방법
2.1 유도
전진 오일러 방법(forward Euler method) 또는 명시적 오일러 방법(explicit Euler method)은 테일러 급수 전개에서 1차항까지만 취함으로써 유도된다. y(t)의 t_n 주위 테일러 전개는 다음과 같다.
y(t_{n+1}) = y(t_n) + h\dot{y}(t_n) + \frac{h^2}{2}\ddot{y}(\xi_n)
여기서 h = t_{n+1} - t_n은 시간 간격(step size)이고, \xi_n \in (t_n, t_{n+1})은 중간값 정리에 의한 점이다. 2차 이상의 항을 버리고 \dot{y}(t_n) = f(t_n, y(t_n))을 대입하면 오일러 방법의 반복 공식을 얻는다.
y_{n+1} = y_n + hf(t_n, y_n)
여기서 y_n은 시각 t_n에서의 정확한 해 y(t_n)에 대한 수치 근사값이다.
2.2 기하학적 해석
오일러 방법은 각 시간 단계에서 해 곡선의 접선을 따라 직선으로 외삽(extrapolation)하는 것으로 해석할 수 있다. 시각 t_n에서 미분 방정식이 정의하는 기울기 f(t_n, y_n)을 이용하여 다음 시각의 값을 선형 근사한다. 이 기하학적 직관은 시간 간격 h가 작을수록 접선이 해 곡선에 가까이 유지되어 근사 정밀도가 향상됨을 시사한다.
2.3 연립 방정식에의 적용
벡터 형태의 연립 상미분 방정식 \dot{\mathbf{y}} = \mathbf{f}(t, \mathbf{y})에 대하여 오일러 방법은 다음과 같이 자연스럽게 확장된다.
\mathbf{y}_{n+1} = \mathbf{y}_n + h\mathbf{f}(t_n, \mathbf{y}_n)
로봇 동역학의 상태 공간 표현 \dot{\mathbf{x}} = \mathbf{f}(\mathbf{x}, \mathbf{u})에 이를 적용하면, 각 시간 단계에서 상태 벡터를 갱신할 수 있다.
3. 절단 오차의 정의와 분류
3.1 국소 절단 오차
국소 절단 오차(local truncation error, LTE)는 단일 시간 단계에서 수치 방법의 근사에 의해 발생하는 오차이다. 정확한 해 y(t_n)에서 출발하여 한 단계를 진행했을 때의 오차로 정의된다.
\tau_{n+1} = y(t_{n+1}) - \left[y(t_n) + hf(t_n, y(t_n))\right]
테일러 전개로부터 국소 절단 오차는 다음과 같다.
\tau_{n+1} = \frac{h^2}{2}y''(\xi_n) = \frac{h^2}{2}\left[\frac{\partial f}{\partial t} + f\frac{\partial f}{\partial y}\right]_{\xi_n} = O(h^2)
따라서 오일러 방법의 국소 절단 오차는 h^2에 비례하며, 이를 1차 방법(first-order method)이라 한다.
3.2 전역 절단 오차
전역 절단 오차(global truncation error, GTE)는 초기 시각 t_0에서 최종 시각 t_N까지 모든 시간 단계의 국소 오차가 누적된 전체 오차이다.
e_N = y(t_N) - y_N
고정된 구간 [t_0, T]를 N개의 등간격으로 분할하면 h = (T - t_0)/N이고, 총 N = O(1/h)개의 단계가 필요하다. 각 단계에서 O(h^2)의 국소 오차가 발생하므로, 전역 오차는 다음과 같이 추정된다.
e_N = O(Nh^2) = O\left(\frac{1}{h} \cdot h^2\right) = O(h)
따라서 오일러 방법의 전역 절단 오차는 h에 비례하며, 전역적으로 1차 정확도를 갖는다.
3.3 엄밀한 전역 오차 상계
f(t, y)가 변수 y에 대하여 리프시츠 조건(Lipschitz condition)
\lvert f(t, y_1) - f(t, y_2) \rvert \leq L \lvert y_1 - y_2 \rvert
을 만족하면, 전역 오차에 대한 다음의 상계(upper bound)가 성립한다.
\lvert e_n \rvert \leq \frac{hM}{2L}\left(e^{L(t_n - t_0)} - 1\right)
여기서 M = \max_{t \in [t_0, T]} \lvert y''(t) \rvert이다. 이 상계는 시간이 진행됨에 따라 오차가 지수적으로 증가할 수 있음을 보여주며, 리프시츠 상수 L이 큰 시스템에서는 정밀한 해를 얻기 위하여 매우 작은 시간 간격이 요구될 수 있음을 시사한다.
4. 후진 오일러 방법
4.1 정의
후진 오일러 방법(backward Euler method) 또는 암시적 오일러 방법(implicit Euler method)은 다음 시각의 기울기를 사용하여 근사한다.
y_{n+1} = y_n + hf(t_{n+1}, y_{n+1})
이 공식에서 y_{n+1}이 좌변과 우변에 동시에 나타나므로, 일반적으로 비선형 방정식을 풀어야 한다. 비선형 함수 f에 대해서는 뉴턴-랩슨(Newton-Raphson) 반복법과 같은 반복 해법이 필요하다.
4.2 국소 절단 오차
후진 오일러 방법의 국소 절단 오차도 전진 오일러 방법과 동일하게 O(h^2)이다.
\tau_{n+1} = -\frac{h^2}{2}y''(\xi_n) = O(h^2)
부호가 반대인 점에 주목하라. 이는 후진 오일러 방법이 전진 오일러 방법과 반대 방향의 국소 오차를 생성함을 의미한다.
5. 안정성 해석
5.1 시험 방정식과 안정성 영역
수치 방법의 안정성을 분석하기 위하여 달퀴스트(Dahlquist) 시험 방정식을 사용한다.
\dot{y} = \lambda y, \quad \lambda \in \mathbb{C}
이 방정식에 전진 오일러 방법을 적용하면 다음을 얻는다.
y_{n+1} = (1 + h\lambda)y_n = R(h\lambda)y_n
여기서 R(z) = 1 + z (z = h\lambda)를 안정성 함수(stability function) 또는 증폭 인자(amplification factor)라 한다. 수치 해가 시간에 따라 발산하지 않기 위한 조건은 \lvert R(z) \rvert \leq 1이다.
\lvert 1 + h\lambda \rvert \leq 1
이 조건을 만족하는 z = h\lambda의 집합을 안정성 영역(stability region)이라 하며, 전진 오일러 방법의 안정성 영역은 복소 평면에서 중심이 (-1, 0)이고 반지름이 1인 원의 내부이다.
5.2 실수 고유값에 대한 안정성 조건
고유값 \lambda가 실수이고 \lambda < 0인 안정한 시스템에 대하여, 전진 오일러 방법이 안정하기 위한 시간 간격 조건은 다음과 같다.
0 < h < \frac{2}{\lvert\lambda\rvert}
로봇 동역학 시뮬레이션에서 시스템의 고유값 크기가 클수록(빠른 동역학 모드), 안정성을 유지하기 위해 더 작은 시간 간격이 필요하다.
5.3 후진 오일러 방법의 안정성
후진 오일러 방법의 안정성 함수는 다음과 같다.
R(z) = \frac{1}{1 - z}
\lvert R(z) \rvert \leq 1의 조건은 \lvert 1 - z \rvert \geq 1이며, 이는 복소 평면에서 중심이 (1, 0)이고 반지름이 1인 원의 외부에 해당한다. 특히 \text{Re}(\lambda) < 0인 모든 고유값에 대하여 임의의 양의 시간 간격 h에서 안정하다. 이러한 성질을 A-안정성(A-stability)이라 하며, 강성 방정식(stiff equation)의 풀이에서 후진 오일러 방법이 선호되는 이유이다.
6. 오차의 실용적 분석
6.1 반올림 오차와 총 오차
실제 계산에서는 절단 오차 외에 유한 정밀도 산술로 인한 반올림 오차(round-off error) \epsilon이 존재한다. 각 단계에서의 총 오차는 다음과 같이 구성된다.
\text{총 오차} = \text{절단 오차} + \text{반올림 오차}
시간 간격 h를 줄이면 절단 오차는 감소하나, 단계 수가 증가하여 반올림 오차가 누적된다. 따라서 최적의 시간 간격이 존재하며, 이보다 작은 h에서는 오히려 총 오차가 증가할 수 있다.
6.2 오차 차수의 실험적 검증
수치 방법의 오차 차수를 실험적으로 검증하려면, 시간 간격을 절반으로 줄였을 때 전역 오차가 어떻게 변화하는지를 관찰한다. p차 방법에서 시간 간격을 h에서 h/2로 줄이면, 전역 오차는 대략 1/2^p배로 감소한다.
\frac{e(h)}{e(h/2)} \approx 2^p
오일러 방법의 경우 p = 1이므로 시간 간격을 절반으로 줄이면 오차도 대략 절반으로 감소한다. 이 관계를 이용하여 오차 차수를 실험적으로 확인하거나, 리처드슨 외삽(Richardson extrapolation)을 통해 정밀도를 향상시킬 수 있다.
7. 로봇 동역학 시뮬레이션에서의 적용
7.1 단순 관절 시뮬레이션
단일 관절 로봇 J\ddot{\theta} + b\dot{\theta} + k\theta = \tau(t)를 상태 공간 형태 \mathbf{x} = [\theta, \dot{\theta}]^T로 변환하면 다음과 같다.
\dot{\mathbf{x}} = \begin{bmatrix} x_2 \\ \frac{1}{J}\left[\tau(t) - bx_2 - kx_1\right] \end{bmatrix} = \mathbf{f}(t, \mathbf{x})
오일러 방법을 적용하면 다음의 갱신 규칙을 얻는다.
\begin{bmatrix} \theta_{n+1} \\ \dot{\theta}_{n+1} \end{bmatrix} = \begin{bmatrix} \theta_n \\ \dot{\theta}_n \end{bmatrix} + h \begin{bmatrix} \dot{\theta}_n \\ \frac{1}{J}\left[\tau(t_n) - b\dot{\theta}_n - k\theta_n\right] \end{bmatrix}
7.2 시간 간격 선택의 실용적 지침
로봇 시뮬레이션에서 오일러 방법의 시간 간격은 시스템의 가장 빠른 동적 모드에 의해 제한된다. 시스템 행렬의 고유값 중 절댓값이 가장 큰 것을 \lambda_{max}라 하면, 안정성 조건으로부터 다음을 얻는다.
h < \frac{2}{\lvert\lambda_{max}\rvert}
실용적으로는 안정성 여유(stability margin)를 확보하기 위하여 이 한계의 절반 이하를 사용한다. 다자유도 로봇에서는 관성 행렬과 강성 행렬의 일반화 고유값 문제를 통해 최대 고유 진동수를 추정하고, 이에 기반하여 시간 간격을 설정한다.
7.3 오일러 방법의 한계와 고차 방법의 필요성
오일러 방법은 구현이 단순하고 직관적이나, 1차 정확도로 인하여 원하는 정밀도를 달성하기 위해 매우 작은 시간 간격이 필요하다. 로봇 동역학의 실시간 시뮬레이션에서는 제한된 계산 시간 내에 충분한 정확도를 확보하여야 하므로, 고차 방법의 사용이 필수적이다. 오일러 방법은 그러한 고차 방법의 이론적 기초를 제공하며, 오차 분석과 안정성 분석의 기본 틀을 확립한다.
8. 요약
오일러 방법은 테일러 급수의 1차 근사에 기초한 가장 기본적인 수치 적분 방법이다. 국소 절단 오차는 O(h^2)이고 전역 절단 오차는 O(h)이므로, 1차 방법으로 분류된다. 전진 오일러 방법은 조건부 안정성을 가지며 시간 간격에 제한이 있으나, 후진 오일러 방법은 A-안정성을 가져 강성 시스템에 적합하다. 절단 오차와 반올림 오차의 상충 관계, 안정성 영역의 개념, 오차 차수의 정의는 모든 수치 적분 방법에 공통적으로 적용되는 핵심 이론이며, 로봇 동역학 시뮬레이션의 수치적 신뢰성을 보장하기 위한 필수적 지식이다.
참고 문헌
- Butcher, J. C. (2016). Numerical Methods for Ordinary Differential Equations (3rd ed.). Wiley.
- Hairer, E., Nørsett, S. P., & Wanner, G. (1993). Solving Ordinary Differential Equations I: Nonstiff Problems (2nd ed.). Springer.
- Ascher, U. M. & Petzold, L. R. (1998). Computer Methods for Ordinary Differential Equations and Differential-Algebraic Equations. SIAM.
- Süli, E. & Mayers, D. F. (2003). An Introduction to Numerical Analysis. Cambridge University Press.
- Featherstone, R. (2008). Rigid Body Dynamics Algorithms. Springer.
version: 0.1.0