貝塞爾函數在matlab中已經有了函數,可以直接用。那麼我們就沒有必要重複發明輪子。
以下内容摘自某文檔。
第一類貝塞爾函數
在MatLab中用besselj(NU,Z)來表示:
用MatLab的仿真代碼是:
clear ,clc;
format long
x=(0:0.01:20)';
y_0=besselj(0,x);
y_1=besselj(1,x);
y_2=besselj(2,x);
plot(x,y_0,x,y_1,x,y_2);grid on;
axis([0,20,-1,1]);
title('0階、一階、二階第一類貝塞爾函數曲線圖');
xlabel('Variable X');
ylabel('Variable Y');
第二類貝塞爾函數(諾依曼函數)
在MatLab中用用bessely(NU,Z)來表示:
clear ,clc;
format long
x=(0:0.01:20)';
y_0=bessely(0,x);
y_1=bessely(1,x);
y_2=bessely(2,x);
plot(x,y_0,x,y_1,x,y_2);grid on;
axis([1,20,-2,1]);
title('0階、1階、2階第二類貝塞爾函數曲線圖');
xlabel('Variable X');
ylabel('Variable Y');
第三類貝塞爾函數(漢克爾函數)
漢克爾函數在MatLab中用BESSELH(NU,K,Z)
clear ,clc;
format long
x=(0:0.01:20)';
y_0=besselh(0,2,x);
y_1=besselh(1,2,x);
y_2=besselh(2,2,x);
plot(x,y_0,x,y_1,x,y_2);
axis([0,20,-0.5,1]);
grid on;
title('0階、1階、2階第三類貝塞爾函數曲線圖');
xlabel('Variable X');
ylabel('Variable Y');
變形第一類貝塞爾函數(modified function of the first kind)
變形第一類貝塞爾函數在MatLab中用BESSELI(NU,Z) 表示
clear ,clc;
format long
x=(0:0.01:20)';
y_0=besseli(0,x);
y_1=besseli(1,x);
y_2=besseli(2,x);
plot(x,y_0,x,y_1,x,y_2);
grid on;
axis([0,6,0,6]);
title('0階、1階、2階變形第一類貝塞爾函數曲線');
xlabel('Variable X');
ylabel('Varialbe Y');
變形第二類貝塞爾函數(modified Bessel function of the second kind)
變形第二類貝塞爾函數在MatLab中用BESSELK(NU,Z) 表示
clear ,clc;
format long
x=(0:0.01:20)';
y_0=besselk(0,x);
y_1=besselk(1,x);
y_2=besselk(2,x);
plot(x,y_0,x,y_1,x,y_2);
grid on;
axis([0,6,0,6]);
title('0階、1階、2階變形第二類貝塞爾函數曲線');
xlabel('Variable X');
ylabel('Varialbe Y');