Why does quadprog return different results on different machines?

3 次查看(过去 30 天)
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

回答(2 个)

Matt J
Matt J 2014-7-11
编辑:Matt J 2014-7-11
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 2014-7-11
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?

类别

Help CenterFile Exchange 中查找有关 Get Started with Optimization Toolbox 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by