Re: Substitute all known relations in result

• To: mathgroup at smc.vnet.net
• Subject: [mg86660] Re: Substitute all known relations in result
• From: magma <maderri2 at gmail.com>
• Date: Mon, 17 Mar 2008 00:21:01 -0500 (EST)
• References: <frg0ap\$eu5\$1@smc.vnet.net> <friu2g\$ki\$1@smc.vnet.net>

```On Mar 16, 11:50 am, Szabolcs Horv=E1t <szhor... at gmail.com> wrote:
> Dr. Johannes Zellner wrote:
> > Hi,
>
> > How do I make mathematica to display results with all known
> > relations / variables?
> > E.g. if a result is
> >    x^2+y^2
> > and before I'd defined
> >    r = x^2+y^2
> > I'd like mathematica to display the result rather as "r".
>
> > And: I'd like mathematica to do this for each relation defined before
> > w/o specifying every possible replacement.
>
> > Any help much appreciated.
>
> It is not possible to do this.  When you define
> r = x^2 + y^2
> Mathematica will know that from now on whenever it sees 'r', it should
> replace 'r' by x^2 + y^2.  This is like variable assignment in any other
> programming language.  It is something completely different from
> declaring the mathematical statement r == x^2 + y^2 to be true (which
> cannot really be done in Mathematica, but *do* take a look at the
> documentation of Assuming, Assumptions and \$Assumptions)
>
> But even if we know that r == x^2 + y^2 is true, we can use this fact =
in
> many different ways.  You say that you want Mathematica to replace
> x^2+y^2 by r.  Why?  This is not the only possible replacement that can
> be based on this fact.  Why not replace r by x^2+y^2 instead?  Or why
> not replace x^2 + y^2 by (x^2 + y^2 + r)/2?  Or why not replace x by
> Sqrt[r - y^2]?  (Okay, I know that (x)^2 == (-x)^2 so this last one wa=
s
> not a correct transformation ... but I think you understand my point.)
>
> Why would you select that *single* tranformation from the infinite
> number of possibilities?
>
> Is your goal to construct an expression that has as few parts as
> possible?  Then use FullSimplify, e.g.
>
> FullSimplify[x^2 + y^2, x^2 + y^2 == r]
>
> FullSimplify will try many tranformations on the expression, and it will
> return the shortest result (the one with the smallest LeafCount).  In
> this example this happens to be r.
>
> An alternative syntax is
>
> Assuming[x^2 + y^2 == r, FullSimplify[x^2 + y^2]]

Very interesting question with 2 very interesting and different
answers by Andrzej and Szabolcs.
The solution by Andrzej is a good example of the use of Groebner
basis.
Groebner basis are probably not yet an household name, even among
Certainly they were not for me, when I first read them in the
Mathematica documentation.
This reply by Andrzej will hopefully entice more  users to start
reading a bit about the theory behind them.
The reply by Szabolcs is entirely built inside Mathematica and is
Another useful related function that I would like to suggest is
Refine.

Alessandro

```

• Prev by Date: Re: V.6.0.2 gripes...
• Next by Date: Re: Should I uninstall the old version before upgrading?
• Previous by thread: Re: Substitute all known relations in result
• Next by thread: ordering of multivariate polynomial terms