오일러 방법

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

오일러 방법(Euler's Method)은 수치해법을 통해서 미분방정식을 푸는 방법이다. 테일러 급수에서 유도된 방법으로, 비교적 오차가 크게 나는 방법이다.

오일러 방법. 파란색은 미지의 곡선, 빨간색은 다변형 근사치

비공식 기하학적 설명[편집]

형태가 알려지지 않은 미지의 곡선을 계산하는 문제를 생각해보자. 우리는 시작점(초기값)을 알고, 이 미지의 곡선이 주어진 미분 방정식을 만족한다고 가정한다. 이때, 이 미분 방정식은 미지의 곡선의 어떤 점에서도 접선의 기울기를 구할 수 있는 공식으로 생각할 수 있다.

다시 말해 미지의 곡선이 주어졌을 때, 시작점(초기값) A_0를 알고 있다면, 미분 방정식에서 A_0지점의 접선과 그 기울기를 구할 수 있다. (오른쪽 그림을 참고)

접선을 타고 조금 이동한 점을 A_1이라고 하자. 만약 A_1이 여전히 곡선 위에 있다고 가정한다면, A_0에서와 같은 추론을 이용할 수 있다. 이렇게 몇차례를 반복하면, 다각형곡선 A_0A_1A_2A_3\dots을 구할 수 있다. 일반적으로 이 곡선은 원래의 미지의 곡선에서 너무 멀리 발산하지 않는다. 그리고 두 곡선사이의 오차는 단계의 크기를 작게 하고, 구하고자 하는 범위는 유한으로 했을 때 줄일 수 있다.

기본 원리[편집]

이 방법의 목적은 다음과 같은 조건이 주어졌을 때 함수 f(x)의 값을 추정하는 것이다.

\frac{dy}{dt} = f(t,y), \qquad a \le t \le b, \qquad y(a) = \alpha. \qquad (1)

이때 함수 f의 정확한 형태를 구하는 것이 목적이 아니고, 구간 a, b 사이에서의 특정한 점들(격자점, mesh point)에서의 f의 값을 찾아내는 것이 목적이다. 구간 [a,b]를 N개의 구간으로 나누었을 때 각각의 점을

 t_i = a + ih, i = 0, 1, 2,\cdots , N.

이라고 하자. 이때 h = \frac{(b-a)}{N}이 구간의 크기가 된다. 함수 f 에 대한 테일러 급수를 이용하면,

 y(t_{i+1}) = y(t_i) + (t_{i+1} - t_i)y'(t_i) + \frac{(t_{i+1} - t_i)^2}{2}y''(\xi_i)

(t_i, t_{i+1})에 있는 어떤 \xi_i에 대해 성립한다. 우리는 h = t_{i+1} - t_i라는 것을 알고 있기 때문에,


y(t_{i+1}) = y(t_i) + hy'(t_i) + \frac{h^2}{2}y''(\xi_i)

를 얻는다. 이때, (1)에 의해,


y(t_{i+1}) = y(t_i) + hf(t_i, y(t_i)) + \frac{h^2}{2}y''(\xi_i)

를 얻는다. 이때 오일러 방법y(t_i)에 대한 추정치(\omega_i로 표기하자)로 다음과 이 나머지 부분을 없앤 값을 사용하는 것이다.


\omega_0 = \alpha, 

\omega_{i+1} = \omega_i + hf(t_i, \omega_i),\qquad for\; each\; i = 0, 1, \cdots, N -1.

알고리즘[편집]

코드[편집]

  • C/C++ 코드
  • Maple 코드

참고[편집]