Expand of the Bessel functions when the order is integer



Am Mittwoch, den 02.11.2011, 12:33 +0200 schrieb Aleksas Domarkas:
>  Expand of the Bessel functions when the order is integer
> 
>  "besselexpand:true"  not affect when the order is integer
> 
> How expand
> bessel_j(2,x)  to   (2*bessel_j(1,x)-bessel_j(0,x)*x)/x
> bessel_j(3,x)  to  -(-8*bessel_j(1,x)+4*bessel_j(0,x)*x
> +bessel_j(1,x)*x^2)/x^2
> bessel_j(2,2)  to  bessel_j(1,2)-bessel_j(0,2)
> bessel_j(3,2)  to  bessel_j(1,2)-2*bessel_j(0,2)
> bessel_j(4,2)  to  2*bessel_j(1,2)-5*bessel_j(0,2)  ?
> 
> How simplify 
> -bessel_y(6,2)*bessel_j(7,2)+bessel_y(7,2)*bessel_j(6,2)
> to
> bessel_y(1,2)*bessel_j(0,2)-bessel_y(0,2)*bessel_j(1,2)  ?
> 
> Aleksas D

It is the option variable bessel_reduce in combination with the function
ratsimp which does the work. In the following examples the function
ratsimp is used as an evaluation flag.

(%i1) bessel_reduce:true$

(%i2) bessel_j(2,x);
(%o2) 2*bessel_j(1,x)/x-bessel_j(0,x)

(%i3) bessel_j(4,2), ratsimp;
(%o3) 2*bessel_j(1,2)-5*bessel_j(0,2)

(%i4) -bessel_y(6,2)*bessel_j(7,2)+bessel_y(7,2)*bessel_j(6,2), ratsimp;
(%o4) bessel_j(0,2)*bessel_y(1,2)-bessel_y(0,2)*bessel_j(1,2)

The option variable bessel_reduce works for other Bessel functions too.
I have introduced this option variable some times ago, because with this
option hypergeometric functions simplifies much better, when Bessel
functions are reduced to the lowest order.

I am sorry, but the English documentation is missing. There is only the
German documentation available at this time:

 -- Optionsvariable: bessel_reduce
     Standardwert: `false'

     Hat die Optionsvariable `bessel_reduce' den Wert `true', werden
     Bessel-Funktionen mit einer ganzzahligen Ordnung n nach
     Bessel-Funktionen mit der niedrigsten Ordnung 0 und 1 entwickelt.


Dieter Kaiser