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次収束)
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次収束)
[in] | a | … 区間の左端 |
[in] | b | … 区間の右端 |
[out] | x | … 極小を与える座標値 |
[in] | f | … 評価関数 |
[in] | tolerance | … 許容誤差 |
[out] | iterations | … 実際の反復回数 |
[in] | max_iterations | … 最大反復回数 |
[in] | use_enclose | … 極小をはさむ区間の更新を行うかどうか |
参照先 mist::enclose().
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] を適切に設定することで,収束を早めることができる
[in] | a | … 区間の左端 |
[in] | b | … 区間の右端 |
[out] | x | … 極小を与える座標値 |
[in] | f | … 評価関数 |
[in] | tolerance | … 許容誤差 |
[in] | max_iterations | … 最大反復回数 |
[in] | use_enclose | … 極小をはさむ区間の更新を行うかどうか |