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

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