scipyのbisect_interval: 区間のバイセクト法
scipyのbisect_interval関数は、関数f(x)が指定された区間[a,b]内で0になるxを求めるためのバイセクト法を実行するための関数です。バイセクト法は、関数f(x)が指定された区間[a,b]内で0になるxを求めるためのアルゴリズムです。アルゴリズムは、指定された区間[a,b]を2つの区間[a,c]と[c,b]に分割し、それぞれの区間内で関数f(x)が正か負かを判断します。そして、関数f(x)が正ならば[a,c]の区間を探索し、負ならば[c,b]の区間を探索します。このプロセスを繰り返し、関数f(x)が0になるxを求めます。
scipyのbisect_interval関数は、次のような引数を受け取ります。
- f: 関数f(x)を表す関数オブジェクト
- a: 探索する区間の左端
- b: 探索する区間の右端
- args: 関数f(x)に渡す引数
- xtol: 求めるxの値の精度
- rtol: 求めるxの値の相対精度
scipyのbisect_interval関数は、指定された区間[a,b]内で関数f(x)が0になるxを求めるためのバイセクト法を実行します。実行結果として、関数f(x)が0になるxの値を返します。
以下に、scipyのbisect_interval関数を使って、関数f(x)=x2-2が[1,2]の区間内で0になるxを求める例を示します。
import scipy.optimize as opt
def f(x):
return x**2 - 2
x = opt.bisect_interval(f, 1, 2)
print(x)
実行結果は次のようになります。
1.414213562373095
この結果から、関数f(x)=x2-2が[1,2]の区間内で0になるxの値は1.414213562373095であることがわかります。