把 x 转换为一个“最简单的”代数近似数.
RootApproximant[x,n]
找出 x 的阶数至多为 n 的代数近似数.
RootApproximant
把 x 转换为一个“最简单的”代数近似数.
RootApproximant[x,n]
找出 x 的阶数至多为 n 的代数近似数.
更多信息和选项
- 对 2 以上的阶数,RootApproximant 生成 Root 对象.
- RootApproximant[x] 依次地有效测试描述 x 的更高阶代数数总位数,返回第一个位数少的数.
- RootApproximant 的结果可能不是唯一的.
- MinimalPolynomial 对于 RootApproximant 的结果,给出最小多项式.
- 选项 Method->{"DegreeCost"->p} 指定对每个先后高幂数花费一个额外的成本 p 来决定“最简单的”近似数.
范例
打开所有单元 关闭所有单元基本范例 (2)
范围 (4)
没有一个简单的二次近似 N
:
RootApproximant[N[Sqrt[2] + Sqrt[3]], 2]RootApproximant[N[Sqrt[2] + Sqrt[3]], 4]RootReduce[Sqrt[2] + Sqrt[3]] == %机器的精确度不够恢复 Root 对象等于
:
RootApproximant[N[Sqrt[2] + Sqrt[3] + Sqrt[5]], 8]RootReduce[Sqrt[2] + Sqrt[3] + Sqrt[5]] == %RootApproximant[N[Sqrt[2] + Sqrt[3] + Sqrt[5], 30], 8]RootReduce[Sqrt[2] + Sqrt[3] + Sqrt[5]] == %当给出精确输入, RootApproximant 使用机器精度近似:
RootApproximant[E, 3]RootApproximant[N[E], 3]%% == %RootApproximant 与复数一起应用:
RootApproximant[N[Sqrt[2] + I], 4]选项 (1)
应用 (2)
Table[RootApproximant[N[Pi, n]], {n, 5}]expr = (-1 + Sqrt[2] - Sqrt[(1 + 2 Sqrt[2] - s) (-1 + s)] + s) (-1 - Sqrt[2] + Sqrt[2] s - Sqrt[-1 - 2 Sqrt[2] + 2 (2 + Sqrt[2] - s) s]) - (-1 - Sqrt[2] + Sqrt[2] s + Sqrt[-1 - 2 Sqrt[2] + 2 (2 + Sqrt[2] - s) s]) (-2 - 2 Sqrt[2] + 2 s + 2 Sqrt[1 - (1/4) (-1 - Sqrt[2] + Sqrt[(1 + 2 Sqrt[2] - s) (-1 + s)] + s)^2]);FindRoot 用来找出接近 2.5 的实根:
x = s /. FindRoot[expr == 0, {s, 2.5}, WorkingPrecision -> 100]//ChopRootApproximant 用来找出接近根的代数数:
a = RootApproximant[x]expr /. s -> a//RootReduce属性和关系 (3)
RootApproximant 给出接近给定代数数的一个 Root 对象:
RootApproximant[Sqrt[2 + Sqrt[3]]]求得的 Root 不可能精确地等于输入:
a = Sqrt[2 + Sqrt[3 + Sqrt[5 + Sqrt[7]]]];
b = RootApproximant[a]N[a - b, 20]RootReduce 用来找出精确 Root 的代数表示:
RootReduce[a]RootApproximant[Pi, 1]Rationalize 也给出一合理的近似值,但不一定相同:
Rationalize[N[π], 0]FromContinuedFraction[ContinuedFraction[N[π], 15]]FromContinuedFraction[ContinuedFraction[π, 15]]LatticeReduce 用来识别更多一般函数的线性组合:
v = {1, ArcTan[1], ArcTan[1 / 5], ArcTan[1 / 239], 1};{a0, a1, a2, a3, a4} = Round[10 ^ 20 v];b = LatticeReduce[{{1, 0, 0, 0, -a0}, {0, 1, 0, 0, -a1}, {0, 0, 1, 0, -a2}, {0, 0, 0, 1, -a3}}]b[[1]].vN[%]可能存在的问题 (1)
a = Sqrt[5 + 2 6 ^ (1 / 3)];
b = RootApproximant[N[a], 10]RootReduce[a] == bc = RootApproximant[N[a], 6]RootReduce[a] == cRootApproximant[N[a], 10, Method -> {"DegreeCost" -> #}]& /@ {1, 2, 3}N[% - a, 20]RootApproximant[N[a, 25], 10]RootReduce[a] == %文本
Wolfram Research (2007),RootApproximant,Wolfram 语言函数,https://reference.wolfram.com/language/ref/RootApproximant.html (更新于 2008 年).
CMS
Wolfram 语言. 2007. "RootApproximant." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2008. https://reference.wolfram.com/language/ref/RootApproximant.html.
APA
Wolfram 语言. (2007). RootApproximant. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/RootApproximant.html 年
BibTeX
@misc{reference.wolfram_2026_rootapproximant, author="Wolfram Research", title="{RootApproximant}", year="2008", howpublished="\url{https://reference.wolfram.com/language/ref/RootApproximant.html}", note=[Accessed: 12-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_rootapproximant, organization={Wolfram Research}, title={RootApproximant}, year={2008}, url={https://reference.wolfram.com/language/ref/RootApproximant.html}, note=[Accessed: 12-November-2026]}