Télécharger ajuste1.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : ajuste1.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4.  
  5.  
  6. graph = faux;
  7. option echo 0;
  8. * fichier : ajuste.;dgibi
  9. * exemple d'utilisation de la procedure AJUSTE
  10. * on cherche a identifier les parametres a,b,c,d de la fonctions
  11. * y = a * (log ( (b*x) + c) ) + (exp (d*x))
  12. *
  13. * on part d'un jeu de couple yi = f(xi)
  14. * qui sont calcules pour a = 3 b=2 c=1 d=0.1
  15. *les valeurs de xi sont :
  16. * 0.2 pas 0.1 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
  17. *
  18.  
  19. debproc FCT xtab*'TABLE' p*LISTREEL ;
  20. x = xtab . 1;
  21. n=dime x;
  22. tbfonc = 'TABLE';
  23. tbfonc.'F' = 'TABLE';
  24. b = extr p 1;
  25. c = extr p 2;
  26. d = extr p 3;
  27. progc = prog n * c;
  28. tbfonc.'F' . 1 = log ( (b*x) + progc);
  29. tbfonc.'G' = exp (d*x);
  30. finproc tbfonc;
  31.  
  32. debproc DERI xtab*'TABLE' p*LISTREEL;
  33. x = xtab . 1;
  34. n = dime x;
  35. tbderi = 'TABLE';
  36. tbderi.'F' = table;
  37. tbderi.'G' = table;
  38. tbderi.'F' . 1 = 'TABLE';
  39. tbderi.'F' . 2 = 'TABLE';
  40. tbderi.'F' . 3 = 'TABLE';
  41. b = extr p 1;
  42. c = extr p 2;
  43. d = extr p 3;
  44. progc = prog n * c;
  45. tbderi . 'F' . 1 . 1 = x / ((b*x)+progc);
  46. tbderi . 'F' . 2 . 1 = (prog n*1.) / ( (b*x) + progc);
  47. tbderi . 'F' . 3 . 1 = prog n*0.;
  48. tbderi . 'G' . 1 = prog n*0;
  49. tbderi . 'G' . 2 = prog n*0;
  50. tbderi . 'G' . 3 = x * (exp (d*x) );
  51. finproc tbderi;
  52.  
  53. debproc fonc x*LISTREEL;
  54. n = dime x;
  55. y = 3 * (log ( (2.*x) + (prog n*1.)) ) + (exp (0.1*x));
  56. finproc y;
  57.  
  58. tab1 = table;
  59. x = prog 0.2 pas 0.1 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ;
  60. y = fonc x;
  61. xtab=table;
  62. xtab . 1=x;
  63. tab1.'X'=xtab;
  64. tab1.'F'=y;
  65. tab1.'K'=3;
  66. tab1.'L'=1;
  67. pmin=prog 3*0.001;
  68. pmax=prog 3*10.;
  69. prc=prog 3*0.0001;
  70. tab1.'MXTER'=150;
  71. tab1.'PMIN'=pmin;
  72. tab1.'PMAX'=pmax;
  73. tab1.'PRECISION'=prc;
  74. q p=ajuste tab1 ;
  75. n=dime x;
  76. b = extr p 1;
  77. c = extr p 2;
  78. d = extr p 3;
  79. a = extr q 1;
  80. mess ' a = ' a ' pour 3. attendu';
  81. mess ' b = ' b ' pour 2. attendu';
  82. mess ' c = ' c ' pour 1. attendu';
  83. mess ' d = ' d ' pour 0.1 attendu';
  84.  
  85. y1 = a * (log ( (b*x) + (prog n*c)) ) + (exp (d*x));
  86. ev = evol roug manu 'X' x 'Y' y ;
  87.  
  88. era = abs (( 3. - a ) / 3.);
  89. erb = abs (( 2. - b ) / 2.);
  90. erc = abs (( 1. - c ) / 1.);
  91. erd = abs (( 0.1 - d ) / 0.1);
  92. erma = maxi ( prog era erb erc erd);
  93. si (erma > 0.03) ;
  94. message ' erreur maxi ' erma ' valeur test 0.03';
  95. erreur 5;
  96. sinon;
  97. 'ERREUR' 0 ;
  98. finsi;
  99.  
  100. ev1 = evol bleu manu 'X' x 'Y1' y1;
  101. si graph;
  102. dess(ev et ev1);
  103. finsi;
  104.  
  105. fin;
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  

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