/* integration.mc Quelques macros pour présenter des calculs d'intégrales. JM Sarlat - 2003 - http://melusine.eu.org/syracuse/maxima/ */ /* Présentation d'une intégrale définie */ integre(f,v,a,b) := 'integrate(f,v,a,b) = integrate(f,v,a,b); /* Intégration en appliquant la relation de Chasles */ integre_chasles(f,v,a,b,c) := 'integrate(f,v,a,c) = integrate(f,v,a,b) + integrate(f,v,b,c); /* Intégration en utilisant un calcul de limite aux bornes */ integre_limite(f,v,a,b) := 'integrate(f,v,a,b) = ldefint(f,v,a,b); /* Intégration à l'aide d'une relation de Chasles avec calcul de limite aux bornes */ integre_chasles_limite(f,v,a,b,c) := 'integrate(f,v,a,c) = ldefint(f,v,a,b) + ldefint(f,v,b,c); /* Calcul de primitive */ primitive(f,v) := 'integrate(f,v) = integrate(f,v); /* Macro de simplification d'une expression trigo (1) */ strig1(e,v) := ev(e, cos(v)+1=sin(v)/tan(v/2), tan(v/2)^2+1=2*tan(v/2)/sin(v), tan(v/2)^2-1=2*tan(v/2)/tan(v)); /* Macro de simplification d'une expression trigo (2) */ strig2(e,v) := block([i],i:trigreduce(e),ev(i, 2*cos(v)+2=tan(v/2)^2*(2-2*cos(v)), cos(2*v)=2*cos(v)^2-1)); /* Macro de simplification d'une expression trigo (3) (9 avril 2003) */ strig3(e,v) := ev(e, log(cos(v)-1) = 2*log(abs(tan(v/2))) + log(cos(v)+1), log(sin(v)-1) = -2*log(abs(tan(v/2+%pi/4))) + log(sin(v)+1)); /* Mise en oeuvre de simplications avec procédure finale */ primitive_simplifie(f,v,env,final) := 'integrate(f,v) = final(env(integrate(f,v),v)); /* Changement de variable */ primitive_cv(f,v,eq,t) := 'integrate(f,v) = changevar('integrate(f,v),eq,t,v);