finding out if expr has the form F(y/x^a)



I think this gives false positives.  This idea is ingenious but it does not test for correctness.  Unless I am a total idiot, I think you have to revise it this way.

load(pdiff)$
solution(g):=block([g2,g3,g6,a],g2:g*x/y,g3:at(g2,y=1/x),g6:at(diff(at(g,y=x),x)/diff(g3,x),x=1), a:-ratsimp((g6+1)/(g6-1)),f:at(g*x/y,y=x^(a+1)),
if is(equal(radcan(g-y/x*at(f,[x=y/x^a])),0))=true then ['a=a,'f(x)=f])$

This way if you get ?false then it is not possible to put the expression in the desired form.

expr:y^3+1/x^(3/2)$
solution(expr);
-> [a = -1/2,'f(x) = sqrt(x)*(x^(3/2)+1/x^(3/2))]
solution(expr+9);
-> false
solution(expr*9);
-> [a = -1/2,'f(x) = 9*sqrt(x)*(x^(3/2)+1/x^(3/2))]
solution(expr*x);
-> false
expr:(y/x)*sin(y^2/x^4 + y^3/x^6)*exp(y/x^2)$
solution(expr);
-> [a = 2,'f(x) = %e^x*sin(x^3+x^2)]
solution(expr+j);
-> false

FWIW,

Rich


From: Daniel Rupistraliz Avez 
Sent: Wednesday, December 12, 2012 3:52 PM
To: maxima at math.utexas.edu 
Subject: finding out if expr has the form F(y/x^a)

This is the correct one

set_display('none)$
load(pdiff)$

solution(y/x*h(y/x^m));

solution(g):=block([g2,g3,g6,a],g2:g*x/y,g3:at(g2,y=1/x),g6:at(diff(at(g,y=x),x)/diff(g3,x),x=1),
a:-ratsimp((g6+1)/(g6-1)),f:at(g*x/y,y=x^(a+1)),['a=a,'f(x)=f]);


Example:


solution(y/x*h(y/x^m));


Example:


u(x):=(8*x^4+5*x^3+6*x^2+3)/(5*x^3+2*x^2+x);

solution(ratsimp(y/x*u(y/x^4)));


--------------------------------------------------------------------------------
_______________________________________________
Maxima mailing list
Maxima at math.utexas.edu
http://www.math.utexas.edu/mailman/listinfo/maxima