Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

converting hypergeometric functions

0 views
Skip to first unread message

Axel Vogt

unread,
Jul 12, 2004, 2:11:30 PM7/12/04
to
converting hypergeometric functions

1) How can i get Maple to convert hypergeom([-n],[1/2],x^2) into
a polynomial? The convert(%,polynom) only works after "simplify"
and if n::posint is assigned a value.

Can i use Maple (directly) to see hypergeom([-n],[1/2],x^2)-
n!/(2*n)!*(-1)^n*HermiteH(2*n,x) equals 0 (may be an unfair Q)?

2) How can i convert hypergeometric functions to their integral
representation? Something like convert(%,Int) seems not to work.

Axel

--
use mail for mail not nonail

G. A. Edgar

unread,
Jul 12, 2004, 2:54:25 PM7/12/04
to
In article <40F2D452...@axelvogt.de>, Axel Vogt
<non...@axelvogt.de> wrote:

> converting hypergeometric functions
>
> 1) How can i get Maple to convert hypergeom([-n],[1/2],x^2) into
> a polynomial? The convert(%,polynom) only works after "simplify"
> and if n::posint is assigned a value.

There is this...

> f := hypergeom([-n],[1/2],x^2);
f := hypergeom([-n], [1/2], x^2)

> convert(f,StandardFunctions);
1/2*(2*x^2+1)*GAMMA(n+1)*Pi^(1/2)*LaguerreL(n, 1/2, x^2)
/GAMMA(n+3/2)-x^2*GAMMA(n+1)*Pi^(1/2)*LaguerreL(n, 3/2, x^2)
/GAMMA(n+3/2)

but of course you have to know that LaguerreL is a polynomial
when n is a positive integer.


>
> Can i use Maple (directly) to see hypergeom([-n],[1/2],x^2)-
> n!/(2*n)!*(-1)^n*HermiteH(2*n,x) equals 0 (may be an unfair Q)?

How about this...

> g := n!/(2*n)!*(-1)^n*HermiteH(2*n,x);
g := factorial(n)*(-1)^n*HermiteH(2*n, x)/factorial(2*n)

> ghyper := convert(g,hypergeom);
ghyper := -factorial(n)*(-1)^n*(-hypergeom([-n],[1/2],x^2)/GAMMA(1/2-n)
+2*x*hypergeom([1/2-n], [3/2],x^2)/GAMMA(-n))*2^(2*n)*Pi^(1/2)
/factorial(2*n)

> simplify(ghyper);
-(sin(1/2*Pi*(2*n+3))*hypergeom([-n], [1/2], x^2)
*GAMMA(1/2+n)+2*sin(Pi*(n+1))
*hypergeom([1/2-n], [3/2], x^2)*x*GAMMA(n+1))*(-1)^n
/GAMMA(1/2+n)

> simplify(%) assuming n::posint;
hypergeom([-n], [1/2], x^2)


>
> 2) How can i convert hypergeometric functions to their integral
> representation? Something like convert(%,Int) seems not to work.
>

Why not write it yourself?

--
G. A. Edgar http://www.math.ohio-state.edu/~edgar/

Robert Israel

unread,
Jul 12, 2004, 3:36:38 PM7/12/04
to
In article <40F2D452...@axelvogt.de>,
Axel Vogt <non...@axelvogt.de> wrote:

|>2) How can i convert hypergeometric functions to their integral
|>representation? Something like convert(%,Int) seems not to work.

Like this:

> FunctionAdvisor(integral_form, hypergeom([a,b],[c],x));

GAMMA(c)
[hypergeom([a, b], [c], x) = ---------------------
GAMMA(b) GAMMA(c - b)

1
/ (b - 1)
| _t1
| ---------------------------------- d_t1,
| (-c + b + 1) a
/ (1 - _t1) (1 - x _t1)
0

And(0 < Re(b), Re(b) < Re(c))]

Note that if you have specific values of a,b,c,x in mind, you should
first get the general formula in this way and then substitute. For
example:

> eval(%[1], {a=1,b=2,c=3});

Robert Israel isr...@math.ubc.ca
Department of Mathematics http://www.math.ubc.ca/~israel
University of British Columbia
Vancouver, BC, Canada V6T 1Z2

Edgardo S. Cheb-Terrab

unread,
Jul 14, 2004, 5:26:46 PM7/14/04
to

"Axel Vogt" <non...@axelvogt.de> wrote in message
news:40F2D452...@axelvogt.de...
> converting hypergeometric functions

Others have replied, so this is only to point that answers to these
questions and similar ones can be obtained uniformily, with essentially no
guesswork, using the FunctionAdvisor.

> 1) How can i get Maple to convert hypergeom([-n],[1/2],x^2) into
> a polynomial? The convert(%,polynom) only works after "simplify"
> and if n::posint is assigned a value.

In a situation where you have not a clue on how to solve the problem, a tip
would be to try

> FunctionAdvisor( specialize, hypergeom([-n],[1/2],x^2) ) assuming
n::posint
.....

and you will receive a large number of possible equivalences for this
function under that assumption. All of them are obtained from the Maple's
conversion network, including a derivation of the necessary assumptions on
the function parameters. Note the FunctionAdvisor's output contains really
much more information than the restricted Maple R5
convert/StandardFunctions.

From the FunctionAdvisor's output, you see (by eye, assuming you are a bit
familiar with these functions) Laguerre, Hermite and KummerU representations
equivalent to polynomials whenever n is a posint.

Having said that, also, if convert(expression, elementary) doesn't work is
because Maple doesn't know how to do it - but the problem in this case is
different: unless you say what the value of n is, there is no obvious way
(that I can see) to represent the output in polynomial form for arbitrary
'n::posint'.

> Can i use Maple (directly) to see hypergeom([-n],[1/2],x^2)-
> n!/(2*n)!*(-1)^n*HermiteH(2*n,x) equals 0 (may be an unfair Q)?

This would get you enough close to where you want

> FunctionAdvisor(specialize, hypergeom([-n],[1/2],x^2), HermiteH)
> assuming n::posint;

2 HermiteH(2 n, x)
[1F1([-n], [1/2], x ) = ---------------------, And((-n)::negint)]
(2 n)
2 (-n + 1/2)[n]

The single line "simplify(convert(expression,hypergeom)) assuming n::posint"
also works.

> 2) How can i convert hypergeometric functions to their integral
> representation? Something like convert(%,Int) seems not to work.

Convert to Int doesn't perform the conversion in this case because the
integral representation would not be valid in general. The way to go is the
one indicated by Robert Israel: again use the FunctionAdvisor. That tells
you not only what the integral representation is, but also under what
restrictions on the function parameters is that representation valid:

> H := hypergeom([-n],[1/2],x^2);
> FunctionAdvisor(int, H);

1/2
2 Pi
[1F1([-n], [1/2], x ) = ------------------------
GAMMA(-n) GAMMA(1/2 + n)

1
/ 2 (n - 1/2)
| exp(x _t1) (1 - _t1)
| ------------------------------ d_t1,
| (n + 1)
/ _t1
0

And(0 < -Re(n), -Re(n) < 1/2)]

Hence, now that you know the assumptions to use, you can call convert/Int
with the correct assumptions and get the output you want

> convert(H, Int) assuming %[-1];

1/2
Pi
------------------------
GAMMA(-n) GAMMA(1/2 + n)

1
/
| 2 (-n - 1) (n - 1/2)
| exp(x _t1) _t1 (1 - _t1) d_t1
|
/
0

Edgardo
CECM - Simon Fraser University
Research Fellow, Maplesoft

0 new messages