Why does quadprog return different results on different machines?

3 views (last 30 days)
I'm solving a quadratic program at multiple different points. I've run the program on 3 different machines, a Mac Mini running OS X 10.9 (Mavericks), a desktop running Windows 8.1 and a laptop running Windows 8.1. All machines are running MATLAB 2014a. The Mac mini and the desktop PC solve the quadratic program using quadprog quickly with no issues. The laptop however returns that the max number of iterations have been exceeded at multiple points and returns a much different, worse solution. The program is exactly the same and quadprog is called with the same options (active-set, tolerances, max iterations etc) on all machines. Literally nothing in the program is being changed between runs on different computers. Does anyone have any idea what could be causing this behavior?
Thanks, Tim

Answers (2)

Matt J
Matt J on 11 Jul 2014
Edited: Matt J on 11 Jul 2014
You may well have multiple solutions (or approximately so). Do they all reach similar final objective function values? What does cond(Hessian) give you? Is the Hessian even non-negative definite?

Shashank Prasanna
Shashank Prasanna on 11 Jul 2014
Did you provide the starting point yourself? If you have multiple optimums then the result will be sensitive to the starting point x0. Also as Matt J suggested, check the function value for all the machines and compare them. Relax tolerances and run again to see if you get similar results:
Use these article to diagnose:
If there don't help, can you share H,f,A,b etc?

Categories

Find more on Get Started with Optimization Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!