Matlab quadprog () - PullRequest
       23

Matlab quadprog ()

0 голосов
/ 27 сентября 2018

Известно, что для выпуклого квадратичного программирования с рамочными ограничениями, если существует локальный минимум, то это глобальный минимум.Однако, когда я проверяю это в Matlab с помощью quadprog (), он не дает глобального минимума.Как я знаю это: Когда я использую свой собственный алгоритм для той же задачи, он дает другой и лучший результат.Как это понять?

>> P

P =

    6.2468    0.9349   -3.4358   -1.5025    0.8950
    0.9349    5.8463    1.8075   -2.6750   -1.9500
   -3.4358    1.8075    3.9450    0.1500   -1.7000
   -1.5025   -2.6750    0.1500    2.5000    1.0000
    0.8950   -1.9500   -1.7000    1.0000    2.0000

>> f

    f =

       76.9601
       11.5177
      -42.3284
      -18.5108
       11.0264

>> aux = quadprog(P,f,[],[],[],[],-5*ones(5,1), 5*ones(5,1))

    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 optimality tolerance,
    and constraints are satisfied to within the default value of the constraint tolerance.

    <stopping criteria details>


    aux =

       -5.0000
       -2.4391
        5.0000
        2.5638
       -2.6857
 >> 0.5*aux'*P*aux+aux'*f

    ans =

     -413.0378
 >> aux = mpc_op(P,-f,-5,5)

aux =

  -12.3202
    0.0004
   -0.0007
    0.0005
   -0.0004

>> 0.5*aux'*P*aux+aux'*f

ans =

 -474.0713

Спасибо

...