【Python scipy】fixed_point: 固定点の解

python

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回の反復が必要であることがわかります。

タイトルとURLをコピーしました