scipyによる固定点の解
scipyは、Pythonで数値計算を行うためのライブラリです。scipyのfixed_point関数を使用すると、固定点の解を求めることができます。固定点とは、関数f(x)がx=g(x)となるようなxを求める問題です。
scipyのfixed_point関数は、次のような引数を受け取ります。
- f : 関数f(x)を表す関数オブジェクト
- x0 : 初期値
- args : 関数f(x)に渡す引数
- xtol : 収束判定に使用するxの許容誤差
- maxiter : 最大反復回数
fixed_point関数は、次のような戻り値を返します。
- res : 固定点の解
- flag : 収束したかどうかを表すフラグ
- iter : 反復回数
- funcalls : 関数f(x)の呼び出し回数
以下の例では、関数f(x)=x^2-2を解くためにscipyのfixed_point関数を使用しています。
import scipy.optimize as opt
def f(x):
return x**2 - 2
res = opt.fixed_point(f, 1.0, xtol=1e-6, maxiter=1000)
print(res)
実行結果は次のようになります。
(1.414213562373095, True, 11, 12)
この結果から、関数f(x)の解は1.414213562373095であることがわかります。また、収束したかどうかを表すフラグがTrueであることから、収束したことがわかります。反復回数が11回であることから、収束まで11回の反復が必要であることがわかります。