tstdesir 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. # execution de desir en batch sous unix
  2. $rexec/reduce >& desir.log << EOF # appel de reduce
  3. write "load desir; %chargement de DESIR";
  4. load desir; %chargement de DESIR
  5. write "Premier exemple : utilisation interactive sur une equation simple";
  6. write "desir(); %appel de DESIR";
  7. desir();
  8. 3; %ordre de l'equation
  9. 1;x;x;x**6; %coefficients
  10. non; %correction ?
  11. non; %transformation ?
  12. 4; %nombre de termes a calculer
  13. non; %transformation ?
  14. write "solvalide(first ws,1,4);";
  15. solvalide(first ws,1,4);
  16. write "Le meme exemple en utilisation directe";
  17. write "lcoeff:={1,x,x,x**6};";
  18. lcoeff:={1,x,x,x**6};
  19. write "param:={};";
  20. param:={};
  21. write "on trdesir; %obtention facultative d'une trace";
  22. on trdesir;
  23. showtime;
  24. write "sol:=delire(x,4,1,lcoeff,param);";
  25. sol:=delire(x,4,1,lcoeff,param);
  26. write "showtime; %temps d'execution de 'delire'";
  27. showtime;
  28. on div;j:=0\$
  29. for each elt in sol do
  30. <<j:=j+1;write j,"ieme solution :", sorsol(elt);>>;
  31. write "solvalide({lcoeff,sol},2,4)\$";
  32. solvalide({lcoeff,sol},3,4)\$
  33. write "solvalide({lcoeff,sol},3,4)\$";
  34. solvalide({lcoeff,sol},3,4)\$
  35. off div;
  36. write "off trdesir;";
  37. off trdesir;
  38. write "Deuxieme exemple : utilisation interactive, parametres et";
  39. write "transformations";
  40. write "desir();";
  41. desir();
  42. 2; %ordre de l'equation
  43. x**2-nu**2;x;x**2; %coefficients
  44. non; %correction ?
  45. 1; %nombre de parametres
  46. nu; %nom du parametre
  47. non; %transformation ?
  48. 2; %nombre de termes a calculer
  49. oui; %transformation ?
  50. 2; %changement de variable
  51. 1/v; %x=1/v
  52. non; %transformation ?
  53. 2; %nombre de termes a calculer
  54. non\$ %transformation ?
  55. sol:=ws\$
  56. write "sol1:=first sol\$ %solutions au voisinage de 0";
  57. sol1:=first sol\$ %solutions au voisinage de 0
  58. write "sol2:=second sol\$ %solutions au voisinage de l'infini";
  59. sol2:=second sol\$ %solutions au voisinage de l'infini
  60. write "solvalide(sol1,1,2)\$";
  61. solvalide(sol1,1,2)\$ %presence de solutions conditionnelles
  62. write "solvalide(sol2,1,2)\$";
  63. solvalide(sol2,1,2)\$ %la verification de la validite des solutions
  64. %au voisinage de l'infini est possible malgre
  65. %le parametre (pas de condition).
  66. write "Remarque : la verification de la validite des solutions est possible";
  67. write "malgre la presence d'un parametre (pas de condition).";
  68. write "standsol(sol1); %=sol1...sans interet!";
  69. standsol(sol1); %=sol1...
  70. write "standsol(sol2); %solutions retournees sous forme standard";
  71. standsol(sol2);
  72. write "Pour revoir les solutions au voisinage de 0 :";
  73. j:=0\$
  74. write "for each elt in second sol1 do";
  75. write " <<j:=j+1;write j,'ieme solution';sorsol(elt);>>;";
  76. for each elt in second sol1 do
  77. <<j:=j+1;write j,"ieme solution";sorsol(elt);>>;
  78. write "Evaluation des solutions au voisinage de 0 pour une valeur";
  79. write "particuliere du parametre :";
  80. write "sorparam(sol1,{nu}); %evaluation des solutions au voisinage de 0";
  81. write " %pour une valeur particuliere du parametre";
  82. write " %nu = 1";
  83. write " %ecriture et retour des solutions sous forme";
  84. write " %standard";
  85. sorparam(sol1,{nu}); %evaluation des solutions au voisinage de 0
  86. %pour une valeur particuliere du parametre
  87. 1; %valeur de nu
  88. %ecriture et retour des solutions sous forme
  89. %standard
  90. write "solparam(sol1,{nu},{1});";
  91. solparam(sol1,{nu},{1}); %meme fonction avec retour des solutions sous
  92. %forme generalisee, ce qui permet d'enchainer
  93. write "Meme fonction avec retour des solutions sous forme generalisee,";
  94. write "ce qui permet d'enchainer :";
  95. write "solvalide(ws,1,2)\$";
  96. solvalide(ws,1,2)\$
  97. write "L'exemple suivant a ete cree specialement pour tester l'algorithme";
  98. write "et utiliser un grand nombre de procedures :";
  99. lcoeff:={x+1,2*x**2*(x+1),x**4,(5*x**7)/2,x**10};
  100. param:={};
  101. showtime;
  102. write "sol:=delire(x,4,1,lcoeff,param);";
  103. sol:=delire(x,4,1,lcoeff,param)\$
  104. showtime;
  105. on div;j:=0\$
  106. for each elt in sol do
  107. <<j:=j+1;write j,"ieme solution :", sorsol(elt);>>;
  108. solvalide({lcoeff,sol},1,4)\$
  109. solvalide({lcoeff,sol},3,4)\$
  110. off div;
  111. bye;
  112. EOF