Télécharger ipol_muli_1.dgibi

Retour à la liste

Numérotation des lignes :

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

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