주 메뉴 열기

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

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

비공식 기하학적 설명편집

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

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

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

기본 원리편집

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

 

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

 

이라고 하자. 이때  이 구간의 크기가 된다. 함수 f 에 대한 테일러 급수를 이용하면,

 

 에 있는 어떤  에 대해 성립한다. 우리는  라는 것을 알고 있기 때문에,

 

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

 

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

 

코드편집

  • C/C++ 코드
    #include<stdio.h>
    #include<conio.h>
    #include<math.h>
    
  • Maple 코드