B..7 零点の表

いいかげん Mathematica プログラム

(* n次第1種Bessel関数のx0の近くの根 *)
rootnear0[n_, x0_]:= FindRoot[BesselJ[n, x] == 0, {x, x0}, 
            WorkingPrecision -> 100, AccuracyGoal -> 90]
(* n次第1種Bessel関数のx0の近くの根 *)
rootnear[n_,x0_]:= x /. rootnear0[n,x0][[1]]
(* n次第1種Bessel関数のm番目の根 *)
Jroot[0,1]=rootnear[0,2]
Jroot[n_,1]:=Jroot[n,1]=rootnear[n,Jroot[n-1,1]+Pi/2]
Jroot[n_,m_]:=Jroot[n,m]=rootnear[n,Jroot[n,m-1]+Pi]


(既に述べたように、現在の Mathematica では、 もっと楽に零点を求めることが出来る。)

$ m>1$ に対する $ \nu_{n,m}$ は、 $ J_n(x)=0$ $ \nu_{n,m-1}+\pi$ の近くの解として求めている。 それは

$\displaystyle \lim_{m\to\infty}(\nu_{n,m+1}-\nu_{n,m})=\pi
$

に基づく。根拠はあまり強くない ($ n$ が小さいときは、 $ m$ が小さくても $ \nu_{n,m+1}-\nu_{n,m}\sim \pi$ は良い近似になっている が、$ n$ が大きくなるとずれが大きくなって来る)。

$ m=1$ の場合、つまり $ \nu_{n,1}$ をどう求めるか。

$\displaystyle \lim_{n\to\infty}(\nu_{n,1}-\nu_{n-1,1})=1
$

という結果を使って、 $ \nu_{n-1,1}+1$ の近くの零点として探すか、 それとも

$\displaystyle \nu_{n-1,1}<\nu_{n,1}<\nu_{n-1,2}
$

を使って、 $ \nu_{n-1,1}$ $ \nu_{n-1,1}$ の真中、 大体 $ \nu_{n-1,1}+\pi/2$ の近くの零点として探すか。
\includegraphics[width=10cm]{nun1.eps}
$ \nu_{n+1,1}-\nu_{n,1}$ はどれくらいか?
ListPlot[Table[Jroot[n,1]-Jroot[n-1,1],{n,100}]]

$ \nu_{n-1,1}+1$ くらいで良いのかな? 後は FindRoot[] の仕様を調べないと。



Subsections
桂田 祐史
2017-11-20