什麼是對數積分 li(x)?
對數積分(寫作 \(\operatorname{li}(x)\))是一個特殊函數,定義為 \(1/\ln(t)\) 從 0 到 \(x\) 的積分。由於被積函數在 \(t = 1\) 處有奇點,因此當 \(x > 1\) 時,這個積分要以柯西主值(Cauchy principal value)來計算。這個函數在解析數論中扮演核心角色:質數定理指出,質數計數函數 \(\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 次,會列出從 2.0 到 14.0 的 \(x\) 值。
公式解析
我們以 \(\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\dots\) 為歐拉—馬斯刻若尼常數(Euler-Mascheroni constant)。級數會持續累加,直到每一項相對於目前的總和已小到可忽略為止。邊界情況遵循標準慣例:當 \(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\)(即拉馬努金—索爾德納常數,Ramanujan-Soldner constant),此時 \(\operatorname{li}(x) = 0\)。
常見問題
為什麼 li(x) 在 x = 1 附近會發散?被積函數 \(1/\ln(t)\) 在 \(t = 1\) 處有奇點,因此 \(\operatorname{li}(1) = -\infty\),函數在這一點附近會劇烈變化。
這是 li(x) 還是 Li(x)?這是下限為 0、不含偏移的 \(\operatorname{li}(x)\)。偏移版本 \(\operatorname{Li}(x)\) 則會再扣除 \(\operatorname{li}(2)\)。
如果我的起始值是 0 或負數會怎樣?當 \(x \le 0\) 時,實數的對數積分沒有定義,因此計算器對這些列會回傳 0。