This is a first step to allow more a general change of variables in an integration
of the form integrate(f(u(x)) * diff(u(x),x,1),x)
I:'integrate(expre,x);
change(expre,x):=(
matchdeclare(var,symbolp),
defmatch(dvar,'diff(var(x),x,1),x),
factores:args(factor(expre)),
for f in factores do
if not(dvar(f,x)=false) then
(vari:subst(dvar(f,x),var),
expre0:subst(diff(vari(x),x,1)=1, expre),
expre0:subst(vari(x)=var,expre0),
if freeof(x,expre0) then return('integrate(expre0,vari)) else return('integrate(expre,x))));
--- subst(diff(vari(x),x,1)=1 must first see that there is only one such factor, easy to improve but not today.
---------------------------------
S? un Mejor Amante del Cine
?Quieres saber c?mo? ?Deja que otras personas te ayuden!.