사다리꼴 적분 근사법

PROGRAM Integ

IMPLICIT NONE

REAL :: A, B, DeltaX, X, Y, Sum
INTEGER :: N, I

PRINT *, "X**2 + 1의 두 점 사이의 면적 구하기"
PRINT *

PRINT *, "면적을 구하려는 두 점과 두 점의 분할 개수 입력(ex:0, 1, 50)"
READ *, A, B, N

DeltaX = (B - A) / REAL(N)

X = A
Sum = 0.0

DO I = 1, N - 1

X = X + DeltaX
Sum = Sum + F(X)

END DO

Sum = DeltaX * ((F(A) + F(B)) / 2.0 + Sum)

PRINT '(1X, I4,"개의 간격을 이용한 근사 면적 : ", F10.5)', N, Sum

CONTAINS

FUNCTION F(X)

REAL :: F
REAL, INTENT(IN) :: X

F = X ** 2 + 1.0

END FUNCTION F


END PROGRAM Integ

위 소스를 06_03_Integ.f95로 저장

컴파일 및 프로그램 테스트



+ Recent posts