2026a
# besselh
用于符号表达的第三类贝塞尔函数(汉克尔函数)
函数库: TySymbolicMath
# 语法
# 说明
H = besselh(nu,K,z) 对复数数组 z 的每个元素计算汉克尔函数
H = besselh(nu,K,z) 如果 K = 1,汉克尔函数
# 示例
计算汉克尔函数
using TySymbolicMath
@variables z
H = besselh(3/2,1,z)
H = SpecialFunctions.besselj(1.5, z) + im*SpecialFunctions.bessely(1.5, z)
在 z = 1 + 2im 处对函数进行数值求值。
Hval = besselh(3/2,1,1 + 2im)
Hval = -0.08495334128058647 - 0.056674847869835586im
指定不带第二个参数的函数,即 K = 1。
H2 = besselh(3/2,z)
H2 = SpecialFunctions.besselj(1.5, z) + im*SpecialFunctions.bessely(1.5, z)
请注意,函数 H 和 H2 是相同的。
通过对函数输入四个参数来用
Hnew = besselh(3/2,1,z,1)
Hnew = -SpecialFunctions.bessely(1.5, z)*sin(-z) + cos(-z)*SpecialFunctions.besselj(1.5, z) + im*(SpecialFunctions.bessely(1.5, z)*cos(-z) + SpecialFunctions.besselj(1.5, z)*sin(-z))
对 H 进行求导:
diffH = derivative(H,z)
diffH = (1//2)*(SpecialFunctions.besselj(0.5, z) - SpecialFunctions.besselj(2.5, z)) + (1//2)*im*(SpecialFunctions.bessely(0.5, z) - SpecialFunctions.bessely(2.5, z))
求 diffH 在 z = 2.5 处的值。
substitute(diffH, Dict([z => 2.5]))
ans = -0.013043252736036348 + 0.4884544533391028im
# 输入参数
nu - 汉克尔函数阶数数组 | 符号数组
汉克尔函数阶数,指定为数组或符号数组。如果 nu 和 z 是相同大小的数组,则结果也是相同大小的数组。如果任一输入是标量,besselh 函数会将其扩展到另一输入的大小。
示例:nu = 3/2,nu = Num(3/2)
K - 汉克尔函数的种类1 | 2
汉克尔函数的种类,指定为1或2。K 确定添加的贝塞尔函数
示例:K = 1
z - 汉克尔函数参数数组 | 符号数组
汉克尔函数参数,指定为数组或符号数组。如果 nu 和 z 是相同大小的数组,则结果也是相同大小的数组。如果任一输入是标量,besselh 函数会将其扩展到另一输入的大小。
示例:z = 1+im,z = Num(1)+im
# 详细信息
贝塞尔方程
微分方程:
其中 ν 是一个实常数,这个方程被称为贝塞尔方程,其解被称为贝塞尔函数。
汉克尔函数和贝塞尔函数之间的关系是:
其中,