通过MCP连接 →

输入计算

表达式可使用 x、n、+ - * / ^ sqrt exp ln log sin cos tan pi e。例如 sqrt(x):b0=1,a_n=x-1,b_n=2。

数学公式

广告

结果

f(x)
2.23606797749979
converged at n = 40 (14 significant digits requested)
n 逐级渐近分数 f_n(x)
1 3
2 2
3 2.3333333333333335
4 2.2
5 2.25
6 2.230769230769231
7 2.238095238095238
8 2.235294117647059
9 2.2363636363636363
10 2.235955056179775
11 2.236111111111111
12 2.236051502145923
13 2.236074270557029
14 2.236065573770492
15 2.236068895643364
16 2.2360676268002506
17 2.236068111455108
18 2.236067926333413
19 2.2360679970436066
20 2.236067970034716
21 2.2360679803511943
22 2.23606797641065
23 2.236067977915804
24 2.2360679773408862
25 2.2360679775604853
26 2.236067977476606
27 2.236067977508645
28 2.236067977496407
29 2.2360679775010817
30 2.2360679774992964

这个计算器能做什么

本工具用于求解形如 $$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\)、… 各项,最终给出收敛值 \(f(x)\),并附上一张逐级渐近分数 \(f_n(x)\) 的表格。它是一款纯数值分析工具,普遍适用,不涉及任何地区性规则或单位差异。

使用方法

输入三个表达式以及一个 \(x\) 的取值。每个表达式都可以使用符号 \(x\) 和 \(n\)、运算符 + - * / ^(乘方),以及函数 sqrt、exp、ln、log、sin、cos、tan,还有常数 pi 和 e。通过选择有效数字位数来控制结果的显示精度(这只影响收敛容差和显示方式,并不改变底层数学)。结果框会显示 \(f(x)\) 以及达到收敛时所对应的项序号 \(n\);下方表格列出最初的若干渐近分数,方便你观察数值如何逐步稳定下来。

公式详解

各渐近分数由前向基本递推关系生成。以 \(A_{-1} = 1\)、\(A_0 = b_0\)、\(B_{-1} = 0\)、\(B_0 = 1\) 为起点,每增加一层就计算 \(A_n = b_n \cdot A_{n-1} + a_n \cdot A_{n-2}\) 以及 \(B_n = b_n \cdot B_{n-1} + a_n \cdot B_{n-2}\),第 n 个渐近分数即为 \(f_n = A_n / B_n\)。当相邻两个渐近分数达到所要求的精度时迭代停止,或者在累计达到 1000 项的硬性上限时强制结束。

含 b0、a1、b1、a2、b2 各项的广义连分数嵌套阶梯图
广义连分数 \(f(x) = b_0 + a_1/(b_1 + a_2/(b_2 + \ldots))\) 的嵌套结构。

实例演示

采用默认值 \(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 + 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\) 增大。

如果某个分母变为零怎么办?求值器会代入一个极小的 epsilon 让计算继续进行,这与改进的 Lentz 方法(modified Lentz method)思路一致;若始终无法收敛,则会给出提示。

为什么会在 1000 项处停止?这是一个安全上限。如果到那时连分数仍未收敛,工具会返回最后一个渐近分数并附带警告。

最后更新: