본문 바로가기
정보과학융합탐구

SIMPSON 근사법(python)

by minchan 2023. 7. 18.

오늘은 저번에 해봤던 심슨 근사법을 파이썬으로 구현해 보겠습니다.


제가 c언어말고는 아무것도 모르던 시절에서 이제 아주 조금이나마 c#, 자바, 파이썬 등을 접하면서 여러가지 언어를 배우는 단계에 왔습니다. 그런 의미에서 오늘은 제가 c언어로 구현해본 것 중 난이도가 있는 심슨 근사법을 파이썬으로 구현해 보겠습니다. 

 

SIMPSON 근사법

오늘 해볼 것은 적분 값을 근사해주는 방법 중 하나인 심슨 방법을 프로그래밍으로 구현해보기 입니다. 심슨 방법은 무엇일까요? 사다리꼴 적분법이 1차 함수를 활용하여 근사화하는 방법이라

kminc.tistory.com

심슨 근사법에 대한 수학적 개념과 알고리즘, c언어로 짠 코드는 여기서 확인하시면 됩니다.


다음은 파이썬으로 짠 코드입니다.

def f(x):
    return x * x  # 예시 함수

a, b = map(float, input().split())  # 양 끝 값 입력
n = int(input())  # 분할 횟수 입력

h = (b - a) / n  # 구간을 나눌 간격

integral = f(a) + f(b)  # 양 끝점의 함수값
x = a + h  # 첫번째 분할점

for i in range(1, n, 2):  # 홀수 인덱스 항의 합
    integral += 4 * f(x)
    x += h * 2

x = a + h * 2

for i in range(2, n, 2):  # 짝수 인덱스 항의 합
    integral += 2 * f(x)
    x += h * 2

integral *= h / 3  # 적분 근삿값

print(integral)

이것은 코랩에서 실행해본 것 입니다.

 

다음은 더 재미있는 주제로 돌아오겠습니다.

'정보과학융합탐구' 카테고리의 다른 글

사다리꼴 근사  (0) 2023.07.04
C언어 VS 파이썬  (0) 2023.07.04
VR 게임 만들기  (1) 2023.05.27
SIMPSON 근사법  (1) 2023.04.05
이분법  (1) 2023.04.04