Static optimization using fmincon and quadprog
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Raj Patel
am 17 Nov. 2020
Kommentiert: Raj Patel
am 17 Nov. 2020
Can anyone tell me which one os the optimization methods is faster between "fmincon" and "quadprog"? And why is it faster or slower?
Thanks in advance,
Raj Patel
0 Kommentare
Akzeptierte Antwort
Ameer Hamza
am 17 Nov. 2020
Bearbeitet: Ameer Hamza
am 17 Nov. 2020
quadprog() is used for a very specific type of optimization problem and, therefore, can be optimized way more than fmincon(). However, note that there is no direct comparison since fmincon() can solve problems which quadprog() cannot. But for a similar problem, quadprog() will be faster. For example
H = [1 -1; -1 2];
f = [-2; -6];
A = [1 1; -1 2; 2 1];
b = [2; 2; 3];
opts1 = optimoptions('quadprog', 'Display', 'off');
opts2 = optimoptions('fmincon', 'Display', 'off');
t1 = timeit(@() quadprog(H, f, A, b, [], [], [], [], [], opts1))
t2 = timeit (@() fmincon(@(x) 1/2*x.'*H*x+f.'*x, rand(2,1), A, b, [], [], [], [], [], opts2))
Result
>> t1
t1 =
8.3352e-04
>> t2
t2 =
0.0081
>> t2/t1
ans =
9.6923
quadprog() is about 10 times faster. You can also check that both fmincon() and quadprog() give same solutions.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Surrogate Optimization finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!