How to find accuracy of Matlab's quadprog solver?

782 Views Asked by At

I have solved with quadprog from Matlab a strong convex quadratic problem given as $$ f(x) = x^TQx + c^Tx$$ with constrains $$ Cx \leq b.$$

Now the output of quadprog is:

Minimum found that satisfies the constraints.

Optimization completed because the objective function is non-decreasing in feasible directions, to within the default value of the function tolerance, and constraints are satisfied to within the default value of the constraint tolerance.

Optimization completed: The relative dual feasibility, 9.711779e-12, is less than options.TolFun = 1.000000e-08, the complementarity measure, 9.481207e-09, is less than options.TolFun, and the relative maximum constraint violation, 2.273737e-12, is less than options.TolCon = 1.000000e-08.

Optimization Metric Options relative dual feasibility = 9.71e-12 TolFun = 1e-08 (default) complementarity measure = 9.48e-09 TolFun = 1e-08 (default) relative max(constraint violation) = 2.27e-12
TolCon = 1e-08 (default)

What is now the accuracy of my computed solution $x^*$? I have found that TolFun is the size of the latest change in objective function value, and TolCon is the constraint tolerance.

At http://www.mathworks.de/help/optim/ug/quadprog.html I found that the default termination tolerance on x is $1e-08.$ Is this also used as a stopping criteria? Does it imply that my computed solution differs from the real solution only in $1e-08$?

I also do not understand how the computer can find a upper bound for the difference between my computed solution and the real solution.