Newton法とは、関数の最小値を求めるための最適化アルゴリズムです。関数の傾きを求め、その傾きを使って関数の最小値を求めることができます。Scipyでは、scipy.optimize.newton関数を使用して、Newton法を実行することができます。
Scipyのnewton関数は、次のような引数を受け取ります。
- f:最小値を求める関数
- x0:関数の最小値を求める初期値
- fprime:関数の導関数
- args:関数の引数
- tol:収束判定のための許容誤差
- maxiter:最大反復回数
以下のPythonコードは、Scipyのnewton関数を使用して、関数f(x)=x^2-2の最小値を求める例です。
import scipy.optimize as opt
def f(x):
return x**2 - 2
def fprime(x):
return 2*x
x0 = 1
x_min = opt.newton(f, x0, fprime, tol=1e-6, maxiter=1000)
print(x_min)
実行結果は、x_min = 1.4142135623730951 となります。