Re: Controlling inverses of functions
- To: mathgroup at smc.vnet.net
- Subject: [mg58437] Re: Controlling inverses of functions
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Sat, 2 Jul 2005 04:06:54 -0400 (EDT)
- Organization: The Open University, Milton Keynes, England
- References: <200506300837.EAA15843@smc.vnet.net> <da2mim$928$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Josef Karthauser wrote: > I've got some functions (Tensor's actually) which aren't trivially > inverted and I want to either control their inverse form, or prevent > mathematica from inverting them altogether, so that I can use Solve > in safety on expressions containing them. Is there anyway of doing > that? > > For example: > > In: F[a] == F[b] F[c] > In: Solve[%, F[b]] > Out: {F[b] -> F[a] / F[c]} > > This is incorrect because 1 / F[c] is an invalid statement (as the > inverse isn't defined). The "correct" answer is that an answer can't be > derived. > > Any help on this would be wonderful. > > Thanks, > Joe > -- > Josef Karthauser (joe at tao.org.uk) http://www.josef-k.net/ > FreeBSD (cvs meister, admin and hacker) http://www.uk.FreeBSD.org/ > Physics Particle Theory (student) http://www.pact.cpes.sussex.ac.uk/ > ================ An eclectic mix of fact and theory. ================= > > Hi Josef, One approach might be to use _non commutative multiplication_ {represented by a double star **), as in the following example: In[1]:= F[a] == F[b]*F[c] Out[1]= F[a] == F[b]*F[c] In[2]:= Solve[%, F[b]] Out[2]= {{F[b] -> F[a]/F[c]}} In[3]:= F[a] == F[b]**F[c] Out[3]= F[a] == F[b]**F[c] In[4]:= Solve[%, F[b]] Solve::ifun: Inverse functions are being used by Solve, so some solutions may not be found; use Reduce for complete solution information. Out[4]= {{F[b] -> InverseFunction[NonCommutativeMultiply, 1, 2][F[a], F[c]]}} In[5]:= Reduce[%%, F[b]] Reduce::nsmet: This system cannot be solved with the methods available to Reduce. Out[5]= Reduce[F[a] == F[b]**F[c], F[b]] Hope this helps, /J.M.