這個計算器的功能
本工具用來計算廣義連分數,其形式為 \(f(x) = b_0 + \cfrac{a_1}{b_1 + \cfrac{a_2}{b_2 + \cfrac{a_3}{b_3 + \cdots}}}\)。它最大的特色在於:開頭項 \(b_0\)、第 \(n\) 個分子 \(a_n\) 以及第 \(n\) 個分母 \(b_n\),都是以數學運算式輸入的,並且可以同時依賴變數 \(x\) 與項次編號 \(n\)。計算器會代入你指定的 \(x\),依序產生 \(n = 1, 2, 3, \ldots\) 的各項,最後回報收斂值 \(f(x)\),並附上逐階收斂分數 \(f_n(x)\) 的表格。這是一個純粹的數值分析工具,普遍適用於任何情境——不涉及任何地區規定或單位換算。
使用方式
請輸入三個運算式以及一個 \(x\) 值。每個運算式都可以使用符號 \(x\) 與 \(n\)、運算子 + - * / ^(次方),以及函數 sqrt、exp、ln、log、sin、cos、tan,還有常數 pi 與 e。你可以選擇有效數字位數來控制結果的顯示方式(這只會影響收斂的容許誤差與顯示,不會改變底層的數學運算)。結果欄會顯示 \(f(x)\) 以及達到收斂時的項次 \(n\);下方表格則列出前幾階的收斂分數,讓你清楚看到數值如何逐步穩定下來。
公式說明
各階收斂分數由前向基本遞迴關係(forward fundamental recurrence)產生。起始值為 \(A_{-1} = 1\)、\(A_0 = b_0\)、\(B_{-1} = 0\)、\(B_0 = 1\),接著每一層都依下式更新:$$A_n = b_n A_{n-1} + a_n A_{n-2}$$ $$B_n = b_n B_{n-1} + a_n B_{n-2}$$ 而第 \(n\) 階收斂分數即為 \(f_n = A_n / B_n\)。當連續兩階收斂分數在所要求的精度下一致時,迭代即停止;若始終未收斂,最多計算到 1000 項為止。
實例演練
以預設值 \(b_0 = 1\)、\(a_n = x - 1\)、\(b_n = 2\),並取 \(x = 5\) 為例。這正是 \(\sqrt{x}\) 的經典連分數展開:$$\sqrt{x} = 1 + \cfrac{x-1}{2 + \cfrac{x-1}{2 + \cdots}}$$ 當 \(x = 5\) 時,每個分子都是 4、每個分母都是 2。前幾階收斂分數為 \(f_1 = 3\)、\(f_2 = 2\)、\(f_3 = 2.3333\ldots\)、\(f_4 = 2.2\),逐步逼近 \(\sqrt{5} = 2.2360679774997896\)。其不動點 \(t = 2 + 4/t\) 的解為 \(t = 1 + \sqrt{5}\),因此 \(f = 1 + \cfrac{4}{1+\sqrt{5}} = \sqrt{5}\)。
常見問題
\(a_n\) 與 \(b_n\) 可以依賴項次 \(n\) 嗎?可以。例如函數 \(x/(e^x - 1)\) 即可寫成 \(b_0 = 1 - x/2\)、\(a_n = x^2/4\)、\(b_n = 2n + 1\),其中 \(b_n\) 會隨 \(n\) 增大。
如果某個分母變成 0 怎麼辦?求值器會代入一個極小的 epsilon 讓計算繼續進行,做法仿照改良式 Lentz 法(modified Lentz method);若持續無法收斂,系統會提出警示。
為什麼到 1000 項就停止?那是安全上限。若到達該上限仍未收斂,計算器會回傳最後一階的收斂分數,並附上警告訊息。