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 として返します。

例外:

ValueError -- f(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

ニュートン・ラフソン法(割線法)により、実数値のスカラー関数 f の零点を求めます。

パラメータ:
  • f -- 単一の float を取り float を返す呼び出し可能オブジェクトです。

  • x0 -- 初期推定値です。

  • tol -- 根に対する絶対許容値です(既定値 xtolerance)。

  • rtol -- 根に対する相対許容値です(既定値 rtolerance)。

  • maxiter -- 反復回数の最大値です(既定値 50)。

戻り値:

根の位置を float として返します。