scipy.integrate — 수치 적분¶
scipy.integrate 서브모듈은 실수값 단일 변수 함수에 대한 수치 적분 루틴을 제공합니다. 알고리즘은 CPython의 scipy.integrate 에서 포팅된 것이 아니라 https://www.genivia.com/qthsh.html 의 참조 구현에서 유도되었습니다.
수치 적분은 float64 연산이 활성화되어 있을 때 가장 잘 동작합니다. float32 연산에서도 루틴은 동작하지만 정밀도가 떨어집니다. 필요한 오차 허용도는 eps 키워드 인수로 지정할 수 있으며, 기본값은 컴파일 시점의 etolerance 값입니다(fp64의 경우 1e-14, fp32의 경우 1e-8). 복소수는 지원되지 않습니다.
함수¶
- scipy.integrate.quad(f: Callable[[float], float], a: float, b: float, *, order: int = 5, eps: float = etolerance) tuple[float, float]¶
적응형 Gauss-Kronrod (G10, K21) 구적법을 사용하여 f 를 a 에서 b 까지 적분합니다. 권장되는 범용 적분기입니다.
- 매개변수:
f – 단일
float을 받아float을 반환하는 호출 가능 객체입니다.a – 적분 하한입니다.
b – 적분 상한입니다.
order – 적분 차수(기본값
5)입니다.eps – 오차 허용도(기본값
etolerance)입니다.
- 반환:
적분값과 오차 추정치를 제공하는 float 2-튜플
(result, error)입니다.
- scipy.integrate.romberg(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float¶
Romberg 방법을 사용하여 f 를 a 에서 b 까지 적분합니다. 이는 동일 간격 점에서 피적분 함수를 평가하는 Newton-Cotes 공식입니다. 연속 도함수를 가진 피적분 함수에 가장 적합합니다.
scipy.integrate.romberg는 SciPy 1.12.0부터 CPython에서 더 이상 사용되지 않으므로, 새 코드에서는quad()를 권장합니다.- 매개변수:
f – 단일
float을 받아float을 반환하는 호출 가능 객체입니다.a – 적분 하한입니다.
b – 적분 상한입니다.
steps – 단계 수(기본값
100)입니다.eps – 오차 허용도(기본값
etolerance)입니다.
- 반환:
float로 표현된 적분값입니다.
- scipy.integrate.simpson(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float¶
적응형 Simpson 법칙을 사용하여 f 를 a 에서 b 까지 적분합니다. CPython의
scipy.integrate.simpson과 달리 이 함수는 미리 계산된 함수값 배열을 받는 대신 호출 가능 객체를 받아 표본 간격을 내부적으로 선택합니다.- 매개변수:
f – 단일
float을 받아float을 반환하는 호출 가능 객체입니다.a – 적분 하한입니다.
b – 적분 상한입니다.
steps – 단계 수(기본값
100)입니다.eps – 오차 허용도(기본값
etolerance)입니다.
- 반환:
float로 표현된 적분값입니다.
- scipy.integrate.tanhsinh(f: Callable[[float], float], a: float, b: float, *, levels: int = 6, eps: float = etolerance) tuple[float, float]¶
Tanh-Sinh, Sinh-Sinh, Exp-Sinh(이중 지수) 구적법 계열을 사용하여 f 를 a 에서 b 까지 적분합니다. 이는 피적분 함수가 끝점에서 특이점이나 무한 도함수를 가질 때 사용하는 루틴이며, 이 서브모듈에서 무한 적분 한계(예:
-np.inf,np.inf)를 받는 유일한 루틴입니다.- 매개변수:
f – 단일
float을 받아float을 반환하는 호출 가능 객체입니다.a – 적분 하한이며,
-np.inf가 될 수 있습니다.b – 적분 상한이며,
np.inf가 될 수 있습니다.levels – 세분화 레벨 수(기본값
6)입니다.eps – 오차 허용도(기본값
etolerance)입니다.
- 반환:
적분값과 오차 추정치를 제공하는 float 2-튜플
(result, error)입니다.