Télécharger moca_mma.notice

Retour à la liste thématique

Afficher cette notice en

Numérotation des lignes :
   1 : $$$$ MOCA_MMA NOTICE  FD218221  26/04/29    21:15:02     12530          
   2 :                                              DATE     26/04/29
   3 : 
   4 :   Procedure MOCA_ MMA                    Voir aussi : MMA MOCA LEVM
   5 :      __________________                                 AJUSTE  
   6 : 
   7 :      Syntaxe :
   8 :      ---------
   9 : 
  10 :      LX1 (LSH LXH) = MOCA_MMA  'X0'   LX0  'ABSC' LP   'ORDO' LH   'PROC' FONC1  ...
  11 : 
  12 :                           ... ('XMIN' L1) ('XMAX' L2) ('POID' LW) ('CONT' FONC2) ...
  13 :                           ... ('CRIT' Z1) ('ITER' N1) ('INCR' DX)                ...
  14 :                           ... ('ECHO' N2) ('VISU' LV)                            ;
  15 : 
  16 : 
  17 : 
  18 : 
  19 :      Objet :
  20 :      -------
  21 : 
  22 :      La procedure MOCA_MMA permet d'ajuster les parametres d'une fonction
  23 :      pour passer au mieux (au sens des moindres carres) par une serie de points connus.
  24 :      Le processus de minimisation est base sur la Méthode des Asymptotes Mobiles.
  25 : 
  26 :      La fonction a ajuster peut etre non lineaire selon les parametres x.
  27 :      Les parametres x peuvent egalement etre soumis a des contraintes non lineaires.
  28 : 
  29 :      Description detaillee :
  30 :        Soit (P1,H1) (P2,H2) ... (Pm,Hm) une serie de m points connus.
  31 : 
  32 :        On cherche a ajuster une fonction h(P,x), s'exprimant aux points P,
  33 :        mais egalement dependante du vecteur x=(x1,x2,...xn) de n parametres,
  34 :        de maniere a avoir le plus faible ecart avec l'ensemble des points connus.
  35 : 
  36 :        Les parametres x peuvent etre soumis a un ensemble de r contraintes
  37 :        d'inegalite :  gj(x) < 0    pour j=1,2,...,r
  38 : 
  39 :        On pose donc le probleme d'optimisation suivant :
  40 : 
  41 :                                      m
  42 :                                     ----
  43 :                                 1   \
  44 :          Minimiser :    S(x) = ---  /     wi * [h(Pi,x) - Hi]^2
  45 :          sur x                  2   ----
  46 :                                     i = 1
  47 :  
  48 :          tel que   :    gj(x) < 0         pour j = 1,...,r
  49 :                         xmin < xi < xmax  pour i = 1,...,n
  50 : 
  51 : 
  52 :        La procedure MOCA_MMA determine x, solution du probleme d'optimisation,
  53 :        en partant d'un point de depart x0 et en appliquant iterativement
  54 :        l'operateur MMA de maniere a reduire l'ecart quadratique S(x) tout en
  55 :        satisfaisant les fonctions gj(x) < 0.
  56 : 
  57 :        Le processus est arrete lorsque l'une des conditions suivantes est atteinte :
  58 :        - le residu sur les conditions KKT est inferieur a la precision ;
  59 :        - le nombre d'iterations maximal est atteint.
  60 : 
  61 : 
  62 :      Arguments :
  63 :      -----------
  64 : 
  65 :      En entree, obligatoires :
  66 : 
  67 :      LX0   : LISTREEL, valeurs initiales x0 des parametres recherches
  68 :                        de dimension n
  69 : 
  70 :      LP    : LISTREEL, abscisses (Pi) des points connus
  71 :                        de dimension m
  72 : 
  73 :      LH    : LISTREEL, ordonnees (Hi) des points connus
  74 :                        de dimension m
  75 : 
  76 :      FONC1 : MOT, nom de la procedure Gibiane decrivant la fonction h.
  77 :                   Attention, il faut donner un MOT egal au nom de la
  78 :                   procedure (et non pas l'objet procedure lui meme) !
  79 :                   Elle doit avoir la syntaxe suivante :
  80 :                   LIS1 LIS2 = FONC1 LP LX ('VISU') ;    ou :
  81 :                   -- LP et LX sont les LISTREELs precedents
  82 :                   -- LIS1 est un LISTREEL des m valeurs de h(Pi,x) (i=1,...,m)
  83 :                   -- LIS2 est un LISTOBJE contenant m LISTREEL, ou chaque
  84 :                      LISTREEL i est constitue des n valeurs des derivees partielles
  85 :                      [dh(Pi,x)/dx1 , dh(Pi,x)/dx2, ... , dh(Pi,x)/dxn]
  86 :                   -- 'VISU' mot clef optionnel, si present la procedure
  87 :                      ne doit retourner que LIS1 (cette option est utilisee
  88 :                      a des fin de visualisation)
  89 : 
  90 :      En entree, facultatives :
  91 : 
  92 :      L1     : LISTREEL, bornes min (xmin) pour x, de dimension n
  93 :                         (par defaut toutes egales a 0.)
  94 : 
  95 :      L2     : LISTREEL, bornes max (xmax) pour x, de dimension n
  96 :                         (par defaut toutes egales a 1000.)
  97 : 
  98 :      LW     : LISTREEL, poids associes (wi) a chaque point (Pi,Hi) connu,
  99 :                         de dimension m
 100 :                         (par defaut tous egaaux a 1.)
 101 : 
 102 :      FONC2 : MOT, nom de la procedure Gibiane decrivant les fonctions contraintes gj.
 103 :                   Attention, il faut donner un MOT egal au nom de la
 104 :                   procedure (et non pas l'objet procedure lui meme) !
 105 :                   Elle doit avoir la syntaxe suivante :
 106 :                   LIS1 LIS2 = FONC2 LX ;    ou :
 107 :                   -- LX est le LISTREEL des variables x
 108 :                   -- LIS1 est un LISTREEL de r valeurs des fonctions contraintes gj
 109 :                      [g1(x) , g2(x) , ... , gr(x)]
 110 :                   -- LIS2 est un LISTOBJE contenant r LISTREELs, ou chaque
 111 :                      LISTREEL j est constitue des n valeurs des derivees partielles
 112 :                      [dgj(x)/dx1 , dgj(x)/dx2, ... , dgj(x)/dxn]
 113 : 
 114 :      Z1     : FLOTTANT, critere d'arret sur le residu KKT
 115 :                         (par defaut egal a 1.E-4)
 116 : 
 117 :      N1     : ENTIER, nombre maximal d'iterations d'appel a MMA
 118 :                       (par defaut egal a 50)
 119 : 
 120 :      DX     : FLOTTANT, limite d'increment (move) pour chaque iteration de MMA
 121 :                         (par defaut egal a 0.1)
 122 : 
 123 :      N2     : ENTIER, niveau d'affichage
 124 :                       N2 = 0   pas d'affichage (defaut)
 125 :                       N2 = 1   affiche les valeurs de x et du residu KKT au cours
 126 :                                de l'optimisation
 127 :                       N2 = 2   idem + renvoie ces valeurs intermediaires en sortie
 128 : 
 129 :      'VISU' LV : MOT + LISTREEL, si le mot clef 'VISU' est utilise, la procedure
 130 :                      trace une representation graphique de la fonction h(P,x) au cours
 131 :                      de l'optimisation, sur le domaine definit par LV.
 132 :                      Les points connus (LP,LH) seront egalement traces.
 133 : 
 134 : 
 135 :      En sortie :
 136 : 
 137 :      LX1 : LISTREEL, valeurs de x apres optimisation
 138 : 
 139 :      LSH : LISTREEL, liste de l'ecart quadratique S(x) pour chaque iteration
 140 :                      de l'optimisation (seulement si N2 = 2)
 141 : 
 142 :      LXH : LISTOBJE, liste de LISTREELs des valeurs de x pour chaque iteration
 143 :                      de l'optimisation (seulement si N2 = 2)
 144 : 

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