関数
ネームスペース mist::brent

Brent の放物線補間を用いた極小値の1次元探索(2次収束) [詳細]

関数

template<class Functor >
double minimization (double a, double b, double &x, Functor f, double tolerance, size_t &iterations, size_t max_iterations, bool use_enclose=true)
 Brent の放物線補間を用いて,指定された区間内の f(x) の極小値の一次元探索を行う(2次収束)
template<class Functor >
double minimization (double a, double b, double &x, Functor f, double tolerance, size_t max_iterations=1000, bool use_enclose=true)
 Brent の放物線補間を用いて,f(x)の極小値の一次元探索を行う(2次収束)

説明

Brent の放物線補間を用いた極小値の1次元探索(2次収束)

関数

template<class Functor >
double mist::brent::minimization ( double  a,
double  b,
double &  x,
Functor  f,
double  tolerance,
size_t &  iterations,
size_t  max_iterations,
bool  use_enclose = true 
)

Brent の放物線補間を用いて,指定された区間内の f(x) の極小値の一次元探索を行う(2次収束)

  • 参考文献
    • Richard P. Brent, "Algorithms for Minimization Without Derivatives", DOVER PUBLICATIONS, Mineola, New York
覚え書き
指定された区間 [a, b] 内での極小値を探索する
区間内に極小が存在しない場合は,区間内で最小となる位置を出力する
use_enclose を真に指定した場合は,最初に区間を拡張して極小を探索する(本ヘッダ内の enclose 関数を利用する)
引数
[in]a… 区間の左端
[in]b… 区間の右端
[out]x… 極小を与える座標値
[in]f… 評価関数
[in]tolerance… 許容誤差
[out]iterations… 実際の反復回数
[in]max_iterations… 最大反復回数
[in]use_enclose… 極小をはさむ区間の更新を行うかどうか
戻り値
極小を与える座標値における評価値

参照先 mist::enclose().

template<class Functor >
double mist::brent::minimization ( double  a,
double  b,
double &  x,
Functor  f,
double  tolerance,
size_t  max_iterations = 1000,
bool  use_enclose = true 
)

Brent の放物線補間を用いて,f(x)の極小値の一次元探索を行う(2次収束)

初期の極小を含むと思われる区間 [a, b] を適切に設定することで,収束を早めることができる

覚え書き
指定された区間 [a, b] 内での極小値を探索する
区間内に極小が存在しない場合は,区間内で最小となる位置を出力する
use_enclose を真に指定した場合は,最初に区間を拡張して極小を探索する(本ヘッダ内の enclose 関数を利用する)
引数
[in]a… 区間の左端
[in]b… 区間の右端
[out]x… 極小を与える座標値
[in]f… 評価関数
[in]tolerance… 許容誤差
[in]max_iterations… 最大反復回数
[in]use_enclose… 極小をはさむ区間の更新を行うかどうか
戻り値
極小を与える座標値における評価値

参照先 mist::gold::minimization().


Generated on Wed Nov 12 2014 19:44:29 for MIST by doxygen 1.8.1.2