什么是对数积分 li(x)?
对数积分记作 \(\operatorname{li}(x)\),是一个特殊函数,定义为 \(1/\ln(t)\) 从 0 到 \(x\) 的积分。由于被积函数在 \(t = 1\) 处存在奇点,当 \(x > 1\) 时,该积分要取柯西主值。这个函数在解析数论中举足轻重:素数定理指出,素数计数函数 \(\pi(x)\) 与 \(\operatorname{li}(x)\) 渐近相等,而 \(\operatorname{li}(x)\) 正是估计小于 \(x\) 的素数个数最精确的简单近似之一。本计算器采用的是无偏移定义 \(\operatorname{li}(x)\)(积分下限为 0),而不是欧拉变体 \(\operatorname{Li}(x) = \operatorname{li}(x) - \operatorname{li}(2)\)。
如何使用本计算器
请输入三个数值:\(x\) 的起始值、每一行递增的步长,以及迭代次数(行数)。工具会生成一张表格,其中第 \(i\) 行的 $$x = \text{起始值} + i \times \text{步长}$$ 并给出对应的 \(\operatorname{li}(x)\) 值。同时还会绘制出 \(\operatorname{li}(x)\) 随 \(x\) 变化的折线图。为了得到有意义的实数结果,起始值应大于 0;常用的默认区间为起始值 = 2、步长 = 0.2、迭代 61 次,即列出 \(x\) 从 2.0 到 14.0 的数值。
公式详解
我们通过 \(\operatorname{li}(x) = \operatorname{Ei}(\ln x)\) 来计算,其中 \(\operatorname{Ei}\) 是指数积分。\(\operatorname{Ei}(z)\) 采用收敛级数求和: $$\operatorname{Ei}(z) = \gamma + \ln|z| + \sum_{k=1}^{\infty}\frac{z^{k}}{k\cdot k!}$$ 式中 \(\gamma = 0.5772156649\ldots\) 是欧拉-马歇罗尼常数。级数会一直累加,直到每一项相对于当前和小到可以忽略为止。边界情况遵循标准约定:当 \(x \le 0\) 时返回 0;当 \(x = 1\) 时返回负无穷(即奇点)。
实例演算
当 \(x = 2\) 时,\(z = \ln 2 = 0.6931472\)。将 \(\gamma + \ln|z|\) 与级数相加,得到 \(\operatorname{Ei}(0.6931472) = 1.0451638\),于是 $$\operatorname{li}(2) = 1.04516378011749$$ 与公开的参考值完全吻合。\(\operatorname{li}(x)\) 唯一的正实数根位于 \(x = 1.45136923488\)(即拉马努金-索尔德纳常数),此处 \(\operatorname{li}(x) = 0\)。
常见问题
为什么 \(\operatorname{li}(x)\) 在 \(x = 1\) 附近会发散? 被积函数 \(1/\ln(t)\) 在 \(t = 1\) 处存在奇点,因此 \(\operatorname{li}(1) = -\infty\),函数在该点附近变化极为剧烈。
这是 \(\operatorname{li}(x)\) 还是 \(\operatorname{Li}(x)\)? 这里用的是积分下限为 0 的无偏移版本 \(\operatorname{li}(x)\)。偏移版本 \(\operatorname{Li}(x)\) 则要再减去 \(\operatorname{li}(2)\)。
如果起始值是 0 或负数怎么办? 当 \(x \le 0\) 时,实数域的对数积分没有定义,因此计算器会对这些行返回 0。