$$$$ MOCA_MMA NOTICE FD218221 26/04/29 21:15:02 12530 DATE 26/04/29 Procedure MOCA_ MMA Voir aussi : MMA MOCA LEVM __________________ AJUSTE Syntaxe : --------- LX1 (LSH LXH) = MOCA_MMA 'X0' LX0 'ABSC' LP 'ORDO' LH 'PROC' FONC1 ... ... ('XMIN' L1) ('XMAX' L2) ('POID' LW) ('CONT' FONC2) ... ... ('CRIT' Z1) ('ITER' N1) ('INCR' DX) ... ... ('ECHO' N2) ('VISU' LV) ; Objet : ------- La procedure MOCA_MMA permet d'ajuster les parametres d'une fonction pour passer au mieux (au sens des moindres carres) par une serie de points connus. Le processus de minimisation est base sur la Méthode des Asymptotes Mobiles. La fonction a ajuster peut etre non lineaire selon les parametres x. Les parametres x peuvent egalement etre soumis a des contraintes non lineaires. Description detaillee : Soit (P1,H1) (P2,H2) ... (Pm,Hm) une serie de m points connus. On cherche a ajuster une fonction h(P,x), s'exprimant aux points P, mais egalement dependante du vecteur x=(x1,x2,...xn) de n parametres, de maniere a avoir le plus faible ecart avec l'ensemble des points connus. Les parametres x peuvent etre soumis a un ensemble de r contraintes d'inegalite : gj(x) < 0 pour j=1,2,...,r On pose donc le probleme d'optimisation suivant : m ---- 1 \ Minimiser : S(x) = --- / wi * [h(Pi,x) - Hi]^2 sur x 2 ---- i = 1 tel que : gj(x) < 0 pour j = 1,...,r xmin < xi < xmax pour i = 1,...,n La procedure MOCA_MMA determine x, solution du probleme d'optimisation, en partant d'un point de depart x0 et en appliquant iterativement l'operateur MMA de maniere a reduire l'ecart quadratique S(x) tout en satisfaisant les fonctions gj(x) < 0. Le processus est arrete lorsque l'une des conditions suivantes est atteinte : - le residu sur les conditions KKT est inferieur a la precision ; - le nombre d'iterations maximal est atteint. Arguments : ----------- En entree, obligatoires : LX0 : LISTREEL, valeurs initiales x0 des parametres recherches de dimension n LP : LISTREEL, abscisses (Pi) des points connus de dimension m LH : LISTREEL, ordonnees (Hi) des points connus de dimension m FONC1 : MOT, nom de la procedure Gibiane decrivant la fonction h. Attention, il faut donner un MOT egal au nom de la procedure (et non pas l'objet procedure lui meme) ! Elle doit avoir la syntaxe suivante : LIS1 LIS2 = FONC1 LP LX ('VISU') ; ou : -- LP et LX sont les LISTREELs precedents -- LIS1 est un LISTREEL des m valeurs de h(Pi,x) (i=1,...,m) -- LIS2 est un LISTOBJE contenant m LISTREEL, ou chaque LISTREEL i est constitue des n valeurs des derivees partielles [dh(Pi,x)/dx1 , dh(Pi,x)/dx2, ... , dh(Pi,x)/dxn] -- 'VISU' mot clef optionnel, si present la procedure ne doit retourner que LIS1 (cette option est utilisee a des fin de visualisation) En entree, facultatives : L1 : LISTREEL, bornes min (xmin) pour x, de dimension n (par defaut toutes egales a 0.) L2 : LISTREEL, bornes max (xmax) pour x, de dimension n (par defaut toutes egales a 1000.) LW : LISTREEL, poids associes (wi) a chaque point (Pi,Hi) connu, de dimension m (par defaut tous egaaux a 1.) FONC2 : MOT, nom de la procedure Gibiane decrivant les fonctions contraintes gj. Attention, il faut donner un MOT egal au nom de la procedure (et non pas l'objet procedure lui meme) ! Elle doit avoir la syntaxe suivante : LIS1 LIS2 = FONC2 LX ; ou : -- LX est le LISTREEL des variables x -- LIS1 est un LISTREEL de r valeurs des fonctions contraintes gj [g1(x) , g2(x) , ... , gr(x)] -- LIS2 est un LISTOBJE contenant r LISTREELs, ou chaque LISTREEL j est constitue des n valeurs des derivees partielles [dgj(x)/dx1 , dgj(x)/dx2, ... , dgj(x)/dxn] Z1 : FLOTTANT, critere d'arret sur le residu KKT (par defaut egal a 1.E-4) N1 : ENTIER, nombre maximal d'iterations d'appel a MMA (par defaut egal a 50) DX : FLOTTANT, limite d'increment (move) pour chaque iteration de MMA (par defaut egal a 0.1) N2 : ENTIER, niveau d'affichage N2 = 0 pas d'affichage (defaut) N2 = 1 affiche les valeurs de x et du residu KKT au cours de l'optimisation N2 = 2 idem + renvoie ces valeurs intermediaires en sortie 'VISU' LV : MOT + LISTREEL, si le mot clef 'VISU' est utilise, la procedure trace une representation graphique de la fonction h(P,x) au cours de l'optimisation, sur le domaine definit par LV. Les points connus (LP,LH) seront egalement traces. En sortie : LX1 : LISTREEL, valeurs de x apres optimisation LSH : LISTREEL, liste de l'ecart quadratique S(x) pour chaque iteration de l'optimisation (seulement si N2 = 2) LXH : LISTOBJE, liste de LISTREELs des valeurs de x pour chaque iteration de l'optimisation (seulement si N2 = 2)
© Cast3M 2003 - Tous droits réservés.
Mentions légales