besselh
第三类贝塞尔函数(汉克尔函数)
说明
示例
渐近行为
绘制第二类汉克尔函数的实部和虚部,并检查其渐近行为。
计算区间 中的第二类汉克尔函数 。
k = 2; nu = 0; z = linspace(0.1,25,200); H = besselh(nu,k,z);
绘制函数的实部和虚部。在同一图窗中,绘制线性组合 ,这将显示实部和虚部的幅值的渐近行为。
plot(z,real(H),z,imag(H)) grid on hold on M = sqrt(real(H).^2 + imag(H).^2); plot(z,M,'--') legend('$J_0(z)$', '$Y_0(z)$', '$\sqrt{J_0^2 (z) + Y_0^2 (z)}$','interpreter','latex')
呈指数缩放的汉克尔函数
计算复平面上呈指数缩放的汉克尔函数 ,并将其与未缩放的函数进行比较。
计算复平面上的二阶未缩放汉克尔函数。当 z
的正虚部较大时,函数的值很快就会发散。这种现象限制了可计算值的范围。
k = 2; nu = 1; x = -5:0.4:15; y = x'; z = x + 1i*y; scaled = 1; H = besselh(nu,k,z); surf(x,y,imag(H)) xlabel('real(z)') ylabel('imag(z)')
现在,计算复平面上的 ,并将其与未缩放的函数进行比较。当 z
的正虚部较大时,经过缩放的函数通过避免溢出和精度损失来增大可计算值的范围。
Hs = besselh(nu,k,z,scaled); surf(x,y,imag(Hs)) xlabel('real(z)') ylabel('imag(z)')
输入参数
nu
— 方程的阶
标量 | 向量 | 矩阵 | 多维数组
方程的阶,指定为标量、向量、矩阵或多维数组。nu
指定汉克尔函数的阶。nu
和 Z
的大小必须相同,或者其中一个可以为标量。
示例: besselh(3,Z)
数据类型: single
| double
K
— 汉克尔函数的类别
1
(默认) | 2
汉克尔函数的类别,指定为 1
或 2
。
如果
K = 1
,则besselh
计算第一类汉克尔函数 。如果
K = 2
,则besselh
计算第二类汉克尔函数 。
示例: besselh(nu,2,Z)
Z
— 函数的域
标量 | 向量 | 矩阵 | 多维数组
函数的域,指定为标量、向量、矩阵或多维数组。nu
和 Z
的大小必须相同,或者其中一个可以为标量。
示例: besselh(nu,[1-1i 1+0i 1+1i])
数据类型: single
| double
复数支持: 是
scale
— 切换到缩放函数
0
(默认) | 1
切换到缩放函数,指定为下列值之一:
0
(默认值)- 无缩放1
- 根据K
的值缩放besselh
的输出:如果
K = 1
,则按 缩放第一类汉克尔函数 。如果
K = 2
,则按 缩放第二类汉克尔函数 。
在复平面上,当
imag(Z)
为大的负值时, 溢出。同样,当imag(Z)
为大的正值时, 也会溢出。在这两种情况下,呈指数缩放besselh
的输出很有用,因为如果不这样处理,则函数会很快损失精度或上溢超出双精度的限制。
示例: besselh(nu,K,Z,1)
详细信息
参考
[1] Abramowitz, M., and I.A. Stegun. Handbook of Mathematical Functions. National Bureau of Standards, Applied Math. Series #55, Dover Publications, 1965.
扩展功能
tall 数组
对行数太多而无法放入内存的数组进行计算。
此函数完全支持 tall 数组。有关详细信息,请参阅 tall 数组。
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
用法说明和限制:
始终返回复数结果。
不支持严格的单精度计算。在生成的代码中,单精度输入生成单精度输出。但是,函数内部的变量可能是双精度。
GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。
用法说明和限制:
始终返回复数结果。
不支持严格的单精度计算。在生成的代码中,单精度输入生成单精度输出。但是,函数内部的变量可能是双精度。
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
分布式数组
使用 Parallel Computing Toolbox™ 在集群的组合内存中对大型数组进行分区。
此函数完全支持分布式数组。有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox)。
版本历史记录
在 R2006a 之前推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)