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.

```

• Prev by Date: Re: Sudoku puzzle
• Next by Date: Re: a question about the UnitStep function
• Previous by thread: Controlling inverses of functions
• Next by thread: Can't assign value to symbols