# besselj
第一类 Bessel 函数
函数库: TyMath
# 语法
J = besselj(nu,z)
J = besselj(nu,z,scale)
# 说明
J = besselj(nu,z) 为数组 z 中的每个元素计算第一类 Bessel 函数
J = besselj(nu,z,scale) 指定是否呈指数缩放第一类修正 Bessel 函数以避免溢出或精度损失。如果 scale 为 1,则 besselj 的输出按因子
# 示例
绘制第一类 Bessel 函数图
定义域。
using TyMath
using TyPlot
z = 0:0.1:20
计算前五个第一类 Bessel 函数。I 的每一行包含在 z 中的点上计算的某阶函数的值。
J = zeros(5,201)
for i = 0:4
J[i+1,:] = besselj.(i,z)
end
在同一图窗中绘制所有函数。
hold("on")
for i = 1:5
plot(z,J[i,:])
end
grid("on")
legend([raw"$J_0$",raw"$J_1$",raw"$J_2$",raw"$J_3$",raw"$J_4$"])
title("v∈[0,4]的第一类Bessel函数")
xlabel("z")
ylabel(raw"$J_v(z)$")
hold("off")
计算呈指数缩放的 Bessel 函数
为 z 的复数值计算未缩放的 (J) 和经过缩放的 (Js) 第一类 Bessel 函数
using TyMath
using TyBase
using TyPlot
x = [-10:0.3:10...]'
y = x'
z = x .+ 1im .* y
scale = 1
Y = besselj.(2, z)
Js = besselj.(2, z, scale)
在同一图窗中绘制所有函数。对于 z 的大值,经过缩放的函数不会像未缩放的函数一样快速下溢出双精度的限制,从而扩展了其可计算性范围。
X,Y = meshgrid2(vec(collect(x)),y)
surf(X,Y,imag.(J))
xlabel("real(z)")
ylabel("imag(z)")

# 输入参数
nu - 方程的阶标量 | 向量 | 矩阵 | N 维数组
方程的阶,指定为标量、向量、矩阵或多维数组。nu 指定 Hankel 函数的阶。nu 和 x 的大小必须相同,或者其中一个可以为标量。
示例: besselj.(3,0:5)
数据类型: Int64 | Int32 | Int16 | Int128 | Float64 | Float32 | Float16 | UInt
z - 函数的域标量 | 向量 | 矩阵 | N 维数组
函数的域,指定为标量、向量、矩阵或多维数组。nu 和 z 的大小必须相同,或者其中一个可以为标量。
示例: besselj.(1,[1-1im 1+0im 1+1im])
数据类型: Int64 | Int32 | Int16 | Int128 | Float64 | Float32 | Float16 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128 | Complex
复数支持: 是
scale - 切换到缩放函数0(默认) | 1
切换到缩放函数,指定为下列值之一:
- 0(默认值) - 无缩放;
- 1 - 按
缩放 besselj 的输出。
在复平面上,besseli 的模随着
示例:besselj.(3,0:5,1)
# 详细信息
Bessel 函数
# 提示
Bessel 函数与 Hankel 函数相关,也称为第三类 Bessel 函数,