我想知道是否有人可以帮我解决问题。我一直在尝试使用有限差分来求解贝塞尔方程,因此我可以将问题转化为找到特征值和特征向量的问题。我期望从数值计算中获得的特征值与第一类贝塞尔方程的零点匹配,并且当绘制成特征向量时至少类似于贝塞尔函数的理论图。对于0,1,2和3阶贝塞尔方程获得的特征值似乎与期望值非常匹配(我将结果与每次前5个特征值的理论值进行比较)。阶数1,2和3的特征向量看起来与贝塞尔函数理论图非常相似,但对于零贝塞尔函数,特征向量看起来不像贝塞尔函数。 这是第一类零阶贝塞尔函数的代码:
nr=500
Nr=nr+2
r=zeros(Float64,Nr)
V=zeros(Float64,nr)
A=zeros(Float64,nr,nr)
for z=1:Nr
r[z]=(z-1)/(Nr-1)
end
for z = 1:nr
if z == 1
A[z,z]= (1/(r[z+1]*(r[z+1+1] - r[z-1+1])))*( ((r[z+1+1] + r[z+1])/(r[z+1+1] - r[z+1])) )
end
if z > 1
A[z,z]= (1/(r[z+1]*(r[z+1+1] - r[z-1+1])))*( ((r[z+1] + r[z-1+1])/(r[z+1] - r[z-1+1])) + ((r[z+1+1] + r[z+1])/(r[z+1+1] - r[z+1])) )
A[z,z-1]=-(r[z+1]+r[z-1+1])/((r[z+1]-r[z-1+1])*sqrt(r[z+1]*r[z-1+1]*(r[z+1]-r[z-2+1])*(r[z+1+1]-r[z-1+1])))
A[z-1,z]=A[z,z-1]
end
end
deleteat!(r,1)
deleteat!(r,Nr-1)
W,V1=eigs(A,nev=5, which=:SM ,ritzvec=true)
for z=1:5
W[z]=sqrt(W[z])
end
plot(r,V1[:,1])
以下是从eigs获得的前五个特征值
2.40483
5.52007
8.65368
11.7914
14.9305
此处还有零阶Bessel函数的理论零
2.40482555769577
5.52007811028631
8.65372791291101
11.7915344390142
14.9309177084877
此处还有0,1,2和3阶特征向量的图。
Eigenvectors for Bessel function
所以...我希望有人可以帮助我...谢谢!