如何在mathematica中获得实数的最佳近似分数

时间:2011-01-20 04:54:48

标签: wolfram-mathematica

如果我想获得给定实数的最佳近似分数/理性,并将特定的最大分母作为整数,如何在mathematica中执行此操作?非常感谢。

2 个答案:

答案 0 :(得分:4)

Convergentscontinued fractions提供了一种有用的方法,可以更好,更好地对无理数进行分数表示。我还发现它们有助于通过Euclidean algorithm了解与其他想法的联系。

让我们使用收敛来近似pi和2的平方根。

ClearAll[approximate];

approximate[r_, nConvergents_: 8, precision_: 10] := 
   With[{c = Convergents[ContinuedFraction[r, nConvergents]]}, 
   TableForm[Transpose[{c, N[r - c, precision]}], 
   TableHeadings -> {None, {Row[{"approximation of ", r}], "error"}}]]

以下是pi的前8个收敛点:

approximate[Pi]

approximate pi

以下是Sqrt[2]的前8个收敛点:

approximate[Sqrt[2]]

approximate root 2

随着收敛的进展,连续的误差项缩小和交替方向。

approximate中,您可以选择指定收敛数和所需精度。

享受。


这里有一些关于连续分数的额外documentation,包括一些可爱的演示。

答案 1 :(得分:3)

查看Rationalize的帮助。 RootApproximant也很有用