Global Search optimization error
1 次查看(过去 30 天)
显示 更早的评论
I am trying to run a global search optimization in order to minimize a function. When I run it, I receive the following error:
Warning: Matrix is singular, close to
singular or badly scaled. Results may
be inaccurate. RCOND = NaN.
> In qpsub>eqnsolv at 953
In qpsub at 157
In nlconst at 619
In fmincon at 837
In C:\Program Files\MATLAB\R2012b\toolbox\globaloptim\globaloptim\private\globalsearchnlp.p>i_runLocalSolver at 684
In C:\Program Files\MATLAB\R2012b\toolbox\globaloptim\globaloptim\private\globalsearchnlp.p>globalsearchnlp at 292
In GlobalSearch>GlobalSearch.run at 327
In opt_model_ms at 52
Do you have any idea why is this happening? My function is well defined. On the other hand it has 6 variables, which could be difficult for global search to find the minimum. I could also post the function here if you need more information?
采纳的回答
Giorgos Papakonstantinou
2013-1-23
编辑:Giorgos Papakonstantinou
2013-1-27
1 个评论
Alan Weiss
2013-1-23
Perhaps your line
Aeq(2,6)=zeros;
should be
Aeq = zeros(2,6);
Also, I notice that you are integrating a function symbolically inside your function, then converting the answer to numeric. This is bound to be slow. It would probably be better to get a symbolic expression for the integral (if one exists) and use matlabFunction to give you a function handle or file for numeric computation. If there is no closed form symbolic expression for the integral, then I recommend you use a numeric integrator in MATLAB such as integral or quadgk.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation
更多回答(3 个)
Alan Weiss
2013-1-23
The warning indicates that you are using the fmincon active-set algorithm. The first thing I would try is to use the interior-point algorithm. Then the sqp algorithm. See the documentation for details.
opts = optimset('Algorithm','interior-point');
problem = createOptimProblem('fmincon','options',opts);
Obviously, you will have other things in your problem structure, I just wanted to show you how to include the options to change the algorithm.
Alan Weiss
MATLAB mathematical toolbox documentation
0 个评论
Giorgos Papakonstantinou
2013-1-23
2 个评论
Matt J
2013-1-23
Either could be the case, but there is no reason to doubt the solution just because it lies at the boundaries.
Alan Weiss
2013-1-24
You could also try some of the suggestions in the documentation for how to check whether your answer is indeed an optimum.
If you feel that I have sufficiently answered your questions, please accept the appropriate answer.
Alan Weiss
MATLAB mathematical toolbox documentation
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Linear Least Squares 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!