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



(1) Assuming differentiability, I think you can get the value of 'a' using solve(ratsimp(g*y*diff(e,y) + x * diff(e,x) + (1-g)* e), g). Here g 
might be a gensym. Remember that solve might return 'all.' This will be a special case, more or less. When e involves symbolic functions 
(for example e = h(x * y) * y/x), I think all this will work better using pdiff. 

(2) Test that 'a' is free of x & y. Maybe 'a' needs to be ratsimp'ed---not sure.

(3) After this, a bit of ratsubst should polish off the calculation. Maybe there needs to be another freeof check--not sure.
Some simplifications (say sqrt(x^2) --> |x|) might interfere with all this, I don't know--(too many) option variables control such things...



--Barton


I think the approach used by solution() only works for finding functions f(x) where the function body is free of y.  If that is not true then the function is not a pure f(x), but more like f(x,y) and solution() doesn?t work.  Given this restriction on f and the requirement that ?a? is not x or y, it works fine and it is done, I think.

Rich