私の非線形最適化問題にNLoptを使いたい。チュートリアルページenter link description here、C++のサンプルコードでサンプルコードをテストします。それは良い作品です。しかし、最小化したい関数はベクトルを返すべきです。それはベクトルをアウトポットとして設定する、nlopt
double minf;
nlopt::result result = opt.optimize(x, minf);
printf("found minimum at f(%g,%g) = %g ", x[0],x[1],minf);
を持っているのチュートリアルページでは、どちらが私はMINFがベクトルであると思いますので、私はただのテストのための一次元ベクトルに変更します。
std::vector<double> minf(1);
nlopt::result result = opt.optimize(x, minf);
printf("found minimum at f(%g,%g) = %g ", x[0],x[1],minf[0]);
そして、それはnltest2.cpp:44:44: error: no matching function for call to ‘nlopt::opt::optimize(std::vector<double>&, std::vector<double>&)’
が、私はそれがベクトルをrecturnさせることができますどのような方法がありますエラーを持っていますか? さらに詳しいことができます(答えがわからない方はOKです)。私はarmadillo matrix libraryを使用したいと考えています。より良い私は
mat minf(1,1);
nlopt::result result = opt.optimize(x, minf);
printf("found minimum at f(%g,%g) = %g ", x[0],x[1],minf(1,1));
これは当然のエラーが発生し...あなたの答えのための
おかげで(私は時間必要なファイルが含まれている)ことができれば!