#### tstdesir4.8 KB Permalink History Raw

 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 ``````# execution de desir en batch sous unix \$rexec/reduce >& desir.log << EOF # appel de reduce write "load desir; %chargement de DESIR"; load desir; %chargement de DESIR write "Premier exemple : utilisation interactive sur une equation simple"; write "desir(); %appel de DESIR"; desir(); 3; %ordre de l'equation 1;x;x;x**6; %coefficients non; %correction ? non; %transformation ? 4; %nombre de termes a calculer non; %transformation ? write "solvalide(first ws,1,4);"; solvalide(first ws,1,4); write "Le meme exemple en utilisation directe"; write "lcoeff:={1,x,x,x**6};"; lcoeff:={1,x,x,x**6}; write "param:={};"; param:={}; write "on trdesir; %obtention facultative d'une trace"; on trdesir; showtime; write "sol:=delire(x,4,1,lcoeff,param);"; sol:=delire(x,4,1,lcoeff,param); write "showtime; %temps d'execution de 'delire'"; showtime; on div;j:=0\\$ for each elt in sol do <>; write "solvalide({lcoeff,sol},2,4)\\$"; solvalide({lcoeff,sol},3,4)\\$ write "solvalide({lcoeff,sol},3,4)\\$"; solvalide({lcoeff,sol},3,4)\\$ off div; write "off trdesir;"; off trdesir; write "Deuxieme exemple : utilisation interactive, parametres et"; write "transformations"; write "desir();"; desir(); 2; %ordre de l'equation x**2-nu**2;x;x**2; %coefficients non; %correction ? 1; %nombre de parametres nu; %nom du parametre non; %transformation ? 2; %nombre de termes a calculer oui; %transformation ? 2; %changement de variable 1/v; %x=1/v non; %transformation ? 2; %nombre de termes a calculer non\\$ %transformation ? sol:=ws\\$ write "sol1:=first sol\\$ %solutions au voisinage de 0"; sol1:=first sol\\$ %solutions au voisinage de 0 write "sol2:=second sol\\$ %solutions au voisinage de l'infini"; sol2:=second sol\\$ %solutions au voisinage de l'infini write "solvalide(sol1,1,2)\\$"; solvalide(sol1,1,2)\\$ %presence de solutions conditionnelles write "solvalide(sol2,1,2)\\$"; solvalide(sol2,1,2)\\$ %la verification de la validite des solutions %au voisinage de l'infini est possible malgre %le parametre (pas de condition). write "Remarque : la verification de la validite des solutions est possible"; write "malgre la presence d'un parametre (pas de condition)."; write "standsol(sol1); %=sol1...sans interet!"; standsol(sol1); %=sol1... write "standsol(sol2); %solutions retournees sous forme standard"; standsol(sol2); write "Pour revoir les solutions au voisinage de 0 :"; j:=0\\$ write "for each elt in second sol1 do"; write " <>;"; for each elt in second sol1 do <>; write "Evaluation des solutions au voisinage de 0 pour une valeur"; write "particuliere du parametre :"; write "sorparam(sol1,{nu}); %evaluation des solutions au voisinage de 0"; write " %pour une valeur particuliere du parametre"; write " %nu = 1"; write " %ecriture et retour des solutions sous forme"; write " %standard"; sorparam(sol1,{nu}); %evaluation des solutions au voisinage de 0 %pour une valeur particuliere du parametre 1; %valeur de nu %ecriture et retour des solutions sous forme %standard write "solparam(sol1,{nu},{1});"; solparam(sol1,{nu},{1}); %meme fonction avec retour des solutions sous %forme generalisee, ce qui permet d'enchainer write "Meme fonction avec retour des solutions sous forme generalisee,"; write "ce qui permet d'enchainer :"; write "solvalide(ws,1,2)\\$"; solvalide(ws,1,2)\\$ write "L'exemple suivant a ete cree specialement pour tester l'algorithme"; write "et utiliser un grand nombre de procedures :"; lcoeff:={x+1,2*x**2*(x+1),x**4,(5*x**7)/2,x**10}; param:={}; showtime; write "sol:=delire(x,4,1,lcoeff,param);"; sol:=delire(x,4,1,lcoeff,param)\\$ showtime; on div;j:=0\\$ for each elt in sol do <>; solvalide({lcoeff,sol},1,4)\\$ solvalide({lcoeff,sol},3,4)\\$ off div; bye; EOF ``````