* fichier optimise2.dgibi * section : mathematique, optimisation *----------------------------------------------------------------------* * O P T I M I S E 2 . D G I B I * *----------------------------------------------------------------------* * Objet : * ------- * * Exemple d'utilisation de la procedure OPTIMISE avec l'identification * des parametres d'une fonction, produit d'un polynome d'ordre 3 avec * une exponentielle decroissante. * * La "simulation" est dans ce cas cette fonction, realisee par la * procedure Gibiane "fonction", definie en debut de fichier. * * Puis, on definit une solution de reference a partir d'un jeu de * parametres donne. * * La procedure OPTIMISE est ensuite lancee avec un autre jeu de * parametres. L'objectif est de determiner des parametres qui donnent * une solution egale a la solution de reference a la precision pres. * Les methodes mises en oeuvre ne garantissent pas que les 2 jeux de * coefficients (reference et donnes par OPTIMISE) sont identiques. * * L'identification est menee avec la methode de Levenberg-Marquardt. * Pour assurer sa convergence, il est necessaire que la valeur du para- * -metre ponderant la decroissante de la fonction exponentielle ne soit * pas trop eloignee de sa valeur de reference. * * Par ailleurs, on remarquera que certaines valeurs des parametres * identifies sont relativement eloignees de celles de reference. * * Description : * ------------- * * Type de calcul : identification des parametres d'une fonction. * Mode de calcul : sans objet * Type d'element : sans objet * Chargement : sans objet * *----------------------------------------------------------------------* * * Pour dessins, mettre ig1 a VRAI : ig1 = faux ; *----------------- Definition d'une fonction polynome -----------------* * Procedure Gibiane de simulation : debp fonction lree0*listreel lree1*listreel ; lx1 = lree0 ; lx2 = lx1 * lx1 ; lx3 = lx2 * lx1 ; lree2 = (a0 * lx0) + (a1 * lx1) + (a2 * lx2) + (a3 * lx3) ; lexp1 = K1 * (exp (lx1 / tau1)) ; lree2 = lree2 * lexp1 ; finp lree2 ; *------------------------ Solution de reference -----------------------* lsref1 = fonction lxref1 lpref1 ; * Affiche : si ig1 ; fins ; *-------------------------- Appel a OPTIMISE --------------------------* * Table d'entrees de la procedure OPTIMISE : tab1 = table ; tab1 . points_de_mesure = lxref1 ; tab1 . valeurs_objectif = lsref1 ; tab1 . precision = 1.e-5 ; tab1 . dessin_evol = ig1 ; tab1 . niter_max = 20 ; * Appel a OPTIMISE : tab2 = optimise tab1 ; * Affichage comparaison solution apres optimisation / reference : si ig1 ; fins ; *----------------------- Validation optimisation ----------------------* * Critere : racine carre de la somme des ecarts au carre, * divisee par norme euclidienne du vecteur solution * Test de validation : si (err1 '>' (tab1 . precision)) ; fins ; *---------------- F I N O P T I M I S E 2 . D G I B I ---------------* fin ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales