Differential Equation 2002117 0 Differential Equation PROGRAM Difeq

  • Slides: 6
Download presentation
재료수치해석 Differential Equation 신소재공 학과 2002117 0

재료수치해석 Differential Equation 신소재공 학과 2002117 0

Differential Equation PROGRAM Dif_eq IMPLICIT NONE DOUBLE PRECISION : : xi, yi, h INTEGER

Differential Equation PROGRAM Dif_eq IMPLICIT NONE DOUBLE PRECISION : : xi, yi, h INTEGER : : i xi = 0. 0 ; yi = 2. 0 OPEN (10, FILE = 'y_midp. txt', Status = 'new') OPEN (20, FILE = 'y_heun. txt', Status = 'new') OPEN (30, FILE = 'y_rk 4. txt', Status = 'new') DO i = 4, 100, 4 h = 4. 0 / DBLE(i) CALL Midp(xi, yi, h) CALL Heun(xi, yi, h) CALL RK 4(xi, yi, h) END DO END PROGRAM

Differential Equation FUNCTION f(x, y) IMPLICIT NONE DOUBLE PRECISION : : f, x, y

Differential Equation FUNCTION f(x, y) IMPLICIT NONE DOUBLE PRECISION : : f, x, y f = 4. *dexp(0. 8*x)-0. 5*y END Function SUBROUTINE Midp(xi, yi, h) IMPLICIT NONE DOUBLE PRECISION : : f, xi, yi, x, y, h, k(2) x = xi ; y = yi DO WHILE (x < 4. 0) k(1) = f(x, y) k(2) = f(x+h/2. 0, y+k(1)*h/2. 0) y = y + k(2) * h x=x+h END DO WRITE(10, *) int(4. 0/h), y END SUBROUTINE

Differential Equation SUBROUTINE Heun(xi, yi, h) IMPLICIT NONE DOUBLE PRECISION : : f, xi,

Differential Equation SUBROUTINE Heun(xi, yi, h) IMPLICIT NONE DOUBLE PRECISION : : f, xi, yi, x, y, h, k(2) x = xi ; y = yi DO WHILE (x < 4. 0) k(1) = f(x, y) k(2) = f(x+h, y+k(1)*h) y = y + (k(1)+k(2)) * h / 2. 0 x=x+h END DO WRITE(20, *) int(4. 0/h), y END SUBROUTINE RK 4(xi, yi, h) IMPLICIT NONE DOUBLE PRECISION : : f, xi, yi, x, y, h, k(4) x = xi ; y = yi DO WHILE (x < 4. 0) k(1) = f(x, y) k(2) = f(x+h/2. 0, y+k(1)*h/2. 0) k(3) = f(x+h/2. 0, y+k(2)*h/2. 0) k(4) = f(x+h, y+k(3)*h) y = y + (K(1)+2*k(2)+2*k(3)+k(4))*h/6. 0 x=x+h END DO WRITE(30, *) int(4. 0/h), y END SUBROUTINE

Differential Equation 84 83 82 81 80 y Midp 79 Heun RK 4 78

Differential Equation 84 83 82 81 80 y Midp 79 Heun RK 4 78 77 76 75 74 4 6 8 10 12 n 14 16 18 20

Differential Equation ▶ n = 100 일 때, 3가지 method의 값 비교 Method y

Differential Equation ▶ n = 100 일 때, 3가지 method의 값 비교 Method y Abs. error Midpoint 75. 34064802 0. 00168542 Heun 75. 35035268 0. 01139008 4차 Runge-Kutta 75. 33896578 0. 00000318 True 75. 3389626 ▶ 3가지 method 중에 4차 Runge-Kutta method 가 가장 정답에 가까운 결과를 보였고, 그 다음으로 Midpoint method, Heun method 순으로 근사한 값을 보였다.