[Date Index] [Thread Index] [Author Index]
Re: Re: How to simplify ArcCos[x/Sqrt[x^2+y^2]] to Pi/2-ArcTan[x/Abs[y]]?
On Thu, Sep 11, 2008 at 8:03 PM, Andrzej Kozlowski <akoz at mimuw.edu.pl> wrote: > > On 12 Sep 2008, at 09:46, Peng Yu wrote: > >> My question was raised because I had a very complex expression, which >> is too long to understand. The case in the title is just one little >> sub expression in that I could pinpoint in that long expression. I >> don't know the simplest form of the long expression. But it is of >> course not the simplest, because I pinpoint the sub expression that >> can be made simpler. >> >> I could do this by hand, but then why I need Mathematica? > > You can never hope to get "the simplest" form, firstly because there is no > unique defintion of "simplest" (that is why the functions Simplify and > FullSimplify have the ComplexityFunction option, which allows you to decide > which of two equivalent forms of an expression is "simpler".). Secondly, > there are only a certain finite number of transformations that Simplify and > FullSimplify will use (FullSimplify uses more). Some very natural functions > ar enot included because they have too high complexity and applying them all > the time would essentially stall Mathematica. You can add your own functions > using the option TransformationFucntions in Simplify and FullSimplify. In > general, only you can know what kind of simplifications will be useful in > your particular case. Computers cannot think and make choices, so if one > adds too many transformation functions as default they will be applied all > the time even in situations when they have no hope of being useful. Human > beings are (hopefully) intelligent and often can see easily that a certain > transformation will be of no use in a certain situation. Computer programs > usually can't. > In any case, all you can expect from Simplify is to obtain an expression > that will have the lowest value of ComplexityFunction under transformations > that are built up of the ones Simplify uses automatically plus any that you > have added yourself. FullSimplify uses more transformation functions than > Simplify and also uses them recursively, so it will often take a very long > time to return an answer. That's all there really is to it, and short of > developing software than can reason like human mathematicians there is > little, I think, that can in principle be changed, although of course more > efficient algorithms are being developed all the time (and implemented in > Mathematica). There are only a few examples in the help of ComplexityFunction. I'm wondering what kind of complexity functions I should use for the two cases that I raised. Thanks, Peng