Академический Документы
Профессиональный Документы
Культура Документы
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
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
x=linspace(0,40,40);
f=@(x) besselj(0,x);
k=raices(f,x);
disp('J_0(x)')
disp(k)
f=@(x) besselj(1,x);
k=raices(f,x);
disp('J_1(x)')
disp(k)
f=@(x) besselj(2,x);
k=raices(f,x);
disp('J_2(x)')
disp(k)
Aproximaciones
Cuando x se hace grande la función Jn(x), tiende hacia
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
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
Comprobamos que la integral
1∫0xJ0(kmx)J0(knx)dx=0m≠n∫01xJ0(kmx)J0(knx)dx=0 m≠n
f=@(x) x.*(besselj(0,k(1)*x).*besselj(0,k(2)*x));
integral(f,0,1)
ans = 8.9311e-18
Cuando m=n
1∫0xJ20(kx)dx=12(J20(k)+J21(k))∫01xJ02(kx)dx=12(J02(k)+J12(k
))
>> syms x k;
>> int('x*besselj(0,k*x)^2',x,0,1)
ans= besselj(0, k)^2/2 + besselj(1, k)^2/2
Otras relaciones
1∫0xJ0(kx)dx=1kJ1(k)∫01xJ0(kx)dx=1kJ1(k)
>> syms k x;
>> int('x*besselj(0,k*x)',x,0,1)
ans =besselj(1, k)/k
Derivadas
dJn(x)dx=nJn(x)x−Jn+1(x)dJn(x)dx=nJn(x)x−Jn+1(x)
>> syms x n;
>> diff(besselj(n,x))
ans =(n*besselj(n, x))/x - besselj(n + 1, x)
f(r)=∞∑n=1anJ0(knrR)f(r)=∑n=1∞anJ0(knrR)
R∫0r⋅f(r)J0(kmrR)dr=∞∑n=1anR∫0r⋅J0(kmrR)J0(knrR)dr∫0Rr·f(r)J0(kmr
R)dr=∑n=1∞an∫0Rr·J0(kmrR)J0(knrR)dr
dr∫0Rr·f(r)J0(kmrR)dr=am∫0Rr·J02(kmrR)dram=2R2J12(km)∫0
Rr·f(r)J0(kmrR)dr
Ejemplo 1
an=2R2J21(kn)R∫0r(1−|r−1|)J0(knrR)dran=2R2J12(kn)∫0Rr(1−|r−1
|)J0(knrR)dr
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:10
y=y+a(i)*besselj(0,k(i)*r/R);
end
hold on
fplot('1-abs(r-1)',[0,R]);
plot(r,y);
hold off
grid on
xlabel('r')
ylabel('f(r)')
title('Serie Fourier-Bessel')
Nos aproximamos con los 10 primeros términos del desarrollo en serie a la
función f(r). Los valores de los primeros cinco coeficientes son los siguientes:
>> a(1:5)
ans = 1.0149 -0.6448 -0.3029 0.0365 0.0865
Ejemplo 2
Consideremos la función
an=2R2J21(kn)R∫0r⋅f(r)J0(knrR)dr=2R2J21(kn)b∫0r⋅J0(knrR)dran=2R2
J12(kn)∫0Rr·f(r)J0(knrR)dr=2R2J12(kn)∫0br·J0(knrR)dr
x=linspace(0,40,40);
f=@(x) besselj(0,x);
k=raices(f,x);
R=2;
b=1;
a=zeros(1,length(k));
for i=1:length(k)
f=@(r) r.*besselj(0,k(i)*r/R);
a(i)=2*integral(f,0,b)/(R*besselj(1,k(i)))^2;
end
r=linspace(0,R,200);
y=zeros(1,length(r));
for i=1:10
y=y+a(i)*besselj(0,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')
>> a(1:5)
ans = 0.7698 0.6615 -0.2830 -0.4643 0.1987
FUENTE: http://www.sc.ehu.es/sbweb/fisica3/especial/bessel/bessel.html