MathGroup Archive 2006

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

Search the Archive

Re: FullSimplify and HypergeometricPFQ

  • To: mathgroup at smc.vnet.net
  • Subject: [mg72053] Re: FullSimplify and HypergeometricPFQ
  • From: "dimitris" <dimmechan at yahoo.com>
  • Date: Sun, 10 Dec 2006 04:49:00 -0500 (EST)
  • References: <ele6ht$rlg$1@smc.vnet.net>

CAS like Mathematica have implementated algorithms which usually don't
follow human's solution by hand; quite the opposite.
The intermediate evaluated expressions may be interesting for someone
with deeper knowledge in Computer Science but for the common user of
Mathematica.

Consider for example the following example of definite integration

Integrate[1/Sqrt[1 - x^2], {x, 0, 1}]
Pi/2

A trivial solution by hand provided by the substitution x=sinu.
We let Mathematica do this for us.

Reduce[Sin[u] == 0 && 0 <= u <= Pi/2, u] && Reduce[Sin[u] == 1 && 0 <=
u <= Pi/2, u]
integrand = Simplify[(1/Sqrt[1 - x^2])*dx /. x -> Sin[u] /. dx ->
D[Sin[u], u], 0 <= u <= Pi/2]
Integrate[integrand, {u, 0, Pi/2}]

u == 0 && u == Pi/2
1
Pi/2

If you want to take a look of the intermediate expressions in the
direct evaluation of
the integral by Mathematica execute the following command (and be
impressed!)

Trace[Integrate[1/Sqrt[1 - x^2], {x, 0, 1}], TraceInternal -> True]

The output is big and I avoid to display it.
But watch that even this quite simple integral involves the calling of
"exotic" functions
like PolyLog

Cases[Trace[

Integrate[1/Sqrt[1-x^2],{x,0,1}],TraceInternal\[Rule]True],_PolyLog,{-3}]
{PolyLog[Integrate`ImproperDump`v, Integrate`NLtheoremDump`w],
PolyLog[2, 1 + I], PolyLog[3, -I], PolyLog[3, 1 + I],
  PolyLog[Integrate`ImproperDump`v, Integrate`NLtheoremDump`w],
PolyLog[2, 1 + I], PolyLog[3, -I], PolyLog[3, 1 + I],
  PolyLog[Integrate`ImproperDump`v, Integrate`NLtheoremDump`w],
PolyLog[2, (-1)^(1/4)], PolyLog[2, (-1)^(1/4)],
  PolyLog[2, (-1)^(1/4)], PolyLog[2, (-1)^(1/4)], PolyLog[2,
(-1)^(1/4)], PolyLog[2, (-1)^(1/4)], PolyLog[2, (-1)^(3/4)],
  PolyLog[2, (-1)^(3/4)], PolyLog[2, (-1)^(3/4)], PolyLog[2,
(-1)^(3/4)], PolyLog[2, (-1)^(3/4)], PolyLog[2, (-1)^(3/4)],
  PolyLog[2, (-1)^(3/4)], PolyLog[2, (-1)^(3/4)], PolyLog[2,
(-1)^(3/4)], PolyLog[2, (-1)^(1/4)], PolyLog[2, (-1)^(1/4)],
  PolyLog[2, (-1)^(1/4)], PolyLog[2, (-1)^(1/4)], PolyLog[2,
(-1)^(3/4)], PolyLog[2, (-1)^(3/4)], PolyLog[2, (-1)^(1/4)],
  PolyLog[2, (-1)^(1/4)], PolyLog[2, (-1)^(3/4)], PolyLog[2,
(-1)^(3/4)], PolyLog[2, (-1)^(1/4)]}

Look in the implementation notes of Integrate for more details.

As regards your particular question:

Consider an example from the Help Browser

HypergeometricPFQ[{a, b, c}, {1 + a - b, 1 + a - c}, 1]
(Pochhammer[1 + a, -b]*Pochhammer[1 + a/2 - c, -b])/(Pochhammer[1 +
a/2, -b]*Pochhammer[1 + a - c, -b])

Then

FunctionExpand[HypergeometricPFQ[{a, b, c}, {1 + a - b, 1 + a - c}, 1]]
(Sqrt[Pi]*Gamma[1 + a - b]*Gamma[1 + a - c]*Gamma[1 + a/2 - b - c])/
  (2^a*(Gamma[1/2 + a/2]*Gamma[1 + a/2 - b]*Gamma[1 + a/2 - c]*Gamma[1
+ a - b - c]))

Use above setting of Trace and be impressed again!

Trace[FullSimplify[HypergeometricPFQ[{a, b, c}, {1 + a - b, 1 + a - c},
1]], TraceInternal -> True]

Note that

Information["TraceInternal", LongForm -> True]
"TraceInternal is an option for Trace and related functions which, if
True or False, specifies whether to trace evaluations of \
expressions generated internally by Mathematica. The intermediate
Automatic setting traces a selected set of internal \
evaluations including Messages and sets or unsets of visible symbols."
Attributes[TraceInternal] = {Protected}

Also I suggest you reading the following relevant post

http://groups.google.com/group/comp.soft-sys.math.mathematica/browse_thread/thread/5635952c601a11fa/4e336bf5a551dc79?lnk=gst&q=father&rnum=1&hl=en#4e336bf5a551dc79

Best Regards
Dimitris



guy.verhofstadt at gmail.com wrote:
> 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: Using Mathematica to explore basic genealogical concepts
  • Next by Date: SpericalPlot3D in Gray?
  • Previous by thread: Re: RE: FullSimplify and HypergeometricPFQ
  • Next by thread: Re: RE: FullSimplify and HypergeometricPFQ