通过MCP连接 →

输入计算

数学公式

数学公式: 斯特鲁夫函数表计算器

广告

结果

斯特鲁夫函数表
101 rows
x H_v(x)
-10 -0.118744
-9.8 -0.168864
-9.6 -0.215832
-9.4 -0.257766
-9.2 -0.292944
-9 -0.319876
-8.8 -0.337369
-8.6 -0.344577
-8.4 -0.341042
-8.2 -0.326718
-8 -0.301988
-7.8 -0.267652
-7.6 -0.224912
-7.4 -0.175329
-7.2 -0.120778
-7 -0.063383
-6.8 -0.005439
-6.6 0.050667
-6.4 0.102542
-6.2 0.147882
-6 0.184555
-5.8 0.210686
-5.6 0.224733
-5.4 0.225551
-5.2 0.212448
-5 0.185217
-4.8 0.144157
-4.6 0.090077
-4.4 0.02428
-4.2 -0.051474
-4 -0.135015
-3.8 -0.22383
-3.6 -0.315144
-3.4 -0.406008
-3.2 -0.493396
-3 -0.574306
-2.8 -0.645865
-2.6 -0.705422
-2.4 -0.750648
-2.2 -0.779613
-2 -0.790859
-1.8 -0.783452
-1.6 -0.757025
-1.4 -0.711792
-1.2 -0.64855
-1 -0.568657
-0.8 -0.473994
-0.6 -0.366911
-0.4 -0.25015
-0.2 -0.126759
0 0
0.2 0.126759
0.4 0.25015
0.6 0.366911
0.8 0.473994
1 0.568657
1.2 0.64855
1.4 0.711792
1.6 0.757025
1.8 0.783452
2 0.790859
2.2 0.779613
2.4 0.750648
2.6 0.705422
2.8 0.645865
3 0.574306
3.2 0.493396
3.4 0.406008
3.6 0.315144
3.8 0.22383
4 0.135015
4.2 0.051474
4.4 -0.02428
4.6 -0.090077
4.8 -0.144157
5 -0.185217
5.2 -0.212448
5.4 -0.225551
5.6 -0.224733
5.8 -0.210686
6 -0.184555
6.2 -0.147882
6.4 -0.102542
6.6 -0.050667
6.8 0.005439
7 0.063383
7.2 0.120778
7.4 0.175329
7.6 0.224912
7.8 0.267652
8 0.301988
8.2 0.326718
8.4 0.341042
8.6 0.344577
8.8 0.337369
9 0.319876
9.2 0.292944
9.4 0.257766
9.6 0.215832
9.8 0.168864
10 0.118744

什么是斯特鲁夫函数?

斯特鲁夫函数 \(\mathbf{H}_{v}(x)\) 是一种特殊函数,它是非齐次贝塞尔方程的一个特解。这个函数常常出现在声学、流体力学、光学和电磁学等问题中,通常与普通的贝塞尔函数一同登场。本计算器可以列出任意实数阶 \(v\) 的斯特鲁夫函数 \(\mathbf{H}_{v}(x)\) 在一段指定 \(x\) 取值序列上的数值表,方便你观察它那种振荡且缓慢衰减的特性。它属于纯数学范畴,普遍适用,不依赖任何地区或单位制。

几个阶数下斯特鲁夫函数的振荡衰减曲线
对若干不同阶数 \(v\),斯特鲁夫函数 \(H_v(x)\) 关于 \(x\) 的图像。

如何使用本计算器

请输入四个数值:阶数 \(v\)(斯特鲁夫函数的阶)、\(x\) 的初始值(第一个自变量)、步长(相邻 \(x\) 值之间的间隔)以及重复次数(要生成多少行)。随后表格会逐行列出每个自变量 \(x_{i} = \text{startX} + i \times \text{stepX}\) 及其对应的函数值 \(\mathbf{H}_{v}(x_{i})\)。使用默认值(\(v = 0\),起始值 \(= -10\),步长 \(= 0.2\),行数 \(= 101\))时,你会得到 101 个数据点,使 \(x\) 从 \(-10\) 扫到 \(+10\)。

公式解析

函数值直接由上方所示的幂级数求得。

$$\mathbf{H}_{v}(x) = \left(\frac{x}{2}\right)^{v+1} \sum_{k=0}^{\infty} \frac{(-1)^{k}\left(\frac{x}{2}\right)^{2k}}{\Gamma\!\left(k+\frac{3}{2}\right)\,\Gamma\!\left(k+v+\frac{3}{2}\right)}$$

令 \(t = x/2\),则前置因子为 \(t^{v+1}\),每一项为 \((-1)^{k} t^{2k}\) 除以两个伽马函数的乘积,即 \(\Gamma(k + 3/2)\) 与 \(\Gamma(k + v + 3/2)\)。伽马函数采用数值稳定的 Lanczos 近似计算;当其自变量为非正数时,使用反射公式 \(\Gamma(z) = \pi / (\sin(\pi z)\,\Gamma(1 - z))\)。在 \(|x|\) 适中时,这个交错级数收敛得很快。

Advertisement
斯特鲁夫函数幂级数各项的示意图
该级数对以 \(x/2\) 的幂和两个伽马函数缩放的正负交替项求和。

实例演算

取 \(v = 0\)、\(x = 2\),则 \(t = 1\),前置因子为 1。将级数逐项相加:

$$1.273240 - 0.565884 + 0.090542 - 0.007391 + 0.000365 - \ldots \approx 0.79066$$

于是 \(\mathbf{H}_{0}(2) \approx 0.79066\),与标准参考值一致。

常见问题

\(\mathbf{H}_{v}(0)\) 等于多少?对于任意阶 \(v > -1\),前置因子 \((x/2)^{v+1}\) 在 \(x = 0\) 处为零,因此 \(\mathbf{H}_{v}(0) = 0\)。

能使用负数阶或非整数阶吗?可以。当 \(x\) 为负且 \(v\) 为非整数时,函数值会变为复数,因此这些行会以非数字(NaN)形式标出;而当 \(v = 0\) 或为整数阶时,整张表都保持为实数。

计算精度如何?在默认范围内,直接级数法精度很高。但对于 \(|x|\) 非常大的情形(大约超过 30),就需要累加很多项,此时改用渐近展开式会更合适。

最后更新: