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