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

Integrating Bessel functions

26 views
Skip to first unread message

Alge Bra

unread,
May 25, 2012, 3:53:23 AM5/25/12
to
Hi,

When I integrate J_0(r) J_2(r) r^3 in Maple, I get an answer in terms of the hypergeometric function. But I want an answer in terms of Bessel functions as in the following:

http://www.wolframalpha.com/input/?i=FunctionExpand%5BIntegrate%5BBesselJ%5B0%2C+r%5D+BesselJ%5B2%2C+r%5D+r%5E3%2C+r%5D%5D

The key is "FunctionExpand" that converts the hypergeometric function to more basic functions.

Is it possible to achieve this result in Maple?

Many thanks in advance!

G. A. Edgar

unread,
May 25, 2012, 12:02:27 PM5/25/12
to
In article <b3f2b94b-6803-4b55...@googlegroups.com>,
Maple 16:

> int(BesselJ(0,r)*BesselJ(2,r)*r^3,r);

r^4 (BesselJ(0, r) BesselJ(2, r) + BesselJ(1, r) BesselJ(3, r))/6

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

acer

unread,
May 26, 2012, 10:52:23 PM5/26/12
to
The following works in several older versions (not just the lastest Maple 16),

> restart:

> ee:=int(BesselJ(0,r)*BesselJ(2,r)*r^3,r);

1 4
ee := - r (BesselJ(0, r) BesselJ(2, r) + BesselJ(1, r) BesselJ(3, r))
6

> expand(ee);

1 3 1 4 2 4 2 2
- - r BesselJ(0, r) BesselJ(1, r) - - r BesselJ(0, r) + - r BesselJ(1, r)
3 6 3

1 4 2
- - r BesselJ(1, r)
6

> simplify(%,size);

1 2 // 2\ 2
- - r \\-8 + r / BesselJ(1, r) + 2 BesselJ(0, r) BesselJ(1, r) r
6

2 2\
+ r BesselJ(0, r) /


This is all shown as plaintext output, so that I could post it here.

But in Maple's Standard GUI the output can be made to look much terser, with the output appearing as calls to subscripted J_0 and J_1. If the typsetting level is set to extended. That can be set using the GUI's Tools->Options menu, or with the interface(typesetting=extended) command.

For fun, here's a way to get similar terse printing involving apparent calls to J0 and J1, for plaintext output,

> `print/BesselJ`:=proc(a,b)
> if a=0 then 'J0'(b);
> elif a=1 then 'J1'(b);
> else BesselJ(a,b);
> end if;
> end proc:

simplify(expand(ee),size);

1 2 // 2\ 2 2 2\
- - r \\-8 + r / J1(r) + 2 J0(r) J1(r) r + r J0(r) /
6


acer
0 new messages