실습 · 연습문제 1개
합성 Simpson 규칙 composite-simpson
구간 를 폭 인 작은 구간 개로 나누고(은 짝수), 이웃한 두 구간마다 Simpson 규칙을 적용해 더하면
이다. 함수 composite_simpson(f, a, b, n)을 완성한다.
f는 NumPy 배열을 받아 같은 shape의 배열을 돌려주는 함수다(예:np.sin).n이 짝수가 아니거나 2보다 작으면ValueError를 낸다.- 반환값은 실수(float) 하나다.
테스트는 다음을 확인한다.
- 3차 이하 다항식은 반올림 오차 범위에서 정확히 적분한다(Simpson 규칙의 정확도 차수).
- 에서 을 두 배로 늘리면 오차가 약 16배 줄어든다(수렴 차수 4).
- 홀수 에는
ValueError를 낸다.
힌트: x = np.linspace(a, b, n + 1)로 노드를 만들고, 가중치 배열 [1, 4, 2, 4, ..., 2, 4, 1]을 만들어 f(x)와 내적한다.