Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

besselj

シンボリック式の第 1 種ベッセル関数

説明

besselj(nu,z) は、第 1 種ベッセル関数Jν(z) を返します。

第 1 種ベッセル関数を求める

この数値について第 1 種ベッセル関数を計算します。これらの数値は浮動小数点であるため、結果は浮動小数点数となります。

[besselj(0,5) besselj(-1,2) besselj(1/3,7/4) besselj(1,3/2+2*i)]
ans =
  -0.1776 + 0.0000i  -0.5767 + 0.0000i   0.5496 + 0.0000i   1.6113 + 0.3982i

シンボリック型に変換された数値について第 1 種ベッセル関数を計算します。ほとんどのシンボリックな (厳密な) 数値について、besselj は未解決のシンボリックな呼び出しを返します。

[besselj(sym(0),5) besselj(sym(-1),2)...
 besselj(1/3,sym(7/4))  besselj(sym(1),3/2+2*i)]
ans =
[ besselj(0, 5), -besselj(1, 2), besselj(1/3, 7/4), besselj(1, 3/2 + 2i)]

シンボリックな変数と式の場合も、besselj により未解決のシンボリックな呼び出しが返されます。

syms x y
[besselj(x,y) besselj(1,x^2) besselj(2,x-y) besselj(x^2,x*y)]
ans =
[ besselj(x, y), besselj(1, x^2), besselj(2, x - y), besselj(x^2, x*y)]

ベッセル関数のベッセル微分方程式の求解

次の 2 階微分方程式を解きます。解は、第 1 種と第 2 種のベッセル関数です。

syms nu w(z)
ode = z^2*diff(w,2) + z*diff(w) +(z^2-nu^2)*w == 0;
dsolve(ode)
ans =
C2*besselj(nu, z) + C3*bessely(nu, z)

第 1 種ベッセル関数が、ベッセル微分方程式の有効な解であることを検証します。

cond = subs(ode,w,besselj(nu,z));
isAlways(cond)
ans =
  logical
   1

第 1 種ベッセル関数の特別な値

最初のパラメーターが奇数の整数を 1/2 で乗算した値の場合、besselj は初等関数でベッセル関数を書き換えることを示します。

syms x
besselj(1/2,x)
ans =
(2^(1/2)*sin(x))/(x^(1/2)*pi^(1/2))
besselj(-1/2,x)
ans =
(2^(1/2)*cos(x))/(x^(1/2)*pi^(1/2))
besselj(-3/2,x)
ans =
-(2^(1/2)*(sin(x) + cos(x)/x))/(x^(1/2)*pi^(1/2))
besselj(5/2,x)
ans =
-(2^(1/2)*((3*cos(x))/x - sin(x)*(3/x^2 - 1)))/(x^(1/2)*pi^(1/2))

第 1 種ベッセル関数の微分

第 1 種ベッセル関数を含む式を微分します。

syms x y
diff(besselj(1,x))
ans =
besselj(0, x) - besselj(1, x)/x
diff(diff(besselj(0,x^2+x*y-y^2), x), y)
ans =
- besselj(1, x^2 + x*y - y^2) -...
(2*x + y)*(besselj(0, x^2 + x*y - y^2)*(x - 2*y) -...
(besselj(1, x^2 + x*y - y^2)*(x - 2*y))/(x^2 + x*y - y^2))

行列入力に対するベッセル関数を求める

besselj を行列 A および値 1/2 を指定して呼び出します。besselj は要素ごとに働き、ベッセル関数の行列を返します。

syms x
A = [-1, pi; x, 0];
besselj(1/2, A)
ans =
[        (2^(1/2)*sin(1)*1i)/pi^(1/2), 0]
[ (2^(1/2)*sin(x))/(x^(1/2)*pi^(1/2)), 0]

第 1 種ベッセル関数のプロット

第 1 種ベッセル関数を 0,1,2,3 にプロットします。

syms x y
fplot(besselj(0:3, x))
axis([0 10 -0.5 1.1])
grid on

ylabel('J_v(x)')
legend('J_0','J_1','J_2','J_3', 'Location','Best')
title('Bessel functions of the first kind')

Figure contains an axes object. The axes object with title Bessel functions of the first kind, ylabel J indexOf v(x) baseline contains 4 objects of type functionline. These objects represent J_0, J_1, J_2, J_3.

入力引数

すべて折りたたむ

入力。数値、ベクトル、行列、または配列、あるいはシンボリック数、変数、配列、関数、または式で指定されます。

nu がベクトルまたは行列の場合、besseljnu の要素ごとに第 1 種変形ベッセル関数を返します。

入力。数値、ベクトル、行列、または配列、あるいはシンボリック数、変数、配列、関数、または式で指定されます。

nu がベクトルまたは行列の場合、besseljnu の要素ごとに第 1 種変形ベッセル関数を返します。

詳細

すべて折りたたむ

第 1 種ベッセル関数

ベッセル関数はベッセル微分方程式の解です。

z2d2wdz2+zdwdz+(z2ν2)w=0

これらの解は、第 1 種ベッセル関数 Jν(z)、および第 2 種ベッセル関数、Yν(z) で表されます。

w(z)=C1Jν(z)+C2Yν(z)

この式は、第 1 種ベッセル関数の積分表現です。

Jν(z)=(z/2)νπΓ(ν+1/2)0πcos(zcos(t))sin(t)2νdt

ヒント

  • シンボリック オブジェクトではない数値について besselj を呼び出すと、MATLAB® 関数 besselj が呼び出されます。

  • 少なくとも 1 つの入力引数はスカラーであるか、両方の引数は同じサイズのベクトルまたは行列でなければなりません。一方の入力引数がスカラーであり、もう一方の入力引数がベクトルまたは行列である場合、besselj(nu,z) によってスカラーは、すべての要素がそのスカラーと等しい、もう一方の引数と同じサイズのベクトルまたは行列に拡張されます。

参照

[1] Olver, F. W. J. “Bessel Functions of Integer Order.” Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables. (M. Abramowitz and I. A. Stegun, eds.). New York: Dover, 1972.

[2] Antosiewicz, H. A. “Bessel Functions of Fractional Order.” Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables. (M. Abramowitz and I. A. Stegun, eds.). New York: Dover, 1972.

バージョン履歴

R2014a で導入