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