Expand of the Bessel functions when the order is integer
Subject: Expand of the Bessel functions when the order is integer
From: Dieter Kaiser
Date: Wed, 02 Nov 2011 23:33:10 +0100
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