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) 구적법을 사용하여 fa 에서 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 방법을 사용하여 fa 에서 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 법칙을 사용하여 fa 에서 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(이중 지수) 구적법 계열을 사용하여 fa 에서 b 까지 적분합니다. 이는 피적분 함수가 끝점에서 특이점이나 무한 도함수를 가질 때 사용하는 루틴이며, 이 서브모듈에서 무한 적분 한계(예: -np.inf, np.inf)를 받는 유일한 루틴입니다.

매개변수:
  • f – 단일 float 을 받아 float 을 반환하는 호출 가능 객체입니다.

  • a – 적분 하한이며, -np.inf 가 될 수 있습니다.

  • b – 적분 상한이며, np.inf 가 될 수 있습니다.

  • levels – 세분화 레벨 수(기본값 6)입니다.

  • eps – 오차 허용도(기본값 etolerance)입니다.

반환:

적분값과 오차 추정치를 제공하는 float 2-튜플 (result, error) 입니다.