2026a

# besseli


第一类修正 Bessel 函数

函数库: TyMath

# 语法

I = besseli(nu,z)
I = besseli(nu,z,scale)

# 说明

I = besseli(nu,z) 为数组 z 中的每个元素计算第一类修正 Bessel 函数 示例


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

# 示例

绘制第一类修正 Bessel 函数

定义域。

using TyMath
using TyPlot
z = 0:0.01:5

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

I = zeros(5,501)
for nu = 0:4
I[nu+1,:] = besseli.(nu,z)
end

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

hold("on")
for i = 1:5
plot(z,I[i,:])
end
axis([0 5 0 8])
grid("on")
legend([raw"$I_0$",raw"$I_1$",raw"$I_2$",raw"$I_3$",raw"$I_4$"])
title("v∈[0,4]的第一类修正Bessel函数")
xlabel("z")
ylabel(raw"$I_v(z)$")
hold("off")
计算呈指数缩放的修正 Bessel 函数

对于 z 在区间 [0,20] 中的值和 0 到 3 之间的阶 ν,计算经过缩放的第一类修正 Bessel 函数

using TyMath
using TyBase
using TyPlot
z = LinRange(0,20,100)
scale = 1
Is = zeros(4,100)
for nu = 0:3
  Is[nu+1,:] = besseli.(nu,z,scale)
end

在同一图窗中绘制所有函数。对于 z 的大值,经过缩放的函数不会上溢超出双精度的限制,与未缩放的函数相比,扩展了其可计算性的范围。

hold("on")
for i = 1:4
    plot(z,Is[i,:])
end
legend([raw"$I_0$",raw"$I_1$",raw"$I_2$",raw"$I_3$"])
title("v∈[0,3]的缩放的第一类修正Bessel函数")
xlabel("z")
ylabel(raw"$e^{-|{z}|} \cdot I_\nu(z)$")
hold("off")

# 输入参数

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

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

示例: besseli(3,z)

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

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

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

示例: besseli.(nu,[1-1im 1+0im 1+1im])

数据类型: Int64 | Int32 | Int16 | Int128 | Float64 | Float32 | Float16 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128 | Complex

复数支持:

scale - 切换到缩放函数
0(默认) | 1

切换到缩放函数,指定为下列值之一:

  • 0(默认值) - 无缩放;
  • 1 - 按因子 进行缩放。

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

示例:besseli.(nu,z,1)

# 详细信息

修正 Bessel 函数

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

它的解称为修正 Bessel 函数。

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

第二类修正 Bessel 函数(表示为)构成独立于的另一个解,它通过以下方程定义:

您可以使用 besselk 计算第二类修正 Bessel 函数。

# 另请参阅

airyai | airybi | besselh | besselj | besselk | bessely