MathGroup Archive 2006

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

Search the Archive

RE: RE: FullSimplify and HypergeometricPFQ

  • To: mathgroup at
  • Subject: [mg72082] RE: [mg72050] RE: [mg72035] FullSimplify and HypergeometricPFQ
  • From: "David Park" <djmp at>
  • Date: Mon, 11 Dec 2006 04:55:01 -0500 (EST)

Hello Andrzej,

I wonder if the description Simplify and FullSimplify is such that a user
could relatively easily control what he is going to get on the
simplification? Or whether it would be worthwhile mastering the description?

I also question if Simplify or FullSimplify will reliably tell if two
symbolic expressions are equal. And, in fact, if that was the principal
purpose why are there two commands that sometimes give different results?

Here are two expressions that I believe are equal over the given domain.

Plot[Evaluate[{ArcTan[((1 + e)*Tan[\[Phi]/2])/
        Sqrt[1 - e^2]], \[Phi]/2 +
       ArcTan[(e*Sin[\[Phi]])/(1 + Sqrt[1 - e^2] -
          e*Cos[\[Phi]])]} /. e -> 0.8],
   {\[Phi], -Pi, Pi}, PlotStyle ->
    {{AbsoluteThickness[5], Gray}, Red},
   Frame -> True];

Yet FullSimplify can't tell that they are equal.

ArcTan[((1 + e)*Tan[\[Phi]/2])/Sqrt[1 - e^2]] ==
  \[Phi]/2 + ArcTan[(e*Sin[\[Phi]])/(1 + Sqrt[1 - e^2] -
FullSimplify[%, 0 < e < 1 && -Pi < \[Phi] < Pi]

So perhaps your statement applies only to a restricted class of expressions?

David Park
djmp at

From: Andrzej Kozlowski [mailto:akoz at]
> I doubt if you will ever get a full description of how Simplify and
> FullSimplify work.

I can't agree with the above. If you search through the archives for
posts by Adam Strzebonski with the word Simplify with them you wil
find that he has provided almost complete information about them. In
particular, he has posted the default ComplexityFucntion, the
complete lists of default transformation functions used by Simplify
and FullSimplify and other information, which means that in fact we
already have a more complete description of how these functions work
than is the case with almost any other Mathematica functions.
(Actually, in the particular case the original poster referred to,
the key work is done by FunctionExpand, about which we, or at least
I, do not know all that much, but it does not change the fact that
Simplify and FullSimplify themselves have been described very fully).
> I consider Simplify and FullSimplify as 'gifts from heaven'. When
> they do
> what I want, which they often do, great. When they don't, then I
> don't try
> to mess around with ComplexityFunction because that isn't very
> precise but
> only tends to push the result one way or the other. Rather, I
> resort to
> 'microsurgery' on the expression, using rules, replacements of
> specific
> parts and things like that.

Of course you are right, but the point is that Simplify and
FullSimplify were never intended to get you from expression A to some
user specified expression B (although many users try to use or rather
misuse, them, to do just that.) There are other functions for this
purpose. Simplify and FullSimplify have two main purposes. in my
opinion, by far the most important one is showing that two different
symbolic expressions are equal. In this respect these functions are
unique; there is nothing in Mathematica that can replace them at this
task and this is also the most subtle aspect of what they do (and it
also has been described by Adam Strzebonski). The other important use
is to try to find a simpler form of a complicated expression in
situations when it is too hard to do this by hand. As there obviously
is no objective definition of "the simplest form" the user has a lot
of control of the direction he can  "push the result in", but of
course this cannot be "precise" because in such situations  there is
no "precise target".

> My experience is, that with a little practice, it is possible to
> manipulate
> expressions and simplify them in a way that a reader could
> understand and
> follow. Sometimes one does have to directly employ specific
> mathematical
> theorems or identities to carry out a derivation. But it still can
> be done
> within Mathematica.

Of course you are right. But the point of it all is simply that
Simplify and FullSimplify are not intended as tools for "manipulating
expressions". They can sometimes be used for this, but it usually
difficult to do precisely (as you have pointed out) and moreover,
even when it works it is almost always the most inefficient way of
achieving the result.

Andrzej Kozlowski

> David Park
> djmp at
> From: guy.verhofstadt at [mailto:guy.verhofstadt at]
> Hi,
> I have a question regarding something that Mathematica can do via the
> command FullSimplify.
> I use it to prove an identity between HypergeometricPFQ's. However it
> would be helpful to me to see how Mathematica proves it. How can I get
> access to the intermediate expressions and the transformations
> applied?
> Also, is there a definite list of all the things FullSimplify will try
> in Automatic setting?
> Thank you very much

  • Prev by Date: Re: RE: FullSimplify and HypergeometricPFQ
  • Next by Date: Re: Re: Finding the periphery of a region
  • Previous by thread: Re: FullSimplify and HypergeometricPFQ
  • Next by thread: Re: RE: FullSimplify and HypergeometricPFQ