Télécharger ipol.notice

Retour à la liste thématique

Afficher cette notice en

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

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