>>204
英語で検索すればmatlabのソースコードが入ったPDFとか引っかかったよ
そのアルゴリズムは今さっきしったけど暇だったから
コンパイルは通らない超適当な疑似コードを書いた

struct center{
int x,y; //2次元の場合。N次元ならどうデータを持つかはパス
int delta; //探索する幅(毎回1/3になる)
};
struct evector{ int x,y;}; //単位ベクトル
vector<evector> make_evector(int dimension); //次元の数だけ単位ベクトルを生成(略)
//中心と単位ベクトルを与えて次の中心点を計算
int update(center& d,vector<evector>& vx){
double min_value;
double eps=0;
double val=f(center);
for(/*2^(単位ベクトル数)分ループ、2次元なら4方向)*/){
if(min_value>f(center+単位ベクトル)){
min_value=f(center);
//この時のベクトル,仮にvxを保存
}
}
//保存したのベクトルの方向へ中心を移動
center.x+=(1/3)*vx.x;
center.y+=(1/3)*vy.y;
eps=f(center)-val;
return eps;
}
main(){/* 略 */while(0.0001>update(center,vec)){}} //1.0*10^(-4)が経験則らしい