z = 0:0.1:20;
计算前五个第一类贝塞尔函数。J的每一行包含在
z中的点上计算的某阶函数的值。
J = zeros(5,201); for i = 0:4 J(i+1,:) = besselj(i,z);
end
在同一图窗中绘制所有函数。
plot(z,J) grid on
legend('J_0','J_1','J_2','J_3','J_4','Location','Best')
title('Bessel Functions of the First Kind for $u \in [0,
4]$','interpreter','latex')
xlabel('z','interpreter','latex')
ylabel('$J_u(z)$','interpreter','latex')
计算呈指数缩放的贝塞尔函数
为
z的复数值计算未缩放的 (J) 和经过缩放的
(Js) 第一类贝塞尔函数
2。
x = -10:0.3:10; y = x'; z = x + 1i*y; scale = 1; J = besselj(2,z);
Js = besselj(2,z,scale);
比较经过缩放的函数和未缩放函数的虚部图。对于 abs(imag(z))的大值,未缩放的函数很快上溢超出双精度的限制,不再可计算。经过缩放的函数从计算中消除了这种占主导状态的指数行为,因此与未缩放的函数相比,具有更大的可计算性范围。
surf(x,y,imag(J)) title('Bessel Function of the First
Kind','interpreter','latex')
xlabel('real(z)','interpreter','latex')
ylabel('imag(z)','interpreter','latex')
surf(x,y,imag(Js)) title('Scaled Bessel Function of the First
Kind','interpreter','latex')
xlabel('real(z)','interpreter','latex')
ylabel('imag(z)','interpreter','latex')