MathGroup Archive 1994

[Date Index] [Thread Index] [Author Index]

Search the Archive

simplifing inverse functions

  • To: mathgroup at christensen.cybernetics.net
  • Subject: simplifing inverse functions
  • From: Jack Goldberg <Jack.Goldberg at math.lsa.umich.edu>
  • Date: Wed, 19 Oct 1994 12:26:20 -0400 (EDT)

I was stimulated by my previous note to see if I could generalized
PowerExpand to cover cases such as ArcCos[Cos[x]].  I have come up with 
a modest first step which I offer specifically to see how much better 
others might do.  Here is my function:
	simplifyInverse[expr_,f_] := 
		Module[ {inv},
			inv = InverseFunction[f];
			expr //. inv[f[x_]] -> x
	]

This command does work fairly well.  For example it will simplify 
	1+1/(1+ArcCos[Cos[x^2]]) 
to 
	1+1/(1+x^2)
It works with ArcTrig[Trig[x]] where Trig is Tan,Cos,Sin. (I have not 
tested it with other trig functions yet.) It works with Log (as does 
PowerExpand).  It also works for user defined functions, at least as far 
as I could check.  However:
(1) It does not simplify  Sqrt[x^2] and seems to fail for all cases 
x^(1/integer).  Since I am somewhat of a beginner with programming Mma,
I am having a good deal of trouble figuring out what went wrong.  I might 
add that if I define  square[x_] := x^2 and 
	newroot[x_] := InverseFunction[square[x]]
it does work!
(2) Ideally, f_ should not be an argument to this function.  I can 
imagine a module which would search expr until if finds  f[g]; tests 
whether g[f[x] = x  and if so, replaces f[g[x]] with x.  I have no idea 
how to do this. 
(3) It does seem that such an extension to PowerExpand is useful, 
and I believe important.  Does anyone agree?






  • Prev by Date: function definition
  • Next by Date: Library of Signal processing routines
  • Previous by thread: RE: function definition
  • Next by thread: Library of Signal processing routines