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

最急降下法(勾配を用いた多変数関数の極小値の探索) [詳細]

関数

template<class T , class Allocator , class Functor >
double minimization (matrix< T, Allocator > &p, Functor f, double tolerance, double distance, size_t &iterations, size_t max_iterations=1000)
 探索の開始点を指定し,勾配を計算しながら最小値を探索する
template<class T , class Allocator , class Functor >
double minimization (matrix< T, Allocator > &p, const matrix< T, Allocator > &bound, Functor f, double tolerance, double distance, size_t &iterations, size_t max_iterations=1000)
 探索の開始点を指定し,勾配を計算しながら最小値を探索する
template<class T , class Allocator , class Functor1 , class Functor2 , class T2 >
double minimization (array2< T, Allocator > &p, Functor1 f, Functor2 g, const T2 &data, double tolerance, size_t &iterations, const size_t max_iterations=12, const double armijo_rho=0.7, const double armijo_c=0.1, const size_t armijo_max_iteration=10)
 探索の開始点を指定し,最急降下法(Steepest descent method)によりユーザーが指定した勾配計算関数を用いて最小値を探索する
template<class T , class Allocator , class Functor1 , class Functor2 >
double minimization (array2< T, Allocator > &p, Functor1 f, Functor2 g, double tolerance, size_t &iterations, const size_t max_iterations=12, const double armijo_rho=0.7, const double armijo_c=0.1, const size_t armijo_max_iteration=10)
 探索の開始点を指定し,最急降下法(Steepest descent method)によりユーザーが指定した勾配計算関数を用いて最小値を探索する
template<class T , class Allocator , class Functor >
double minimization (matrix< T, Allocator > &p, Functor f, double tolerance, double distance=1.0, size_t max_iterations=1000)
 探索の開始点を指定し,勾配を計算しながら最小値を探索する
template<class T , class Allocator , class Functor >
double minimization (matrix< T, Allocator > &p, const matrix< T, Allocator > &bound, Functor f, double tolerance, double distance=1.0, size_t max_iterations=1000)
 探索の開始点を指定し,勾配を計算しながら最小値を探索する

説明

最急降下法(勾配を用いた多変数関数の極小値の探索)

関数

template<class T , class Allocator , class Functor >
double mist::gradient::minimization ( matrix< T, Allocator > &  p,
Functor  f,
double  tolerance,
double  distance,
size_t &  iterations,
size_t  max_iterations = 1000 
)

探索の開始点を指定し,勾配を計算しながら最小値を探索する

探索の開始点を指定しその位置での勾配方向に向かった最小化を繰り返し,最小値を探索する

引数
[in,out]p… 探索の開始ベクトル,最小値を与えるベクトル
[in]f… 評価関数
[in]tolerance… 許容誤差
[in]distance… 勾配を計算する際の幅
[out]iterations… 実際の反復回数
[in]max_iterations… 最大反復回数
戻り値
極小を与える座標値における評価値

参照先 mist::gold::minimization(), と mist::array< T, Allocator >::size().

template<class T , class Allocator , class Functor >
double mist::gradient::minimization ( matrix< T, Allocator > &  p,
const matrix< T, Allocator > &  bound,
Functor  f,
double  tolerance,
double  distance,
size_t &  iterations,
size_t  max_iterations = 1000 
)

探索の開始点を指定し,勾配を計算しながら最小値を探索する

探索の開始点を指定しその位置での勾配方向に向かった最小化を繰り返し,最小値を探索する

引数
[in,out]p… 探索の開始ベクトル,最小値を与えるベクトル
[in]bound… 探索に用いる各要素の探索範囲
[in]f… 評価関数
[in]tolerance… 許容誤差
[in]distance… 勾配を計算する際の幅
[out]iterations… 実際の反復回数
[in]max_iterations… 最大反復回数
戻り値
極小を与える座標値における評価値

参照先 mist::gold::minimization(), と mist::array< T, Allocator >::size().

template<class T , class Allocator , class Functor1 , class Functor2 , class T2 >
double mist::gradient::minimization ( array2< T, Allocator > &  p,
Functor1  f,
Functor2  g,
const T2 &  data,
double  tolerance,
size_t &  iterations,
const size_t  max_iterations = 12,
const double  armijo_rho = 0.7,
const double  armijo_c = 0.1,
const size_t  armijo_max_iteration = 10 
)

探索の開始点を指定し,最急降下法(Steepest descent method)によりユーザーが指定した勾配計算関数を用いて最小値を探索する

探索の開始点を指定しその位置での勾配方向に向かった最小化を繰り返し,最小値を探索する

引数
[in,out]p… 探索の開始ベクトル,最小値を与えるベクトル
[in]f… 評価関数
[in]g… 勾配関数
[in]data… 評価関数,勾配関数の計算に必要なデータ
[in]tolerance… 許容誤差
[out]iterations… 実際の反復回数
[in]max_iterations… 最大反復回数
[in]armijo_rho… 減少率(1次元最適化のパラメータ)
[in]armijo_c… 条件数(1次元最適化のパラメータ)
[in]armijo_max_iteration… 最大反復回数(1次元最適化のパラメータ)
戻り値
極小を与える座標値における評価値

参照先 mist::array2< T, Allocator >::height(), mist::gold::minimization(), と mist::array2< T, Allocator >::width().

template<class T , class Allocator , class Functor1 , class Functor2 >
double mist::gradient::minimization ( array2< T, Allocator > &  p,
Functor1  f,
Functor2  g,
double  tolerance,
size_t &  iterations,
const size_t  max_iterations = 12,
const double  armijo_rho = 0.7,
const double  armijo_c = 0.1,
const size_t  armijo_max_iteration = 10 
)

探索の開始点を指定し,最急降下法(Steepest descent method)によりユーザーが指定した勾配計算関数を用いて最小値を探索する

探索の開始点を指定しその位置での勾配方向に向かった最小化を繰り返し,最小値を探索する

引数
[in,out]p… 探索の開始ベクトル,最小値を与えるベクトル
[in]f… 評価関数
[in]g… 勾配関数
[in]tolerance… 許容誤差
[out]iterations… 実際の反復回数
[in]max_iterations… 最大反復回数
[in]armijo_rho… 減少率(1次元最適化のパラメータ)
[in]armijo_c… 条件数(1次元最適化のパラメータ)
[in]armijo_max_iteration… 最大反復回数(1次元最適化のパラメータ)
戻り値
極小を与える座標値における評価値

参照先 mist::array2< T, Allocator >::height(), mist::gold::minimization(), と mist::array2< T, Allocator >::width().

template<class T , class Allocator , class Functor >
double mist::gradient::minimization ( matrix< T, Allocator > &  p,
Functor  f,
double  tolerance,
double  distance = 1.0,
size_t  max_iterations = 1000 
)

探索の開始点を指定し,勾配を計算しながら最小値を探索する

探索の開始点を指定しその位置での勾配方向に向かった最小化を繰り返し,最小値を探索する

引数
[in,out]p… 探索の開始ベクトル,最小値を与えるベクトル
[in]f… 評価関数
[in]tolerance… 許容誤差
[in]distance… 勾配を計算する際の幅
[in]max_iterations… 最大反復回数
戻り値
極小を与える座標値における評価値

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

template<class T , class Allocator , class Functor >
double mist::gradient::minimization ( matrix< T, Allocator > &  p,
const matrix< T, Allocator > &  bound,
Functor  f,
double  tolerance,
double  distance = 1.0,
size_t  max_iterations = 1000 
)

探索の開始点を指定し,勾配を計算しながら最小値を探索する

探索の開始点を指定しその位置での勾配方向に向かった最小化を繰り返し,最小値を探索する

引数
[in,out]p… 探索の開始ベクトル,最小値を与えるベクトル
[in]bound… 探索に用いる各要素の探索範囲
[in]f… 評価関数
[in]tolerance… 許容誤差
[in]distance… 勾配を計算する際の幅
[in]max_iterations… 最大反復回数
戻り値
極小を与える座標値における評価値

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


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