我想爲我的非線性優化問題使用NLopt。我在教程頁enter link description here,C++示例中測試示例代碼。它運作良好。但是我想最小化的函數應該返回一個向量。這是在教程頁面有將向量設置爲outpot,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的載體? 更重要的是(如果你不能回答這個問題)。我希望使用犰狳矩陣庫。該更好,如果我可以(我已經包括所需要的.h文件)
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));
這將導致課程的錯誤...
謝謝您的回答!