Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
besseli
第1種修正ベッセル関数 (Iα).
besselj
第1種ベッセル関数 (Jα).
besselk
第2種修正ベッセル関数 (Kα).
bessely
第2種ベッセル関数 (Yα).
besselh
第3種ベッセル関数 (ハンケル関数と同じ)
呼び出し手順
y = besseli(alpha, x [,ice]) y = besselj(alpha, x [,ice]) y = besselk(alpha, x [,ice]) y = bessely(alpha, x [,ice]) y = besselh(alpha, x) y = besselh(alpha, K, x [,ice])
引数
- x
実数または複素数のベクトル.
- alpha
r実数ベクトル
- ice
整数フラグ, デフォルト値: 0
- K
整数, 指定可能な値は 1 または 2, ハンケル関数の型.
説明
besseli(alpha,x)
は, 実数の次数alpha
および引数x
に関する 第1種修正ベッセル関数(Iα)を計算します,besseli(alpha,x,1)
はbesseli(alpha,x).*exp(-abs(real(x)))
を計算します.besselj(alpha,x)
は第1種のベッセル関数(Jα)を 実数の次数alpha
および引数x
に関して 計算します.besselj(alpha,x,1)
はbesselj(alpha,x).*exp(-abs(imag(x)))
を計算します.besselk(alpha,x)
は第2種修正ベッセル関数 (Kα)を 実数の次数alpha
および引数x
に関して 計算します.besselk(alpha,x,1)
はbesselk(alpha,x).*exp(x)
を計算します.bessely(alpha,x)
は第2種のベッセル関数(Yα)を 実数の次数alpha
および引数x
に関して 計算します.bessely(alpha,x,1)
はbessely(alpha,x).*exp(-abs(imag(x)))
を計算します.besselh(alpha [,K] ,x)
は第3種のベッセル関数 (K
に依存してハンケル関数 H1 または H2)を 実数の次数alpha
および引数x
に関して 計算します.K
が省略された場合, 1に等しいと仮定されます.besselh(alpha,1,x,1)
はbesselh(alpha,1,x).*exp(-%i*x)
を計算し,besselh(alpha,2,x,1)
はbesselh(alpha,2,x).*exp(%i*x)
を計算します.
注意
alpha
および x
が同じ大きさの
配列の場合,結果y
も同じ大きさとなります.
入力のどちらかがスカラーの場合,
もう片方の大きさにまで拡張されます.
片方の入力が行ベクトルでもう片方が列ベクトルの場合,
結果y
は関数値の二次元テーブルとなります.
Yα および Jα ベッセル関数はベッセルの微分方程式の 2つの独立解です:
修正ベッセル関数Kα および Iαは 修正ベッセル微分方程式の2つの独立解です:
Hα1 および Hα2は第1種および第2種のハンケル関数 で,第1種および第2種のベッセル関数の線形結合です:
例
// besselI 関数 // ================== x = linspace(0.01,10,5000)'; clf() subplot(2,1,1) plot2d(x,besseli(0:4,x), style=2:6) legend('I'+string(0:4),2); xtitle("Some modified Bessel functions of the first kind") subplot(2,1,2) plot2d(x,besseli(0:4,x,1), style=2:6) legend('I'+string(0:4),1); xtitle("Some modified scaled Bessel functions of the first kind")
// besselJ 関数 // ================= x = linspace(0,40,5000)'; clf() plot2d(x,besselj(0:4,x), style=2:6, leg="J0@J1@J2@J3@J4") legend('I'+string(0:4),1); xtitle("Some Bessel functions of the first kind")
// J_(1/2)(x) = sqrt(2/(x pi)) sin(x) の関係を用いて // besselj(0.5,x) のアルゴリズムをより直接的な式と比較します x = linspace(0.1,40,5000)'; y1 = besselj(0.5, x); y2 = sqrt(2 ./(%pi*x)).*sin(x); er = abs((y1-y2)./y2); ind = find(er > 0 & y2 ~= 0); clf() subplot(2,1,1) plot2d(x,y1,style=2) xtitle("besselj(0.5,x)") subplot(2,1,2) plot2d(x(ind), er(ind), style=2, logflag="nl") xtitle("relative error between 2 formulae for besselj(0.5,x)")
// besselK 関数 // ================= x = linspace(0.01,10,5000)'; clf() subplot(2,1,1) plot2d(x,besselk(0:4,x), style=0:4, rect=[0,0,6,10]) legend('K'+string(0:4),1); xtitle("Some modified Bessel functions of the second kind") subplot(2,1,2) plot2d(x,besselk(0:4,x,1), style=0:4, rect=[0,0,6,10]) legend('K'+string(0:4),1); xtitle("Some modified scaled Bessel functions of the second kind")
// besselY 関数 // ================= x = linspace(0.1,40,5000)'; // Y ベッセル関数は x -> 0+ については制限されません clf() plot2d(x,bessely(0:4,x), style=0:4, rect=[0,-1.5,40,0.6]) legend('Y'+string(0:4),4); xtitle("Some Bessel functions of the second kind")
// besselH 関数 // ================= x=-4:0.025:2; y=-1.5:0.025:1.5; [X,Y] = ndgrid(x,y); H = besselh(0,1,X+%i*Y); clf();f=gcf(); xset("fpf"," ") f.color_map=jetcolormap(16); contour2d(x,y,abs(H),0.2:0.2:3.2,strf="034",rect=[-4,-1.5,3,1.5]) legends(string(0.2:0.2:3.2),1:16,"ur") xtitle("Level curves of |H1(0,z)|")
使用される関数
ソースコードは SCI/modules/special_functions/src/fortran/slatec および SCI/modules/special_functions/src/fortran にあります
Slatec : dbesi.f, zbesi.f, dbesj.f, zbesj.f, dbesk.f, zbesk.f, dbesy.f, zbesy.f, zbesh.f
拡張定義領域(Serge Steer INRIA)のドライバ (Serge Steer INRIA): dbesig.f, zbesig.f, dbesjg.f, zbesjg.f, dbeskg.f, zbeskg.f, dbesyg.f, zbesyg.f, zbeshg.f
Report an issue | ||
<< amell | Special Functions | beta >> |