Télécharger ajuste.notice

Retour à la liste

Afficher cette notice en

Numérotation des lignes :
   1 : $$$$ AJUSTE   NOTICE  CHAT      11/09/12    21:15:05     7124           
   2 :                                              DATE     11/09/12
   3 :  
   4 :     procedure AJUSTE                              Voir aussi : MOCA LEVM 
   5 :     ----------------   
   6 :     Q P = AJUSTE  TAB1 ; 
   7 :  
   8 :             TAB1.'X'             (TAB1.'PMIN') 
   9 :             TAB1.'F'             (TAB1.'PMAX') 
  10 :             TAB1.'K'             (TAB1.'PRECISION') 
  11 :             TAB1.'L'             (TAB1.'MXTER') 
  12 :            (TAB1.'POIDS')        (TAB1.'MESSAGES')   
  13 :                                  (TAB1.'IMPRESSION')  
  14 :             
  15 : 
  16 :  
  17 :     Objet : 
  18 :     -------- 
  19 :  
  20 :       Soit une fonction F(x,y,z...,p1,..,pk) mise sous la forme : 
  21 :  
  22 :        F(x,p) = q1 * f1(x,y,z,.,p1,..,pk) 
  23 :               + q2 * f2(x,y,z,.,p1,..,pk) 
  24 :               + ... 
  25 :               + ql * fl(x,y,z,.,p1,..,pk) 
  26 :  
  27 :               + g(x,y,z,.,p1,..,pk) 
  28 :  
  29 :        qi (i=1,l) sont les parametres lineaires. 
  30 :        pj (j=1,k) sont les parametres non lineaires. 
  31 :  
  32 :        La procedure ajuste ces differents parametres afin que la 
  33 :        fonction passe au mieux dans une serie de N couples 
  34 :  
  35 :                    ( (x,y,z,...) ; Fdi(x,y,z,..) )  
  36 :  
  37 :        fournie par l' utilisateur. 
  38 :  
  39 :        En fait, on cherche a minimiser la fonction : 
  40 :  
  41 :            G = [ (poids(i) * ( F(x,p) - Fdi(x,y,z..) )**2 ] 
  42 :              somme sur i=1,N 
  43 :  
  44 :     Donnees : 
  45 :     ---------- 
  46 :  
  47 :        TAB1.'X'      : TABLE indicee par des entiers i=1,N qui contient 
  48 :                        le(s) LISTREEL(s) x,y,z,..... 
  49 :  
  50 :        TAB1.'F'      : valeurs a caler F(x,y,z...) (LISTREEL). 
  51 :  
  52 :        TAB1.'K'      : nombre de parametres non lineaires (ENTIER). 
  53 :  
  54 :        TAB1.'L'      : nombre de parametres lineaires (ENTIER). 
  55 :  
  56 :        TAB1.'MESSAGES' : niveau de message (defaut=0 : rien) 
  57 :                        1 -> resultats, 2 -> iterations 
  58 :  
  59 :        TAB1.'IMPRESSION' : frequence des impressions si MESSAGES=2 
  60 :                       (type ENTIER, defaut : toutes les 20 iterations).  
  61 :  
  62 :  
  63 :        TAB1.'PMIN'   : valeurs minimum de p  
  64 :                        (LISTREEL, obligatoire si K > 0). 
  65 :  
  66 :        TAB1.'PMAX'   : valeurs maximum de p  
  67 :                        (LISTREEL, obligatoire si K > 0). 
  68 :  
  69 :        TAB1.'PRECISION' : (LISTREEL, utile si K>0) : 
  70 :                        critere de precision de convergence pour les K 
  71 :                        parametres non lineaires (defaut 1.e-7) 
  72 :  
  73 :        TAB1.'MXTER'  : nombre maximum d'iterations  
  74 :                        (ENTIER, utile si K>1, defaut=100).  
  75 :  
  76 :        TAB1.'POIDS'  : valeurs de poids a affecter a chacun des points de 
  77 :                        mesure fournis. (LISTREEL, defaut=1.)   
  78 :  
  79 :        TAB1.'NOM_FCT': nom de la procedure qui calcule les fi(x,p) et g(x,p) 
  80 :                        (MOT, defaut='FCT'). 
  81 :  
  82 :        TAB1.'NOM_DERI': nom de la procedure qui calcule les derivees de 
  83 :                        fi(x,p) et g(x,p) par rapport aux p_j  
  84 :                        (MOT, defaut='DERI'). 
  85 :  
  86 :      Sortie : 
  87 :      -------- 
  88 :        Q et P sont des LISTREELs contenant les parametres qi et pi. 
  89 :   
  90 :  
  91 :      Utilisation : 
  92 :      -------------- 
  93 :  
  94 :        Deux procedures sont a creer par l'utilisateur. 
  95 :  
  96 :       - Procedure FCT: 
  97 :  
  98 :        Son but est de calculer la fonction a ajuster connaissant les 
  99 :        valeurs des abscisses x,y,. et ceci pour un jeu de parametres 
 100 :        p donne. En fait, on demande de calculer les fonctions 
 101 :        f1,f2,...,fl et la fonction g. 
 102 :        Pour chaque fonction fi, la procedure calcule autant de 
 103 :        valeurs qu'il y a de valeurs dans x,y,z .. Le resultat doit 
 104 :        etre mis sous la forme d'un objet TABLE. 
 105 :  
 106 :        tbfonc = FCT xtab p; 
 107 :  
 108 :        En argument FCT recevra la table TAB1.'X', ainsi que le 
 109 :        LISTREEL p qui contient les valeurs courantes de P. 
 110 :  
 111 :        La table doit se mettre sous la forme suivante: 
 112 :  
 113 :                       tbfonc.'F'.i  =  listreel des valeurs de fi 
 114 :  
 115 :                       tbfonc.'G'    =  listreel des valeurs de g 
 116 :  
 117 :        Les parametres lineaires qi n'ont pas a etre ecrit. 
 118 :  
 119 :       - Procedure DERI: 
 120 :  
 121 :        Elle construit une table de listreels contenant les valeurs des 
 122 :        fonctions f1,f2,...,fl et g derivees par rapport aux parametres 
 123 :        non lineaires pj pour chaque valeur de x,y,z.. et de p. 
 124 :  
 125 :        tbderi = DERI xtab p; 
 126 :  
 127 :        En argument DERI recevra la table TAB1.'X', ainsi que le 
 128 :        LISTREEL p. 
 129 :  
 130 :        La table doit etre cree de la façon suivante: 
 131 :  
 132 :                    tbderi.'F'. j . i = listreel des valeurs de dfi/dpj 
 133 :  
 134 :                    tbderi.'G'. j     = listreel des valeurs de dg/dpj 
 135 :  
 136 :  
 137 :      Remarques : 
 138 :      ----------- 
 139 :  
 140 :  
 141 :       - Les abscisses etant dans un LISTRÉEL, il faut que les 
 142 :         constantes soient exprimees, dans les procedures FCT et DERI, 
 143 :         sous forme de LISTRÉEL.  
 144 :  
 145 :         ex: f1(x)=x+1   donne   f1(x)=x+(prog N*1); 
 146 :             N etant la dimension de x. 
 147 :  
 148 :       - Attention, les fonctions sinusoidales ont pour operandes des 
 149 :         degres.  
 150 :  
 151 :       - on peut creer des procedures de nom differents de ceux par 
 152 :         defaut en completant les indices 'NOM_FCT' et 'NOM_DERI'. Bien 
 153 :         faire preceder le nom de la procedure par l'operateur 'MOT'. 
 154 :  
 155 :       - exemples dans :  ajuste1.dgibi  ajuste2.dgibi  identifi.dgibi 
 156 :  
 157 :  
 158 :  
 159 : 
 160 :  
 161 :  

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