RE: RE: FullSimplify and HypergeometricPFQ

*To*: mathgroup at smc.vnet.net*Subject*: [mg72082] RE: [mg72050] RE: [mg72035] FullSimplify and HypergeometricPFQ*From*: "David Park" <djmp at earthlink.net>*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] - e*Cos[\[Phi]])] FullSimplify[%, 0 < e < 1 && -Pi < \[Phi] < Pi] So perhaps your statement applies only to a restricted class of expressions? David Park djmp at earthlink.net http://home.earthlink.net/~djmp/ From: Andrzej Kozlowski [mailto:akoz at mimuw.edu.pl] > 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 earthlink.net > http://home.earthlink.net/~djmp/ > > From: guy.verhofstadt at gmail.com [mailto:guy.verhofstadt at gmail.com] > > 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 > >