Subject: finding out if expr has the form F(y/x^a)
From: Richard Hennessy
Date: Thu, 13 Dec 2012 20:58:29 -0500
(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
--------------------------------------------------------------------------------
What if f is very complicated. It seems impossible except to write a huge case statement or you could do a lookup in a table, maybe. But in that case the table would be very large and the procedure for handling each case would be different and so I ask how much time is worth spending on this?