Télécharger optimise3.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier optimise3.dgibi
  2. * section : mathematique, optimisation
  3. *----------------------------------------------------------------------*
  4. * O P T I M I S E 3 . D G I B I *
  5. *----------------------------------------------------------------------*
  6. * Objet :
  7. * -------
  8. *
  9. * Exemple d'utilisation de la procedure OPTIMISE avec l'identification
  10. * des parametres d'une fraction rationnelle.
  11. *
  12. * La "simulation" est dans ce cas cette fonction, realisee par la
  13. * procedure Gibiane "fonction", definie en debut de fichier.
  14. *
  15. * Puis, on definit une solution de reference a partir d'un jeu de
  16. * parametres donne.
  17. *
  18. * La procedure OPTIMISE est ensuite lancee avec un autre jeu de
  19. * parametres. L'objectif est de determiner des parametres qui donnent
  20. * une solution egale a la solution de reference a la precision pres.
  21. * Les methodes mises en oeuvre ne garantissent pas que les 2 jeux de
  22. * coefficients (reference et donnes par OPTIMISE) sont identiques.
  23. *
  24. * L'identification est menee avec la methode de Levenberg-Marquardt.
  25. * on remarquera que certaines valeurs des parametres identifies sont
  26. * relativement eloignees de celles de reference.
  27. *
  28. * Description :
  29. * -------------
  30. *
  31. * Type de calcul : identification des parametres d'une fonction.
  32. * Mode de calcul : sans objet
  33. * Type d'element : sans objet
  34. * Chargement : sans objet
  35. *
  36. *----------------------------------------------------------------------*
  37. *
  38. * Pour dessins, mettre ig1 a VRAI :
  39. ig1 = faux ;
  40.  
  41. *----------------- Definition d'une fonction polynome -----------------*
  42.  
  43. * Procedure Gibiane de simulation :
  44. debp fonction lree0*listreel lree1*listreel ;
  45. * F(x) = (ax+b) / (cx^2+d)
  46. a1 = lree1 extr 1 ;
  47. b1 = lree1 extr 2 ;
  48. c1 = lree1 extr 3 ;
  49. d1 = lree1 extr 4 ;
  50. lx1 = lree0 ;
  51. lx2 = lx1 * lx1 ;
  52. lree2 = (a1 * lx1 + b1) / (c1 * lx2 + d1) ;
  53. finp lree2 ;
  54.  
  55. *------------------------ Solution de reference -----------------------*
  56.  
  57. lpref1 = prog 2. -2. 2. 1. ;
  58. lxref1 = prog -4. pas 0.5 6. ;
  59. lsref1 = fonction lxref1 lpref1 ;
  60.  
  61. * Affiche :
  62. si ig1 ;
  63. evref1 = evol vert manu 'x' lxref1 'f(x)' lsref1 ;
  64. dess evref1 titr 'Solution de refence' ;
  65. fins ;
  66.  
  67. *-------------------------- Appel a OPTIMISE --------------------------*
  68.  
  69. * Table d'entrees de la procedure OPTIMISE :
  70. tab1 = table ;
  71. tab1 . simulation = mot fonction ;
  72. tab1 . parametres_initiaux = prog 4 * 1. ;
  73. tab1 . points_de_mesure = lxref1 ;
  74. tab1 . valeurs_objectif = lsref1 ;
  75. tab1 . bornes_inf = prog 6 * -10. ;
  76. tab1 . bornes_sup = prog 6 * +10. ;
  77. tab1 . precision = 1.e-5 ;
  78. tab1 . dessin_evol = ig1 ;
  79. tab1 . niter_max = 20 ;
  80.  
  81. * Appel a OPTIMISE :
  82. tab2 = optimise tab1 ;
  83.  
  84. * Affichage comparaison solution apres optimisation / reference :
  85. si ig1 ;
  86. evopt1 = evol oran manu styl noli marq rond 'x' lxref1 'f(x)' tab1 . valeurs_solution ;
  87. dess (evref1 et evopt1) titr 'Solution determinee par optimisation (orange) et reference' ;
  88. fins ;
  89.  
  90. *----------------------- Validation optimisation ----------------------*
  91.  
  92. * Critere : racine carre de la somme des ecarts au carre,
  93. * divisee par norme euclidienne du vecteur solution
  94. err1 = (somm (((tab2 . valeurs_solution) - lsref1) ** 2)) ** 0.5 ;
  95. err1 = err1 / ((somm (lsref1 ** 2)) ** 0.5) ;
  96.  
  97. * Test de validation :
  98. si (err1 '>' (tab1 . precision)) ;
  99. erre 5 ;
  100. fins ;
  101.  
  102. *---------------- F I N O P T I M I S E 3 . D G I B I ---------------*
  103. fin ;
  104.  
  105.  
  106.  
  107.  

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