scipy.optimize — 근 찾기 및 최소화

scipy.optimize 서브모듈은 사용자 정의 스칼라 함수의 근과 최소값을 찾는 간단한 루틴을 제공합니다. 각 반복마다 사용자가 제공한 Python 호출 가능 객체로 다시 콜백해야 하므로, 순수 Python 구현 대비 속도 향상은 크지 않습니다(일반적으로 약 2배).

함수

scipy.optimize.bisect(f: Callable[[float], float], a: float, b: float, *, xtol: float = xtolerance, maxiter: int = 100) float

이분법을 사용하여 구간 [a, b] 에서 f 의 근을 찾습니다. f 는 구간에서 부호가 바뀌어야 합니다.

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

  • a – 구간의 왼쪽 끝점입니다.

  • b – 구간의 오른쪽 끝점입니다.

  • xtol – 근 위치에 대한 절대 허용도(기본값 xtolerance)입니다.

  • maxiter – 최대 이분 횟수(기본값 100)입니다.

반환:

float 로 표현된 근의 위치입니다.

예외 발생:

ValueErrorf(a) * f(b) > 0 인 경우.

scipy.optimize.curve_fit(f: Callable[..., float], xdata: ndarray | list | tuple, ydata: ndarray | list | tuple, p0: ndarray | list | tuple, *, xatol: float = xtolerance, fatol: float = xtolerance, maxiter: int | None = None) None

비선형 최소 제곱 곡선 피팅(Levenberg-Marquardt)을 위한 스텁입니다. API 호환성을 위해 모듈 테이블에 존재하지만 현재는 플레이스홀더입니다. 인수를 받아 검증하지만 항상 None 을 반환합니다. 이 루틴이 구현될 때까지는 fmin() 또는 외부 라이브러리를 사용하는 것이 좋습니다.

매개변수:
  • f – 모델 호출 가능 객체 f(x, *params) -> float 입니다.

  • xdata – 독립 변수 값의 1차원 배열 형태 객체입니다.

  • ydata – 종속 변수 값의 1차원 배열 형태 객체이며, xdata 와 길이가 같습니다.

  • p0 – 초기 매개변수 추정치의 1차원 배열 형태 객체입니다.

scipy.optimize.fmin(f: Callable[[float], float], x0: float, *, xatol: float = xtolerance, fatol: float = xtolerance, maxiter: int = 200) float

하강 심플렉스(Nelder-Mead) 방법을 사용하여 스칼라 함수 f 의 지역 최소값 위치를 찾습니다.

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

  • x0 – 초기 추정값입니다.

  • xatol – 위치에 대한 절대 허용도(기본값 xtolerance)입니다.

  • fatol – 함수값에 대한 절대 허용도(기본값 xtolerance)입니다.

  • maxiter – 최대 반복 횟수(기본값 200)입니다.

반환:

float 로 표현된 최소값의 위치입니다.

scipy.optimize.newton(f: Callable[[float], float], x0: float, *, tol: float = xtolerance, rtol: float = rtolerance, maxiter: int = 50) float

Newton-Raphson(할선) 방법으로 실수값 스칼라 함수 f 의 영점을 찾습니다.

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

  • x0 – 초기 추정값입니다.

  • tol – 근에 대한 절대 허용도(기본값 xtolerance)입니다.

  • rtol – 근에 대한 상대 허용도(기본값 rtolerance)입니다.

  • maxiter – 최대 반복 횟수(기본값 50)입니다.

반환:

float 로 표현된 근의 위치입니다.