Télécharger ajuste.notice

Retour à la liste

Afficher cette notice en

Numérotation des lignes :
$$$$ AJUSTE   NOTICE  CHAT      11/09/12    21:15:05     7124           
                                             DATE     11/09/12
 
    procedure AJUSTE                              Voir aussi : MOCA LEVM 
    ----------------   
    Q P = AJUSTE  TAB1 ; 
 
            TAB1.'X'             (TAB1.'PMIN') 
            TAB1.'F'             (TAB1.'PMAX') 
            TAB1.'K'             (TAB1.'PRECISION') 
            TAB1.'L'             (TAB1.'MXTER') 
           (TAB1.'POIDS')        (TAB1.'MESSAGES')   
                                 (TAB1.'IMPRESSION')  
            

 
    Objet : 
    -------- 
 
      Soit une fonction F(x,y,z...,p1,..,pk) mise sous la forme : 
 
       F(x,p) = q1 * f1(x,y,z,.,p1,..,pk) 
              + q2 * f2(x,y,z,.,p1,..,pk) 
              + ... 
              + ql * fl(x,y,z,.,p1,..,pk) 
 
              + g(x,y,z,.,p1,..,pk) 
 
       qi (i=1,l) sont les parametres lineaires. 
       pj (j=1,k) sont les parametres non lineaires. 
 
       La procedure ajuste ces differents parametres afin que la 
       fonction passe au mieux dans une serie de N couples 
 
                   ( (x,y,z,...) ; Fdi(x,y,z,..) )  
 
       fournie par l' utilisateur. 
 
       En fait, on cherche a minimiser la fonction : 
 
           G = [ (poids(i) * ( F(x,p) - Fdi(x,y,z..) )**2 ] 
             somme sur i=1,N 
 
    Donnees : 
    ---------- 
 
       TAB1.'X'      : TABLE indicee par des entiers i=1,N qui contient 
                       le(s) LISTREEL(s) x,y,z,..... 
 
       TAB1.'F'      : valeurs a caler F(x,y,z...) (LISTREEL). 
 
       TAB1.'K'      : nombre de parametres non lineaires (ENTIER). 
 
       TAB1.'L'      : nombre de parametres lineaires (ENTIER). 
 
       TAB1.'MESSAGES' : niveau de message (defaut=0 : rien) 
                       1 -> resultats, 2 -> iterations 
 
       TAB1.'IMPRESSION' : frequence des impressions si MESSAGES=2 
                      (type ENTIER, defaut : toutes les 20 iterations).  
 
 
       TAB1.'PMIN'   : valeurs minimum de p  
                       (LISTREEL, obligatoire si K > 0). 
 
       TAB1.'PMAX'   : valeurs maximum de p  
                       (LISTREEL, obligatoire si K > 0). 
 
       TAB1.'PRECISION' : (LISTREEL, utile si K>0) : 
                       critere de precision de convergence pour les K 
                       parametres non lineaires (defaut 1.e-7) 
 
       TAB1.'MXTER'  : nombre maximum d'iterations  
                       (ENTIER, utile si K>1, defaut=100).  
 
       TAB1.'POIDS'  : valeurs de poids a affecter a chacun des points de 
                       mesure fournis. (LISTREEL, defaut=1.)   
 
       TAB1.'NOM_FCT': nom de la procedure qui calcule les fi(x,p) et g(x,p) 
                       (MOT, defaut='FCT'). 
 
       TAB1.'NOM_DERI': nom de la procedure qui calcule les derivees de 
                       fi(x,p) et g(x,p) par rapport aux p_j  
                       (MOT, defaut='DERI'). 
 
     Sortie : 
     -------- 
       Q et P sont des LISTREELs contenant les parametres qi et pi. 
  
 
     Utilisation : 
     -------------- 
 
       Deux procedures sont a creer par l'utilisateur. 
 
      - Procedure FCT: 
 
       Son but est de calculer la fonction a ajuster connaissant les 
       valeurs des abscisses x,y,. et ceci pour un jeu de parametres 
       p donne. En fait, on demande de calculer les fonctions 
       f1,f2,...,fl et la fonction g. 
       Pour chaque fonction fi, la procedure calcule autant de 
       valeurs qu'il y a de valeurs dans x,y,z .. Le resultat doit 
       etre mis sous la forme d'un objet TABLE. 
 
       tbfonc = FCT xtab p; 
 
       En argument FCT recevra la table TAB1.'X', ainsi que le 
       LISTREEL p qui contient les valeurs courantes de P. 
 
       La table doit se mettre sous la forme suivante: 
 
                      tbfonc.'F'.i  =  listreel des valeurs de fi 
 
                      tbfonc.'G'    =  listreel des valeurs de g 
 
       Les parametres lineaires qi n'ont pas a etre ecrit. 
 
      - Procedure DERI: 
 
       Elle construit une table de listreels contenant les valeurs des 
       fonctions f1,f2,...,fl et g derivees par rapport aux parametres 
       non lineaires pj pour chaque valeur de x,y,z.. et de p. 
 
       tbderi = DERI xtab p; 
 
       En argument DERI recevra la table TAB1.'X', ainsi que le 
       LISTREEL p. 
 
       La table doit etre cree de la façon suivante: 
 
                   tbderi.'F'. j . i = listreel des valeurs de dfi/dpj 
 
                   tbderi.'G'. j     = listreel des valeurs de dg/dpj 
 
 
     Remarques : 
     ----------- 
 
 
      - Les abscisses etant dans un LISTRÉEL, il faut que les 
        constantes soient exprimees, dans les procedures FCT et DERI, 
        sous forme de LISTRÉEL.  
 
        ex: f1(x)=x+1   donne   f1(x)=x+(prog N*1); 
            N etant la dimension de x. 
 
      - Attention, les fonctions sinusoidales ont pour operandes des 
        degres.  
 
      - on peut creer des procedures de nom differents de ceux par 
        defaut en completant les indices 'NOM_FCT' et 'NOM_DERI'. Bien 
        faire preceder le nom de la procedure par l'operateur 'MOT'. 
 
      - exemples dans :  ajuste1.dgibi  ajuste2.dgibi  identifi.dgibi 
 
 
 

 
 

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