什麼是對數積分函數 li(x)?
對數積分函數記作 \(\operatorname{li}(x)\),是一個特殊函數,定義為 \(1/\ln(t)\) 從 0 到 x 的積分。它在解析數論中無所不在,最著名的應用是在質數定理(Prime Number Theorem)中,作為質數計數函數 \(\pi(x)\) 的主階近似:小於 x 的質數個數大約等於 \(\operatorname{li}(x)\)。由於被積函數在 \(t = 1\) 處有奇點(極點),因此當 \(x > 1\) 時,這個積分要以柯西主值(Cauchy principal value)來解釋,這也是標準定義。
如何使用本計算器
輸入任意滿足 \(x > 0\) 且 \(x \ne 1\) 的實數,計算器會以完整雙精度(約 15 位有效數字)回傳 \(\operatorname{li}(x)\) 的值。當 x 介於 0 與 1 之間時,結果為有限的負值;\(\operatorname{li}(0) = 0\),而 \(\operatorname{li}(1)\) = 負無限大(會顯示為未定義)。當 \(x \le 0\) 時,實數值的 \(\operatorname{li}(x)\) 未定義。
公式解析
本工具採用恆等式 \(\operatorname{li}(x) = \operatorname{Ei}(\ln x)\),其中 \(\operatorname{Ei}\) 為指數積分函數。令 \(u = \ln(x)\),並使用尤拉–馬斯刻若尼常數 \(\gamma = 0.5772156649\),即可透過以下收斂級數計算:
$$\operatorname{li}(x) = \gamma + \ln|u| + \sum_{k=1}^{\infty} \frac{u^{k}}{k \cdot k!}$$此級數對所有不等於 0 的實數 u 皆收斂,計算時會持續累加,直到每一項小於累計總和約 \(1\mathrm{e}{-18}\) 為止。
實例演算
以 \(x = 2\) 為例:\(u = \ln(2) = 0.6931472\),\(\ln|u| = -0.3665129\),級數總和約為 0.8344608。再加上 \(\gamma\),可得
$$\operatorname{li}(2) = 0.5772157 - 0.3665129 + 0.8344608 = 1.04516378$$與已知的參考值 1.0451637801 吻合。
常見問題
為什麼 \(\operatorname{li}(1)\) 是無限大?當 t 從大於 1 的方向趨近 1 時,被積函數 \(1/\ln(t)\) 會發散,因此 \(\operatorname{li}(x)\) 在 \(x = 1\) 處趨向負無限大。
\(\operatorname{li}(x)\) 在哪裡等於零?在拉馬努金–索德納常數(Ramanujan–Soldner constant)處,約為 \(x \approx 1.4513692349\)。
\(\operatorname{li}(x)\) 和 \(\operatorname{Li}(x)\) 是同一個函數嗎?偏移版本 \(\operatorname{Li}(x) = \operatorname{li}(x) - \operatorname{li}(2)\) 有時會被使用,使得 \(\operatorname{Li}(2) = 0\);本計算器回傳的是未偏移的 \(\operatorname{li}(x)\)。