2026a

# bessely


第二类 Bessel 函数

函数库: TyMath

# 语法

Y = bessely(nu,z)
Y = bessely(nu,z,scale)

# 说明

Y = bessely(nu,z) 为 z 计算第二类 Bessel 函数 示例


Y = bessely(nu,z,scale) 指定是否呈指数缩放第二类 Bessel 函数以避免溢出或精度损失。如果 scale 为 1,则 bessely 的输出按因子 进行缩放。示例

# 示例

绘制第二类 Bessel 函数图

定义域。

using TyMath
using TyPlot
z = 0:0.1:20

计算前五个第二类 Bessel 函数。Y 的每一行包含在 z 中的点上计算的某阶函数的值。

Y = zeros(5,201)
for i = 0:4
Y[i+1,:] = bessely.(i,z)
end

在同一图窗中绘制所有函数。

hold("on")
for i = 1:5
plot(z,Y[i,:])
end
axis([-0.1 20.2 -2 0.6])
grid("on")
legend([raw"$Y_0$",raw"$Y_1$",raw"$Y_2$",raw"$Y_3$",raw"$Y_4$"])
title("v∈[0,4]的第二类Bessel函数")
xlabel("z")
ylabel(raw"$Y_v(z)$")
hold("off")
计算呈指数缩放的 Bessel 函数

为 z 的复数值计算未缩放的 (Y) 和经过缩放的 (Ys) 第二类 Bessel 函数

using TyMath
using TyPlot
x = [-10:0.35:10...]'
y = x'
z = x .+ 1im * y
scale = 1
Y = bessely.(2, z)
Ys = bessely.(2, z, scale)

比较经过缩放的函数和未缩放函数的虚部图。对于 的大值,未缩放的函数很快上溢超出双精度的限制,不再可计算。经过缩放的函数从计算中消除了这种占主导状态的指数行为,因此与未缩放的函数相比,具有更大的可计算性范围。

X1,Y1 = meshgrid2(vec(collect(x)),y)
surf(X1,Y1,imag.(Y))
title("第二类bessel函数")
xlabel("real(z)")
ylabel("imag(z)")
surf(X1,Y1,imag.(Ys))
title("缩放的第二类bessel函数")
xlabel("real(z)")
ylabel("imag(z)")

# 输入参数

nu - 方程的阶
标量 | 向量 | 矩阵 | N 维数组

方程的阶,指定为标量、向量、矩阵或多维数组。nu 指定 Hankel 函数的阶。nu 和 x 的大小必须相同,或者其中一个可以为标量。

示例: bessely.(3,0:5)

数据类型: Int64 | Int32 | Int16 | Int128 | Float64 | Float32 | Float16 | UInt

z - 函数的域
标量 | 向量 | 矩阵 | N 维数组

函数的域,指定为标量、向量、矩阵或多维数组。nu 和 Z 的大小必须相同,或者其中一个可以为标量。

示例: bessely.(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 - 按因子 缩放 bessely 的输出。

在复平面上,bessely 的模随着 的值增加而快速增长,因此呈指数缩放输出对于 abs(imag(z)) 的大值很有用;如果不这样处理,结果会很快损失精度或上溢超出双精度的限制。

示例:bessely.(3,0:5,1)

# 详细信息

Bessel 函数

以下微分方程(其中 ν 是实数常量)称为 Bessel 方程:

它的解称为 Bessel 函数。

第一类 Bessel 函数(表示为 )构成非整数v的 Bessel 方程的一组基本解。 通过以下方式定义:

您可以使用 besselj 计算第一类Bessel函数

第二类 Bessel 函数(表示为)构成了 Bessel 方程的另一个解,与 线性无关。 通过以下方程定义:

# 提示

Bessel 函数与 Hankel 函数相关,也称为第三类 Bessel 函数,

是 besselh,是 bessely, 是 bessely。Hankel 函数同样构成 Bessel 方程的一组基本解(请参见 besselh)。

# 另请参阅

besselh | besseli | besselj | besselk