오일러법 입문

2227 단어 수치 계산C

오일러법이란?



오일러법은 컴퓨터에서 상미분 방정식을 푸는 방법입니다.
그렇다면 구체적으로 어떤 식으로 상미분 방정식을 풀 수 있습니까? 먼저 $\frac{dy}{dx} = f(x, y)$ 의 형태로 합니다. 먼저 초기값 $(x_0, y_0)$를 설정합니다. 다음의 점화식을 사용해 순차적으로 $ (x_n, y_n) $를 구해 갑니다.
\left\{
    \begin{array}{l}
        x_{n+1} = x_n + dx \\
        y_{n+1} = y_n + f(x_n, y_n) dx 
     \end{array}
\right.



이것이 오일러 방법입니다.

소스 코드 및 실행 결과



소스 코드



$\frac{dy}{dx} = 2 x $의 해를 구하는 프로그램입니다. 출력 결과를 CSV로 저장할 수 있습니다.

euler.c
#include <stdio.h>
#include <math.h>

#define EPS (__builtin_pow(2.0, __builtin_floor(__builtin_log2(1.0e-6))))
#define f(x,y) (2*( x))

int main(){
    double x = 0, y = 0;
    while(x < 2){
        printf("%f, %f \n", x, y);
        y += f(x, y) * EPS;
        x += EPS;
    }
}

실행 결과



이 프로그램의 실행 결과는 $y=x^2$에 가까운 값을 가져야 합니다. 이 프로그램의 실행 결과를 CSV로 그래프로 해 보았습니다.

좋은 웹페이지 즐겨찾기