MathGroup Archive 2005

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

Search the Archive

Re: Controlling inverses of functions

  • To: mathgroup at
  • Subject: [mg58437] Re: Controlling inverses of functions
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at>
  • Date: Sat, 2 Jul 2005 04:06:54 -0400 (EDT)
  • Organization: The Open University, Milton Keynes, England
  • References: <> <da2mim$928$>
  • Sender: owner-wri-mathgroup at

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
> FreeBSD (cvs meister, admin and hacker)
> Physics Particle Theory (student)
> ================ 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:

F[a] == F[b]*F[c]

F[a] == F[b]*F[c]

Solve[%, F[b]]

{{F[b] -> F[a]/F[c]}}

F[a] == F[b]**F[c]

F[a] == F[b]**F[c]

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.

{{F[b] -> InverseFunction[NonCommutativeMultiply, 1,
       2][F[a], F[c]]}}

Reduce[%%, F[b]]

Reduce::nsmet: This system cannot be solved with the methods available 
to Reduce.

Reduce[F[a] == F[b]**F[c], F[b]]

Hope this helps,

  • 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