* fichier : ajuste2.dgibi ************************************************************************ ************************************************************************ GRAPH=faux ; * EXEMPLE : * * On cherche a interpoler un nuage de points avec la fonction * suivante: * the given sets of points ( x , f(x)) must be adjusted with * a function as follows : * * f(x) =( A * (x**B ))+ (C * sin(D*x + B)) + (E * x) * * les deux parametres p1 et p2 non linéaires sont B et D. * The two non linear parameters p1 and p2 are B and D. * * les autres A,C,E sont linéaires. On peut donc mettre la * fonction sous la forme : * A,C,E are linear parameters. It is possible to write the function * in the following way : * * f(x)= A*f1(x) +C*f2(x)+E*f3(x) * * PROCEDURE : FCT * DEBPROC FCT xtab*'TABLE' p*'LISTREEL' ; tab1 = 'TABLE'; tab1 . 'F' = 'TABLE'; x = xtab . 1; * fonction f1 * fonction f2 tab1 . 'F' . 2 = 'SIN' aa ; * fonction f3 tab1 . 'F' . 3 = x; * useless to give fonction g * tab1 . 'G' = 'PROG' N*0; FINPROC tab1; * PROCEDURE : DERI * DEBPROC DERI xtab*'TABLE' p*'LISTREEL'; tab = 'TABLE' ; tab . 'F' = 'TABLE' ; tab . 'F' . 1 = 'TABLE' ; tab . 'F' . 2 = 'TABLE' ; x = xtab . 1; * fonction df1/dp1 * fonction df2/dp1 tab . 'F' . 1 . 2 = 'COS' aa ; * fonction df3/dp1 * fonction df1/dp2 * fonction df2/dp2 tab . 'F' . 2 . 2 = x * ('COS' aa); * fonction df3/dp2 * useless to give dg/dpj * tab . 'G' = 'TABLE' ; * tab . 'G' . 1 = 'PROG' N*0; * tab . 'G' . 2 = 'PROG' N*0; FINPROC tab; * Programme principal * * définition de la fonction pour le calcul des couples x,F(x) * posons A = 1 ; B=0.5 ; C=1; D=1; E=3.14159...(pi) af1 = x ** 0.5; cf2 = 'SIN' aa; ef3 = pi * x; y = af1 + cf2 + ef3; k=2; l=3; xtab = 'TABLE'; xtab . 1 = x; tab1=table; tab1.'X' = xtab; tab1.'F' = y; tab1.'K' = k; tab1.'L' = l; * recalcul de F(x) pour comparaison avec courbe initiale * computation of f(x) for comparison with initial curve f1 = A * (x **B); f2 = C * ('SIN' aa); f3 = E * x; y1 = f1 + f2 + f3; * Tracé evt = ev 'ET' ev1; 'SI' (GRAPH) ; 'DESSIN' evt; 'FINSI' ; * Test d'efficacité 'SI' (err > 1.d-5) ; 'ERREUR' 5 ; 'SINON' ; 'ERREUR' 0 ; 'FINSI' ; 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales