Télécharger simpl1.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : simpl1.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. graph='N';
  5. saut page;
  6. ********************************************************************
  7. *
  8. * Example de maximisation de "Numerical recipes" p 313
  9. *
  10. * maximiser z=x1+x2+3x3-0.5x4
  11. *
  12. * avec x1+2x3 inferieur ou egal a 740
  13. * 2x2-7x4 inferieur ou egal a 0
  14. * x2-x3+2x4 superieur ou egal a 0.5
  15. * x1+x2+x3+x4 egal 9
  16. *
  17. *
  18. * resultat: x1=0, x2=3.325, x3=4.725, x4=0.95
  19. *
  20. ********************************************************************
  21. mess ' test de l"operateur SIMPLE';
  22. *
  23. * 1) creation des tables
  24. *
  25. tab1=table vecteur;
  26. tab2=table ;
  27. tab3=table ;
  28. *
  29. * 2) remplissage de la table decrivant la fonction
  30. *
  31. tab1.1=1.;
  32. tab1.2=1.;
  33. tab1.3=3.;
  34. tab1.4=-.5;
  35. *
  36. * 3) remplissage de la table decrivant les inegalite
  37. *
  38. ttab=table vecteur; tab2.1=ttab;
  39. ttab.0=740.;
  40. ttab.1=1.;
  41. ttab.3=2.;
  42. *
  43. ttab=table vecteur; tab2.2=ttab;
  44. ttab.0=-.5;
  45. ttab.2=-1.;
  46. ttab.3=1.;
  47. ttab.4=-2.;
  48. *
  49. ttab=table vecteur; tab2.3=ttab;
  50. ttab.2=2.;
  51. ttab.4=-7.;
  52. *
  53. * 4) remplissage de la table decrivant l'egalite
  54. *
  55. ttab=table vecteur; tab3.1=ttab;
  56. ttab.0=9.;
  57. ttab.1=1.;
  58. ttab.2=1.;
  59. ttab.3=1.;
  60. ttab.4=1.;
  61. *
  62. * 5) appel au SIMPLEX
  63. *
  64. ent1 tab4 tab5=simple tab1 tab2 tab3;
  65. *
  66. * 6) sortie des resultats et test d'erreur
  67. *
  68. tresu=table;
  69. tresu.1=0.; tresu.2=3.325; tresu.3=4.725; tresu.4=0.95;
  70. lerr=faux;
  71. mess ' indice valeur calculee valeur exacte';
  72. j=0; repeter loopvari 4; j=j+1;
  73. si (non (existe tab4 j)); xj=0.;
  74. sinon; xj=tab4.j; finsi;
  75. mess j xj tresu.j;
  76. *
  77. si (abs (xj - tresu.j) > 1.d-5); lerr=vrai ; finsi;
  78. fin loopvari;
  79. *
  80. * 7) code fonctionnement
  81. *
  82. si lerr; erre 5;
  83. sinon; erre 0; finsi;
  84. fin;
  85.  
  86.  
  87.  
  88.  

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