Télécharger ipol_muli_1.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : ipol_muli_1.dgibi
  2. OPTI 'DIME' 3 'ELEM' 'CUB8' 'ECHO' 0 ;
  3. ************************************************************************
  4. ************************************************************************
  5.  
  6. ************************************************************************
  7. * Test de l'operateur IPOL option GRILL *
  8. * interpolation multi-lineaire d'une fonction de n parametres *
  9. * definie sur une grile de points *
  10. * *
  11. * - test avec fonction de 1, 2, 3 et 4 variables *
  12. * - test de points ordinaires et singuliers (sur et hors de la grille) *
  13. * - test avec des CHPOINTs *
  14. ************************************************************************
  15.  
  16.  
  17. MESS ; MESS ; MESS ;
  18.  
  19.  
  20. ** TEST en dimension 1 (interpolation lineaire)
  21. ** --------------------------------------------
  22.  
  23. ** Grille de valeurs de la fonction
  24. lyref = PROG -1.2 0. 0.2 0.6 1. 1.5 2.8 ;
  25. lfref = PROG 0. 1. 2. 3. 1. -1. 1.5 ;
  26. ** Tolerance pour les tests sur les valeurs interpolees
  27. fmax = 'MAXI' lfref 'ABS' ;
  28. tol1 = ('VALE' 'PREC') '*' 4. '*' fmax ;
  29. 'MESS' 'tol1 =' tol1 ;
  30. ** Interpolation (sur un CHPOINT puis un MCHAML)
  31. MESS 'Interpolation lineaire' ;
  32. p1 = 0. -2. 0. ;
  33. p2 = 0. 3.5 0. ;
  34. mail1 = DROI 200 p1 p2 ;
  35. chy = COOR 2 mail1 ;
  36. chp1 = NOMC 'TOTO' chy ;
  37. nu1 = NUAG 'COMP' 'TOTO' lyref
  38. 'COMP' 'FONC' lfref ;
  39. chp2 = IPOL chp1 nu1 'GRILL' ;
  40. mo = MODE mail1 'MECANIQUE' ;
  41. che1 = CHAN 'CHAM' mo chp1 ;
  42. che2 = IPOL che1 nu1 'GRILL' ;
  43.  
  44. ** Test des valeurs interpolees sur le CHPOINT
  45. MESS ' Point | Valeur | Valeur | Erreur' ;
  46. MESS ' | theorique | interpolee | ' ;
  47. MESS '--------|----------------|----------------|-------' ;
  48. mailp1 = CHAN 'POI1' mail1 ;
  49. REPE b1 (NBEL mailp1) ;
  50. pt1 = mailp1 POIN &b1 ;
  51. fc = EXTR chp2 'FONC' pt1 ;
  52. y1 = EXTR chp1 'TOTO' pt1 ;
  53. ft = IPOL y1 lyref lfref ;
  54. err1 = ABS (fc - ft) ;
  55. MESS &b1 '|' ft '|' fc '|' err1 ;
  56. SI (err1 > tol1) ;
  57. MESS ; MESS ;
  58. MESS 'ECHEC DU CAS TEST !' ;
  59. ERREUR 4 ;
  60. FINSI ;
  61. FIN b1 ;
  62.  
  63. ** Test des valeurs interpolees sur le MCHAML
  64. MESS ' Element| Point | Valeur | Valeur | Erreur' ;
  65. MESS ' | support| theorique | interpolee | ' ;
  66. MESS '--------|--------|----------------|----------------|-------' ;
  67. REPE b1 (NBEL mail1) ;
  68. REPE b2 2 ;
  69. fc = EXTR che2 'FONC' 1 &b1 &b2 ;
  70. y1 = EXTR che1 'TOTO' 1 &b1 &b2 ;
  71. ft = IPOL y1 lyref lfref ;
  72. err1 = ABS (fc - ft) ;
  73. MESS &b1 '|' &b2 '|' ft '|' fc '|' err1 ;
  74. SI (err1 > tol1) ;
  75. MESS ; MESS ;
  76. MESS 'ECHEC DU CAS TEST !' ;
  77. ERREUR 4 ;
  78. FINSI ;
  79. FIN b2 ;
  80. FIN b1 ;
  81.  
  82. MESS ; MESS ; MESS ;
  83.  
  84.  
  85.  
  86.  
  87. ** TEST en dimension 2 (interpolation bi-lineaire)
  88. ** -----------------------------------------------
  89.  
  90. ** Grille de valeurs de la fonction
  91. lxref = PROG -5. -1. 2. 6. ;
  92. lyref = PROG -3. 1.5 4. ;
  93. lfref = PROG 0. 3. 6. 9. 1. 4. 7. 10. 2. 5. 8. 11. ;
  94.  
  95. ** Interpolation (sur un CHPOINT)
  96. MESS 'Interpolation bi-lineaire' ;
  97. p1 = -4. 1. 0. ;
  98. p2 = 1. 3. 0. ;
  99. p3 = 4.5 -2.5 0. ;
  100. p4 = -90. 0. 0. ;
  101. p5 = -90. -1000. 0. ;
  102. p6 = 0. 4. 0. ;
  103. p7 = 2. 1.5 0. ;
  104. p8 = 6. 4. 0. ;
  105. p9 = -5. -3. 0. ;
  106. mail1 = p1 ET p2 ET p3 ET p4 ET p5 ET p6 ET p7 ET p8 ET p9 ;
  107. chx chy chz = COOR mail1 ;
  108. chp1 = (NOMC 'CAVA' chy) ET (NOMC 'SALU' chx) ;
  109. nu1 = NUAG 'COMP' 'SALU' lxref
  110. 'COMP' 'CAVA' lyref
  111. 'COMP' 'BIEN' lfref ;
  112. chp2 = IPOL chp1 nu1 'GRILL' ;
  113.  
  114. ** Test des valeurs interpolees sur le CHPOINT
  115. tp = TABL ;
  116. tf = TABL ;
  117. tp . 1 = p1 ;
  118. tf . 1 = ((0.*1.5) + (1.*12.) + (3.*0.5) + (4.*4.)) / 18. ;
  119. tp . 2 = p2 ;
  120. tf . 2 = ((4.*1.) + (5.*1.5) + (7.*2.) + (8.*3.)) / 7.5 ;
  121. tp . 3 = p3 ;
  122. tf . 3 = ((6.*6.) + (7.*0.75) + (9.*10.) + (10.*1.25)) / 18. ;
  123. tp . 4 = p4 ;
  124. tf . 4 = ((0.*1.5) + (1.*3.)) / 4.5 ;
  125. tp . 5 = p5 ;
  126. tf . 5 = 0. ;
  127. tp . 6 = p6 ;
  128. tf . 6 = ((5.*2.) + (8.*1.)) / 3. ;
  129. tp . 7 = p7 ;
  130. tf . 7 = 7. ;
  131. tp . 8 = p8 ;
  132. tf . 8 = 11. ;
  133. tp . 9 = p9 ;
  134. tf . 9 = 0. ;
  135. MESS ' Point | Valeur | Valeur | Erreur' ;
  136. MESS ' | theorique | interpolee | ' ;
  137. MESS '--------|----------------|----------------|-------' ;
  138. REPE b1 (DIME tp) ;
  139. ft = tf . &b1 ;
  140. pt = mail1 POIN 'PROC' (tp . &b1) ;
  141. fc = EXTR chp2 'BIEN' pt ;
  142. err1 = ABS (fc - ft) ;
  143. MESS &b1 '|' ft '|' fc '|' err1 ;
  144. SI (err1 > tol1) ;
  145. MESS ; MESS ;
  146. MESS 'ECHEC DU CAS TEST !' ;
  147. ERREUR 4 ;
  148. FINSI ;
  149. FIN b1 ;
  150.  
  151. MESS ; MESS ; MESS ;
  152.  
  153.  
  154.  
  155.  
  156. ** TEST en dimension 3 (interpolation tri-lineaire)
  157. ** ------------------------------------------------
  158.  
  159. ** Grille de valeurs de la fonction
  160. lxref = PROG -5. -1. 2. 6. ;
  161. lyref = PROG -3. 1.5 4. ;
  162. lzref = PROG 0. 10. ;
  163. lfref = PROG 0. 3. 6. 9. 1. 4. 7. 10. 2. 5. 8. 11.
  164. -11. 6. -3. 0. -10. 7. -4. 1. -9. 8. -5. 2. ;
  165.  
  166.  
  167. ** Interpolation (sur un CHPOINT)
  168. MESS 'Interpolation tri-lineaire' ;
  169. p1 = -4. 1. 0. ;
  170. p2 = 1. 3. 0. ;
  171. p3 = 4.5 -2.5 0. ;
  172. p4 = -90. 0. 0. ;
  173. p5 = -90. -1000. 0. ;
  174. p6 = 0. 4. 0. ;
  175. p7 = 2. 1.5 0. ;
  176. p8 = 6. 4. 0. ;
  177. p9 = -5. -3. 0. ;
  178. p10 = -6. -4. -2. ;
  179. p11 = 2. 1.5 10. ;
  180. p12 = 0.5 -0.75 10. ;
  181. p13 = 1. 3. 7. ;
  182. mail1 = p1 ET p2 ET p3 ET p4 ET p5 ET p6 ET p7 ET p8 ET p9 ET p10 ET
  183. p11 ET p12 ET p13 ;
  184. chx chy chz = COOR mail1 ;
  185. chp1 = (NOMC 'GROS' chy) ET (NOMC 'CAVA' chz) ET (NOMC 'WESH' chx) ;
  186. nu1 = NUAG 'COMP' 'WESH' lxref
  187. 'COMP' 'GROS' lyref
  188. 'COMP' 'CAVA' lzref
  189. 'COMP' 'COOL' lfref ;
  190. chp2 = IPOL chp1 nu1 'GRILL' ;
  191.  
  192. ** Test des valeurs interpolees sur le CHPOINT
  193. tp = TABL ;
  194. tf = TABL ;
  195. tp . 1 = p1 ;
  196. tf . 1 = ((0.*1.5) + (1.*12.) + (3.*0.5) + (4.*4.)) / 18. ;
  197. tp . 2 = p2 ;
  198. tf . 2 = ((4.*1.) + (5.*1.5) + (7.*2.) + (8.*3.)) / 7.5 ;
  199. tp . 3 = p3 ;
  200. tf . 3 = ((6.*6.) + (7.*0.75) + (9.*10.) + (10.*1.25)) / 18. ;
  201. tp . 4 = p4 ;
  202. tf . 4 = ((0.*1.5) + (1.*3.)) / 4.5 ;
  203. tp . 5 = p5 ;
  204. tf . 5 = 0. ;
  205. tp . 6 = p6 ;
  206. tf . 6 = ((5.*2.) + (8.*1.)) / 3. ;
  207. tp . 7 = p7 ;
  208. tf . 7 = 7. ;
  209. tp . 8 = p8 ;
  210. tf . 8 = 11. ;
  211. tp . 9 = p9 ;
  212. tf . 9 = 0. ;
  213. tp . 10 = p10 ;
  214. tf . 10 = 0. ;
  215. tp . 11 = p11 ;
  216. tf . 11 = -4. ;
  217. tp . 12 = p12 ;
  218. tf . 12 = (6. + 7. - 3. - 4.) / 4. ;
  219. tp . 13 = p13 ;
  220. tf . 13 = ((4. * (1. * 1. * 3.)) + ( 7. * (2. * 1. * 3.)) +
  221. (5. * (1. * 1.5 * 3.)) + ( 8. * (2. * 1.5 * 3.)) +
  222. (7. * (1. * 1. * 7.)) + (-4. * (2. * 1. * 7.)) +
  223. (8. * (1. * 1.5 * 7.)) + (-5. * (2. * 1.5 * 7.)))
  224. / (3. * 2.5 * 10.) ;
  225. MESS ' Point | Valeur | Valeur | Erreur' ;
  226. MESS ' | theorique | interpolee | ' ;
  227. MESS '--------|----------------|----------------|-------' ;
  228. REPE b1 (DIME tp) ;
  229. ft = tf . &b1 ;
  230. pt = mail1 POIN 'PROC' (tp . &b1) ;
  231. fc = EXTR chp2 'COOL' pt ;
  232. err1 = ABS (fc - ft) ;
  233. MESS &b1 '|' ft '|' fc '|' err1 ;
  234. SI (err1 > tol1) ;
  235. MESS ; MESS ;
  236. MESS 'ECHEC DU CAS TEST !' ;
  237. ERREUR 4 ;
  238. FINSI ;
  239. FIN b1 ;
  240.  
  241. MESS ; MESS ; MESS ;
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249. ** TEST en dimension 4 (interpolation quadr-lineaire)
  250. ** --------------------------------------------------
  251.  
  252. ** Grille de valeurs de la fonction
  253. ltref = PROG 0. 100. ;
  254. lzref = PROG 0. 10. ;
  255. lyref = PROG 0. 2.5 ;
  256. lxref = PROG 0. 3. ;
  257. lfref = PROG 10. 90. 50. -200.
  258. -20. -113. -60. 0.
  259. 30. 8.5 70. 3.
  260. -40. 3.14 -80. 28. ;
  261.  
  262. ** Interpolation (sur un CHPOINT)
  263. MESS 'Interpolation quadri-lineaire' ;
  264. p1 = 0. 0. 0. ;
  265. p2 = 1. 0. 0. ;
  266. p3 = 2. 0. 0. ;
  267. mail1 = p1 ET p2 ET p3 ;
  268. chp1 = MANU 'CHPO' mail1 4 'Y' (PROG 1.5 0. 2.)
  269. 'Z' (PROG 7. 0. 2.)
  270. 'X' (PROG 2. 0. 3.)
  271. 'T' (PROG 71.7 8. 42.) ;
  272. nu1 = NUAG 'COMP' 'T' ltref
  273. 'COMP' 'Z' lzref
  274. 'COMP' 'Y' lyref
  275. 'COMP' 'X' lxref
  276. 'COMP' 'SCAL' lfref ;
  277. chp2 = IPOL chp1 nu1 'GRILL' ;
  278.  
  279. ** Test des valeurs interpolees sur le CHPOINT
  280. tp = TABL ;
  281. tf = TABL ;
  282. tp . 1 = p1 ;
  283. tempo1 = (( 10. * (1. * 1. * 3.)) + ( 30. * (2. * 1. * 3.)) +
  284. (-20. * (1. * 1.5 * 3.)) + (-40. * (2. * 1.5 * 3.)) +
  285. ( 50. * (1. * 1. * 7.)) + ( 70. * (2. * 1. * 7.)) +
  286. (-60. * (1. * 1.5 * 7.)) + (-80. * (2. * 1.5 * 7.)))
  287. / (3. * 2.5 * 10.) ;
  288. tempo2 = (( 90. * (1. * 1. * 3.)) + ( 8.5 * (2. * 1. * 3.)) +
  289. (-113. * (1. * 1.5 * 3.)) + (3.14 * (2. * 1.5 * 3.)) +
  290. (-200. * (1. * 1. * 7.)) + ( 3. * (2. * 1. * 7.)) +
  291. ( 0. * (1. * 1.5 * 7.)) + ( 28. * (2. * 1.5 * 7.)))
  292. / (3. * 2.5 * 10.) ;
  293. tf . 1 = ((28.3 * tempo1) + (71.7 * tempo2)) / 100. ;
  294. tp . 2 = p2 ;
  295. tf . 2 = ((10. * 92.) + (90. * 8.)) / 100. ;
  296. tp . 3 = p3 ;
  297. tempo1 = ((30. * (0.5 * 8.)) + (-40. * (2. * 8.)) +
  298. (70. * (0.5 * 2.)) + (-80. * (2. * 2.))) / (2.5 * 10.) ;
  299. tempo2 = ((8.5 * (0.5 * 8.)) + (3.14 * (2. * 8.)) +
  300. (3. * (0.5 * 2.)) + (28. * (2. * 2.))) / (2.5 * 10.) ;
  301. tf . 3 = ((58. * tempo1) + (42. * tempo2)) / 100. ;
  302. MESS ' Point | Valeur | Valeur | Erreur' ;
  303. MESS ' | theorique | interpolee | ' ;
  304. MESS '--------|----------------|----------------|-------' ;
  305. REPE b1 (DIME tp) ;
  306. ft = tf . &b1 ;
  307. pt = mail1 POIN 'PROC' (tp . &b1) ;
  308. fc = EXTR chp2 'SCAL' pt ;
  309. err1 = ABS (fc - ft) ;
  310. MESS &b1 '|' ft '|' fc '|' err1 ;
  311. SI (err1 > tol1) ;
  312. MESS ; MESS ;
  313. MESS 'ECHEC DU CAS TEST !' ;
  314. ERREUR 4 ;
  315. FINSI ;
  316. FIN b1 ;
  317.  
  318. MESS ; MESS ; MESS ;
  319.  
  320.  
  321.  
  322.  
  323. MESS 'SUCCES DU CAS TEST !' ;
  324.  
  325.  
  326. FIN ;
  327.  
  328.  
  329.  

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