Télécharger ipol.notice

Retour à la liste thématique

Afficher cette notice en

Numérotation des lignes :
   1 : $$$$ IPOL     NOTICE  BP208322  16/08/31    21:15:03     9051           
   2 :                                              DATE     16/08/31
   3 : 
   4 :     Operateur IPOL                           Voir aussi : PROJGRIL VARI
   5 :     --------------  
   6 :     1)   OBJET2 = 'IPOL'  OBJET1 | LREEL1 LREEL2 | ...
   7 :                                  | EVOL1         |
   8 : 
   9 :                   ... | ('SPLI' ('DGAU' FLOT1) ('DDRO' FLOT2)) ;
  10 :                       | 'TOUS';
  11 :                           
  12 : 
  13 :     2)   OBJET2 = 'IPOL'  TABLE T  ;
  14 : 
  15 : 
  16 :     3)   OBJET2 = 'IPOL'  NUA1 OBJET3 | ('GAUSS')     | ;
  17 :                                       |  'RATIO'      |
  18 :                                       |  'PID'   (P1) |
  19 :                                       |  'GRILL'      |
  20 : 
  21 :     Objet :
  22 :     _______
  23 : 
  24 :     L'operateur IPOL comporte 3 syntaxes permettant :
  25 :     
  26 : 
  27 :     1)  De creer l'OBJET2 y, obtenu par interpolation d'une fonction f
  28 :         en l'OBJET1 de valeur t : y=f(t)
  29 :         
  30 :         OBJET2 a le meme type et les memes caracteristiques que OBJET1.
  31 :         Les types possibles pour OBJET1 sont : - FLOTTANT
  32 :                                                - LISTREEL
  33 :                                                - CHPOINT
  34 :                                                - MCHAML
  35 :                                               
  36 :         La fonction est definie par :
  37 :           LREEL1  : LISTREEL des abscisses {t_i} 
  38 :           LREEL2  : LISTREEL des ordonnees correspondantes {f_i}
  39 :         ou par
  40 :           EVOL1   : EVOLUTION scalaire elementaire
  41 :         
  42 :         Par defaut, l'interpolation lineaire est utilisee et les 
  43 :         abscisses doivent imperativement etre rangees par ordre 
  44 :         croissant ou decroissant.
  45 :         
  46 :       + Si on specifie le mot-cle 'SPLI', une interpolation par spline
  47 :         cubique est utilisee. Dans ce cas, on peut prescrire la valeur 
  48 :         de la derivee premiere de la spline sur les bords gauche et 
  49 :         droit de son intervalle de definition avec les mots-cles 'DGAU' 
  50 :         et 'DDRO'. Si la derivee première n'est pas specifiee, on 
  51 :         utilise la condition naturelle : derivee seconde nulle.  
  52 :         Remarque : l'interpolation par spline cubique n'est pas locale,
  53 :         elle depend de l'ensemble des valeurs de la fonction donnee.
  54 :         
  55 :       + En presence du mot cle 'TOUS', la fonction f peut etre multi-
  56 :         valuee (multivoque). La suite des abscisses n'est donc pas 
  57 :         monotone, OBJET1 est necessairement un FLOTTANT et OBJET2 est un
  58 :         LISTREEL contenant l'ensemble des y tel que y=f(t)
  59 :         
  60 :         
  61 :     2)  De calculer par interpolation un CHPOINT ou un MCHAML a
  62 :         partir d'une table de soustype 'RESULTAT' et d'un temps T.
  63 :         Le type de l'objet cree depend du contenu de la table.
  64 : 
  65 :         
  66 :     3)  D'interpoler une fonction de plusieurs variables definie par
  67 :         un NUAGE :
  68 :         
  69 :       + Pour les mots cles 'GAUSS', 'RATIO' et 'PID', il s'agit d'une
  70 :         fonction de n variables a p valeurs scalaires a partir d'un
  71 :         nuage de n+p uplets de scalaires (x,f(x)).
  72 :         x est de dimension n, f(x) est de dimension p.
  73 :         L'OBJET3 est soit un CHPOINT soit un MCHAML dont les noms
  74 :         des composantes correspondent aux noms de n composantes du
  75 :         nuage. Les composantes du champ et du nuage sont
  76 :         necessairement scalaires. OBJET2 est du type de OBJET3.
  77 :         ex: nuage de composantes            'X' 'Y' 'Z' 'T' 'F'
  78 :             champ argument de composantes   'X' 'Z'
  79 :             champ resultat de composantes   'Y' 'T' 'F'
  80 :             
  81 :         Deux methodes d'interpolations sont utilisees selon l'option :
  82 :         
  83 :         -- Avec les mots cles 'GAUSS' et 'RATIO',
  84 :            la methode utilisee pour l'interpolation est celle des
  85 :            elements finis diffus au premier ordre. Au point dont on
  86 :            veut connnaitre l'image par la fonction, on calcule un
  87 :            hyperplan qui minimise la somme ponderee des carres des
  88 :            differences des valeurs sur tous les points du nuage.
  89 :            La ponderation est obtenue par l'image de la distance entre
  90 :            le point et le noeud par la fonction de ponderation
  91 :            gaussienne (exp(-x**2)) ou rationelle (1/(1+x)).
  92 :            
  93 :         -- Avec le mot cle 'PID',
  94 :            il s'agit d'une interpolation par ponderation inverse aux
  95 :            distances. La ponderation de chaque point du nuage est
  96 :            proportionnelle a (1/x**P1) ou x est la distance euclidienne
  97 :            au point cible (sur les composantes connue du champ argument).
  98 :            P1  : FLOTTANT/ENTIER parametre de puissance pour la
  99 :                  fonction de ponderation, positif ou nul, egal a 1 par
 100 :                  defaut
 101 :            L'interpolation est exacte, c'est a dire qu'elle retourne
 102 :            la valeur du nuage si le point cible est un point du nuage.
 103 :            Pour plus d'informations consultez :
 104 :              Shepard, Donald (1968). "A two-dimensional interpolation
 105 :              function for irregularly-spaced data". Proceedings of the
 106 :              1968 ACM National Conference: 517-524.
 107 :              https://en.wikipedia.org/wiki/Inverse_distance_weighting
 108 : 
 109 :       + Pour le mot cle 'GRILL', le nuage represente une fonction de n
 110 :         variables definie sur une grille de points.
 111 :         L'interpolation est multi-lineaire par morceaux et passe par
 112 :         les points de la grille.
 113 :         Le nuage NUA1 doit alors contenir 1 seul (n+1) uplet ou
 114 :         chaque composante abrite un seul objet LISTREEL. 
 115 :         L'OBJET3 est soit un CHPOINT soit un MCHAML dont les noms des
 116 :         composantes correspondent aux nom des n premieres composantes
 117 :         du nuage.          
 118 :         Le nuage doit etre definit ainsi :
 119 :         - Pour une grille de dimension n, le nuage doit posseder un 
 120 :           seul n+1 uplet
 121 :         - Les n premieres composantes du nuage contiennent les listes,
 122 :           a valeurs croissantes, des coordonnes des noeuds de la grille
 123 :           dans chaque dimension. Ces listes peuvent etre de tailles
 124 :           differentes. Par exemple, une grille de dimension 3 peut 
 125 :           contenir 4 points en X, 3 points en Y et 2 points en Z.
 126 :         - La derniere composante du nuage contient la liste des valeurs 
 127 :           de la fonction sur tous les points de la grille, rangees 
 128 :           dans l'ordre suivant :
 129 :           -- on note F_ijk... la valeur de la fonction pour le point de
 130 :               la grille situe a la i-eme position sur la dimension X,
 131 :                                   j-eme position sur la dimension Y,
 132 :                                   k-eme position sur la dimension Z,
 133 :                                   etc...
 134 :           -- le premier terme est F_111
 135 :           -- la suite est rangee dans l'ordre des i croissants, puis j
 136 :               croissants, puis k croissants, etc ...
 137 :           -- dans le cas de l'exemple precedent, cette liste contient 
 138 :              les 4*3*2=24 valeurs rangees ainsi :
 139 :                 PROG  F_111  F_211  F_311  F_411
 140 :                       F_121  F_221  F_321  F_421
 141 :                       F_131  F_231  F_331  F_431
 142 :                       F_112  F_212  F_312  F_412
 143 :                       F_122  F_222  F_322  F_422
 144 :                       F_132  F_232  F_332  F_432 ;
 145 :         Les variables associees a chaque dimension peuvent correspondre
 146 :         a n'importe quelle grandeur physique scalaire. Un exemple de 
 147 :         mise en donnees est presente ci-apres.
 148 : 
 149 : 
 150 :     Exemples :
 151 :     _________
 152 : 
 153 :     Syntaxe 2 :
 154 :     
 155 : *   La table de sous-type RESULTAT doit etre initialisee par :
 156 :     matab = 'TABLE' RESULTAT ;
 157 :  
 158 : *   Puis on doit avoir une suite ordonnee d'indices de type FLOTTANT et
 159 : *   les valeurs pointees doivent etre de meme type (CHPOINT ou MCHAML)
 160 : *   Par exmple :
 161 :     matab. 1.5 = chpo1 ;
 162 :     matab. 3.  = chpo2 ;
 163 :  
 164 : *   Et ainsi vous pouvez faire :
 165 :     chpo3  = 'IPOL' matab 2. ;
 166 :  
 167 : *   chpo3 est donc ici egal a l'operation :
 168 :     chpo3  = (CHPO1 * (2./3.)) + (CHPO2 * (1./3.))
 169 : 
 170 : 
 171 :     
 172 :     Syntaxe 3, option 'GRILL' :
 173 :     
 174 :     On veut definir la fonction de 2 variables sur la grille suivante
 175 : 
 176 :        Y
 177 :        ^
 178 :        |      7.6   8.1        -4.1  28.3      0.            84.
 179 :    11  -     O-----O----------O-----O---------O-------------O
 180 :        |     |     |          |     |         |             |
 181 :        |     |     |          |     |         |             |
 182 :        |     |     |          |     |         |             |
 183 :        |     |1.2  |4.3       |7.   |25.      |-1.          |-78.1
 184 :     6  -     O-----O----------O-----O---------O-------------O
 185 :        |     |     |          |     |         |             |
 186 :        |     |4.   |8.        |15.  |16.      |23.          |42.
 187 :     3  -     O-----O----------O-----O---------O-------------O
 188 :        |
 189 :        |
 190 :     0  ------|-----|----------|-----|---------|-------------|-----> X
 191 :        0     1     2          4     5         7             10
 192 : 
 193 :     Le nuage peut etre ecrit ainsi :
 194 :     NUA1 = NUAG 'COMP' 'X'    (PROG 1. 2. 4. 5. 7. 10.)
 195 :                 'COMP' 'Y'    (PROG 3. 6. 11.)
 196 :                 'COMP' 'TOTO' (PROG 4.  8.  15.  16.  23.  42.
 197 :                                     1.2 4.3  7.  25.  -1. -78.1
 198 :                                     7.6 8.1 -4.1 28.3  0.  84.) ;
 199 : 
 200 : 
 201 : 

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