DESIR.TST 4.5 KB

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