Télécharger kkt_mma.procedur

Retour à la liste

Numérotation des lignes :

  1. * KKT_MMA PROCEDUR FD218221 25/09/02 21:15:05 12346
  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. dfdxt = dfdxt ET (EXTR (dfdx . &bcont) &bvar) ;
  38. FIN bcont ;
  39. dfdxtlam = dfdxtlam ET (SOMM (dfdxt * lam)) ;
  40. FIN bvar ;
  41. rex = df0dx + dfdxtlam - xsi + eta ;
  42. rey = c + (d * y) - mu - lam ;
  43. rez = a0 - zet - (SOMM (a * lam)) ;
  44. relam = fval - (a * z) - y + s ;
  45. rexsi = xsi * (x - xmin) ;
  46. reeta = eta * (xmax - x) ;
  47. remu = mu * y ;
  48. rezet = zet * z ;
  49. res = lam * s ;
  50.  
  51. ** Concatenation des residus etcalcul de normes 2 et infinies
  52. residu1 = rex ET rey ET rez ;
  53. residu2 = relam ET rexsi ET reeta ET remu ET rezet ET res ;
  54. residu = residu1 ET residu2 ;
  55. resnorm = (SOMM (residu ** 2)) ** 0.5 ;
  56. resmax = MAXI 'ABS' residu ;
  57.  
  58. FINP residu resnorm resmax ;
  59.  
  60.  

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