사다리꼴 적분 근사법
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로 저장
컴파일 및 프로그램 테스트
'Programming > Fortran' 카테고리의 다른 글
온도 변환(External Function : 외부함수) (0) | 2008.09.09 |
---|---|
온도 변환(Module 이용) (0) | 2008.09.04 |
포아송 확률 구하기(2개의 함수, 함수에서 다른 함수 호출) (0) | 2008.09.03 |
온도 변환(함수 - 내부 부프로그램) (0) | 2008.09.03 |
회귀 분석(파일 처리, 입력 서식 지정) (0) | 2008.09.02 |