Télécharger kkt_mma.procedur

Retour à la liste

Numérotation des lignes :

  1. * KKT_MMA PROCEDUR FD218221 26/09/16 21:15:07 12646
  2.  
  3. DEBP KKT_MMA tab1*'TABLE' ;
  4.  
  5. ** Extraction des resultats
  6. * variables d'optimisation
  7. x = tab1 . 'X' ;
  8. y = tab1 . 'Y' ;
  9. z = tab1 . 'Z' ;
  10. n = DIME x ;
  11. m = DIME y ;
  12. * parametres d'optimisation
  13. a0 = tab1 . 'A0' ;
  14. a = tab1 . 'A' ;
  15. c = tab1 . 'C' ;
  16. d = tab1 . 'D' ;
  17. xmin = tab1 . 'XMIN' ;
  18. xmax = tab1 . 'XMAX' ;
  19. * valeurs des fonctions objectif et contraintes
  20. df0dx = tab1 . 'DF0DX' ;
  21. fval = tab1 . 'FVAL' ;
  22. dfdx = tab1 . 'DFDX' ;
  23. * multiplicateurs de Lagrange
  24. lam = tab1 . 'LAMBDA' ;
  25. xsi = tab1 . 'XSI' ;
  26. eta = tab1 . 'ETA' ;
  27. mu = tab1 . 'MU' ;
  28. zet = tab1 . 'ZET' ;
  29. * slack variables
  30. s = tab1 . 'S' ;
  31.  
  32. ** Calcul des residus
  33. dfdxtlam = PROG ;
  34. REPE bvar n ;
  35. dfdxt = PROG ;
  36. REPE bcont m ;
  37. SI (EGA (TYPE dfdx) 'LISTOBJE') ;
  38. dfdxt = dfdxt ET (EXTR (EXTR dfdx &bcont) &bvar) ;
  39. SINON ;
  40. dfdxt = dfdxt ET (EXTR (dfdx . &bcont) &bvar) ;
  41. FINSI ;
  42. FIN bcont ;
  43. dfdxtlam = dfdxtlam ET (SOMM (dfdxt * lam)) ;
  44. FIN bvar ;
  45. rex = df0dx + dfdxtlam - xsi + eta ;
  46. rey = c + (d * y) - mu - lam ;
  47. rez = a0 - zet - (SOMM (a * lam)) ;
  48. relam = fval - (a * z) - y + s ;
  49. rexsi = xsi * (x - xmin) ;
  50. reeta = eta * (xmax - x) ;
  51. remu = mu * y ;
  52. rezet = zet * z ;
  53. res = lam * s ;
  54.  
  55. ** Concatenation des residus etcalcul de normes 2 et infinies
  56. residu1 = rex ET rey ET rez ;
  57. residu2 = relam ET rexsi ET reeta ET remu ET rezet ET res ;
  58. residu = residu1 ET residu2 ;
  59. resnorm = (SOMM (residu ** 2)) ** 0.5 ;
  60. resmax = MAXI 'ABS' residu ;
  61.  
  62. FINP residu resnorm resmax ;
  63.  
  64.  
  65.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales