Funciones de Bessel
La ecuación diferencial de segundo orden
se conoce como ecuación de Bessel. La solución de esta ecuación diferencial se escribe
donde A y B son constantes que se determinan a partir de las condiciones iniciales. El índice n es un número real, aunque en los libros se proporcionan tablas de las funciones Jn(x) y Yn(x) para valores enteros n=0,1,2,3....
Para n entero se cumple
Funciones de Bessel de primera especie
Representamos J0(x), J1(x), J2(x) y J3(x) llamando a la función
hold on for n=0:3 f=@(x) besselj(n,x); fplot(f,[0,20], 'displayName',num2str(n)); end legend('-DynamicLegend','location','Best') xlabel('x') ylabel('J(x)') title('Funciones J_n(x) de Bessel') grid on hold off
En la siguiente tabla, se proporcionan los primeros ceros de las funciones de Bessel J0(x), J1(x) y J2(x). Utilizamos la función
function bessel_2 x=linspace(0,30,30); f=@(x) besselj(0,x); rr=raices(f,x); disp('J_0(x)') disp( rr) f=@(x) besselj(1,x); rr=raices(f,x); disp('J_1(x)') disp (rr) f=@(x) besselj(2,x); rr=raices(f,x); disp('J_2(x)') disp(rr) function r = raices(f, x) y=f(x); indices=find(y(1:end-1).*y(2:end)<0); r=zeros(1,length(indices)); for k=1:length(indices) r(k)=fzero(f, [x(indices(k)), x(indices(k)+1)]); end end end
J0(x) | J1(x) | J2(x) |
---|---|---|
2.4048 | 3.8317 | 5.1356 |
5.5201 | 7.0156 | 8.4172 |
8.6537 | 10.1735 | 11.6198 |
11.7915 | 13.3237 | 14.7960 |
14.9309 | 16.4706 | 17.9598 |
18.0711 | 19.6159 | 21.1170 |
21.2116 | 22.7601 | 24.2701 |
24.3525 | 25.9037 | 27.4206 |
27.4935 | 29.0468 | 30.5692 |
30.6346 | 32.1897 | 33.7165 |
Aproximaciones
Cuando x se hace grande la función Jn(x), tiende hacia
Representamos la función Jn(x) y su aproximación asintótica
n=3; f=@(x) sqrt(2./(pi*x)).*cos(x-n*pi/2-pi/4); k=0:4; hold on fplot(@(x) besselj(n,x),[1,20]) fplot(f,[1,20]) r=(2*k+1)*pi/2+n*pi/2+pi/4; %ceros coseno plot(r,0,'o','markersize',3,'markeredgecolor','r','markerfacecolor','r') hold off legend('J_n(x)','cos(x)') xlabel('x') ylabel('J_n(x)') title('Funciones J_n(x) de Bessel') grid on hold off
En la figura, se ha representado los ceros de la función cos(x-nπ/2-π/4), que como vemos son próximos a los ceros de la función Jn(x). Este hecho nos permite calcular los ceros de la función de Bessel mediante el comando fzero de MATLAB. Recuérdese que los ceros de la función coseno son (2k+π)/2, k=0,1,2,3...
n=3; for k=0:5 r=(2*k+1)*pi/2+n*pi/2+pi/4; %ceros coseno x1=fzero(@(x) besselj(n,x), r); disp(x1) end
6.3802 9.7610 13.0152 16.2235 19.4094 22.5827
Relaciones de ortogonalidad
donde km y kl son raíces distintas de Jn(k)=0. Por ejemplo, para n=0
x=linspace(0,40,40); f=@(x) besselj(0,x); k=raices(f,x); f=@(x) x.*(besselj(0,k(1)*x).*besselj(0,k(2)*x)); %raíces distintas integral(f,0,1)
ans = 8.9311e-18
x=linspace(0,40,40); f=@(x) besselj(0,x); k=raices(f,x); f=@(x) x.*(besselj(0,k(2)*x).^2); %segunda raíz de J0 integral(f,0,1)
ans = 0.0579 >> besselj(1,k(2))^2/2 ans = 0.0579
Otras relaciones
para n>-1. Por ejemplo, para n=0
>> syms k x; >> int('x*besselj(0,k*x)',x,0,1) ans =besselj(1, k)/k
Derivadas
>> syms x n; >> diff(besselj(n,x)) ans =(n*besselj(n, x))/x - besselj(n + 1, x)
Referencia: I.S. Gradshteyn, I.M. Ryzhik. Table of Integrals, Series, and Products. 2007, Elsevier Inc., apartado 6.561, n° 5, pág. 676, apartado 8.472, n° 1, 2, pág. 926
Desarrollo en serie Fourier-Bessel
En este apartado explicamos el caso más simple, el de una función f(r) tal que f(R)=0 entonces se puede expresar en términos de un desarrollo en serie de Fourier-Bessel
donde kn son los ceros de la función J0(x) o las raíces de la ecuación transcendente J0(k)=0
Para determinar los coeficientes an se utiliza las relaciones de ortogonalidad. Multiplicamos ambos miembros por J0(knr/R) e integramos entre 0 y R
Cuando m≠n la integral se hace cero, resultando
Ejemplo 1
Consideremos la función de la figura, f(r)=1-|r-1| 0≤r≤R=2
Calculamos los coeficientes an
Integramos numéricamente mediante la función
x=linspace(0,40,40); f=@(x) besselj(0,x); k=raices(f,x); R=2; a=zeros(1,length(k)); for i=1:length(k) f=@(r) (r.*(1-abs(r-1))).*besselj(0,k(i)*r/R); a(i)=2*integral(f,0,R)/(R*besselj(1,k(i)))^2; end r=linspace(0,R,200); y=zeros(1,length(r)); for i=1:length(k) y=y+a(i)*besselj(0,k(i)*r/R); end hold on fplot(@(r) 1-abs(r-1),[0,R]); plot(r,y); hold off grid on xlabel('r') ylabel('f(r)') title('Serie Fourier-Bessel')
Los valores de los primeros cinco coeficientes son los siguientes:
>> a(1:5) ans = 1.0149 -0.6448 -0.3029 0.0365 0.0865Ejemplo 2
Consideremos la función
Desarrollo en serie en términos de J1(x)
Los coeficientes se calculan del siguiente modo
x=linspace(0,40,40); f=@(x) besselj(1,x); k=raices(f,x); R=2; b=1; a=zeros(1,length(k)); for i=1:length(k) f=@(r) r.*besselj(1,k(i)*r/R); a(i)=2*integral(f,0,b)/(R*besselj(2,k(i)))^2; end r=linspace(0,R,200); y=zeros(1,length(r)); for i=1:length(k) y=y+a(i)*besselj(1,k(i)*r/R); end yy=r<=b; hold on plot(r,yy); plot(r,y); hold off grid on xlabel('r') ylabel('f(r)') title('Serie Fourier-Bessel')
Funciones de Bessel de segunda especie
Representamos Y0(x),Y1(x),Y2(x) llamando a la función
hold on for n=0:4 fplot(@(x) bessely(n,x),[0.02,15],'displayName',num2str(n)); end ylim([-2,1]) legend('-DynamicLegend','location','Best') xlabel('x') ylabel('Y(x)') title('Funciones Y_n(x) de Bessel') grid on hold off
Cuando x se hace grande la función Yn(x), tiende hacia
Derivadas
>> syms x n; >> diff(bessely(n,x)) ans =(n*bessely(n, x))/x - bessely(n + 1, x)
Funciones de Bessel modificadas In y Kn
Son soluciones de la ecuación diferencial
Representamos I0(x), I1(x), I2(x) y I3(x) llamando a la función
hold on for n=0:3 fplot(@(x) besseli(n,x),[0.1,5]) end hold off ylim([0,5]) grid on legend('I_0','I_1','I_2','I_3', 'location','NorthWest') xlabel('x') ylabel('I_n(x)') title('Funciones de Bessel, modificadas')
Representamos K0(x), K1(x), K2(x) y K3(x) llamando a la función
hold on for n=0:3 fplot(@(x) besselk(n,x),[0.1,5]) end hold off ylim([0,5]) grid on legend('K_0','K_1','K_2','K_3') xlabel('x') ylabel('K_n(x)') title('Funciones de Bessel, modificadas')
Derivadas
>> syms x n; >> diff(besseli(n,x)) ans =besseli(n + 1, x) + (n*besseli(n, x))/x >> diff(besselk(n,x)) ans =(n*besselk(n, x))/x - besselk(n + 1, x)
Funciones esféricas de Bessel
Las funciones esféricas de Bessel, jn(x) y yn(x) son las dos soluciones independientes de la ecuación diferencial
donde n es un número entero
A y B son coeficientes a determinar a partir de las condciones de contorno
Las funciones esféricas de Bessel, jn(x) y yn(x), están relacionadas con las funciones de Bessel Jn(x) e Yn(x)
Las primeras funciones esféricas de Bessel son
syms x; for n=-1:3 jn=sqrt(pi/(2*x))*besselj(n+1/2,x); yn=sqrt(pi/(2*x))*bessely(n+1/2,x); disp([simplify(jn),simplify(yn)]) end
jn(x) | yn(x) |
---|---|
Representamos jn(x) para n=0,1,2,3
hold on for l=0:3 f=@(x) sqrt(pi./(2*x)).*besselj(l+1/2,x); fplot(f,[0,14]) end xlabel('x') ylabel('j_n(x)') legend('n=0','n=1','n=2','n=3','Location', 'best') grid on title('Funciones esféricas de Bessel')
Representamos yn(x) para n=0,1,2,3
hold on for l=0:3 f=@(x) sqrt(pi./(2*x)).*bessely(l+1/2,x); fplot(f,[1,14]) end ylim([-0.4,0.4]) xlabel('x') ylabel('y_n(x)') legend('n=0','n=1','n=2','n=3','Location', 'best') grid on title('Funciones esféricas de Neumann')
Funciones esféricas de Hankel
Las funciones esféricas de Hankel son
Las primeras funciones son
syms x; for n=-1:3 hn=sqrt(pi/(2*x))*besselh(n+1/2,1,x); disp(simplify(hn)) end
Ejemplos en el curso de Física
La ecuación de Laplace, coordenadas cilíndricas (I)
Difracción Fraunhofer producida por una abertura circular
Modos normales de un cable en movimiento de rotación, suspendido verticalmente.
Modos de vibración de una membrana circular
Conducción del calor en un cilindro muy largo (I)
Conducción del calor en un cilindro muy largo (II)
La ecuación de Schrödinger en coordenadas cilíndricas
La ecuación de Schrödinger en coordenadas esféricas (I)
La ecuación de Schrödinger en coordenadas esféricas (II)
Movimiento vertical de un cohete con rozamiento (I)
Movimiento vertical de un cohete con rozamiento (II)
Ecuaciones de Navier-Stokes. Estado transitorio (II)
Fluido en un cilindro en rotación, estado transitorio