numerical problem of quadprog

4 vues (au cours des 30 derniers jours)
Mingyang Sun
Mingyang Sun le 13 Avr 2021
Commenté : Bruno Luong le 13 Avr 2021
Hi, I am trying to solve a badly scaled quadprog problem
H = [5e15, -1.66e15, 1.02e9, -1.23e10;
-1.66e15, 1.11e15, 1.42e6, 8.3e9;
1.02e9, 1.42e6, 2.5e6, 93;
-1.23e10, 8.32e9 , 93, 5e5 ]
f = [-4.76e7, 3.49e7, -2.19, 2.31e3]'
Aieq = [1/2, -1/3, 0, 0]
bieq = 0
when I try to use quadprog(H,-f,Aieq,bieq), MATLAB indicates problem successfully solved, but if you check inequality constraint manually, Aieq * x = a very very small positive number.
What is the best way to solve this numerical problem?
  1. set 'ConstraintTolerance' to a small number?
  2. set bieq = a very small negative number?
  3. rescale matrix H and f?
  5 commentaires
Mingyang Sun
Mingyang Sun le 13 Avr 2021
Thanks a lot for your replying, can I let
scal = sqrt(vecnorm(H))
and do
H_adj = H./(scal.'*scal); f_adj = f./scal.'
and
quadprog(H_adj,-f_adj,Aieq,bieq)?
Bruno Luong
Bruno Luong le 13 Avr 2021
You have also to modify Aieq.

Connectez-vous pour commenter.

Réponses (0)

Catégories

En savoir plus sur Quadratic Programming and Cone Programming dans Help Center et File Exchange

Produits


Version

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by