AlgebraicNumber[θ,{c0,c1,…,cn}]
表示由
给出的域
中的代数数.
AlgebraicNumber
AlgebraicNumber[θ,{c0,c1,…,cn}]
表示由
给出的域
中的代数数.
更多信息
- 在相同域中的 AlgebraicNumber 对象由算术运算自动组合.
- 生成元 θ 可以是任意代数数,以根或 Root 对象表示. 系数 ci 必须是整数或有理数.
- AlgebraicNumber 自动简化使 θ 成为代数整数,并且 ci 的列表长度与 θ 的极小多项式次数相等.
- AlgebraicNumber 对象总是作为数值量处理.
- N 求出一个 AlgebraicNumber 对象的近似数值.
- Abs、 Re、 Round 和 Less 一类的运算可用于 AlgebraicNumber 对象.
- RootReduce 可用于 AlgebraicNumber 对象到 Root 对象的变换.
- 作为 AlgebraicNumber 对象的一个特定代数数可以有多种不同表示. 每种表示都由为该域指定的生成元 θ 表征.
- 表示整数或有理数的 AlgebraicNumber 对象自动简化为明确的整数或有理形式.
范例
打开所有单元 关闭所有单元基本范例 (1)
范围 (7)
AlgebraicNumber 对象可以计算至任意精度:
N[AlgebraicNumber[Sqrt[2] I, {1, -1}], 50]AlgebraicNumber[3, {1, 2}]AlgebraicNumber[5 / 2, {3, 2}]AlgebraicNumber[θ,{c0,…,cn}] 中的生成元 θ 将自动化简为代数整数:
AlgebraicNumber[(1 + I) / 2, {1, 3}]AlgebraicNumber[Sqrt[Sqrt[2] + 1], {1, 2, 1, 2}]Root 对象:
AlgebraicNumber[Root[5# ^ 5 + 11# + 1&, 1], {1, 1, 2}]AlgebraicNumber 对象:
AlgebraicNumber[AlgebraicNumber[Root[-3 + #1^3&, 1], {1, 2, 1}], {1, 1, 2}]AlgebraicNumber 对象的系数为整数或有理数:
AlgebraicNumber[Sqrt[2] + Sqrt[5], {1, 1 / 2}]AlgebraicNumber[3 ^ (1 / 5), {1, 2, 1}]AlgebraicNumber[3 ^ (1 / 5), {1, 2, 1, 3, 3, 1}]AlgebraicNumber[Sqrt[2], {1, 1 / 2}] + AlgebraicNumber[Sqrt[2], {1, 2}]AlgebraicNumber[Sqrt[2], {1, 1 / 2}] * AlgebraicNumber[Sqrt[2], {1, 2}]1 / AlgebraicNumber[Sqrt[2], {1, 1 / 2}]AlgebraicNumber[Sqrt[2], {1, 1 / 2}] ^ 3AlgebraicNumber 对象运算:
a = AlgebraicNumber[Root[-1 + #1 + #1^3&, 1], {0, -1, 4}]Re[a]Abs[a]Round[a]1 < a应用 (2)
在相同数域中利用 AlgebraicNumber 对象进行计算速度较快:
{a, b, c} = {I, Sqrt[2], Root[#1^3 - 2 #1 + 3&, 1]};{x, y, z} = ToNumberField[{a, b, c}];RootReduce[(-2 y z (7 + x - y + z^2) + (6 + x^2 + 2 y) (-11 + x y + z^2)/2 y z (-4 - x + 3 y z) - (6 + x^2 + 2 y) (2 - 2 x + z^3))]//Timing在这个例子中,RootReduce 自动采用 AlgebraicNumber 对象计算:
{x, y, z} = {a, b, c};RootReduce[(-2 y z (7 + x - y + z^2) + (6 + x^2 + 2 y) (-11 + x y + z^2)/2 y z (-4 - x + 3 y z) - (6 + x^2 + 2 y) (2 - 2 x + z^3))]//Timing与 Root 对象直接计算进行比较:
RootReduce[(-2 y z (7 + x - y + z^2) + (6 + x^2 + 2 y) (-11 + x y + z^2)/2 y z (-4 - x + 3 y z) - (6 + x^2 + 2 y) (2 - 2 x + z^3)), Method -> "Recursive"]//Timing{x1, y1} = {9, 1};{x2, y2} = {163, 18};a = Last /@ (AlgebraicNumber[Sqrt[82], {x1, y1}] ^ Range[1, 5])b = Last /@ (AlgebraicNumber[Sqrt[82], {x2, y2}] ^ Range[1, 5])Apply[#1 ^ 2 - 82#2 ^ 2 &, a, 1]Apply[#1 ^ 2 - 82#2 ^ 2 &, b, 1]属性和关系 (5)
利用 RootReduce 把一个代数数变换成一个 Root 对象:
RootReduce[AlgebraicNumber[Root[# ^ 3 + # + 1&, 3], {1, 2, 1}]]利用 ToNumberField 像 AlgebraicNumber 对象那样表示 Root 对象:
ToNumberField[Root[1 + 2#1 + 2#1 ^ 2 + 2#1 ^ 3 + 2#1 ^ 4&, 1]]a = AlgebraicNumber[Root[# ^ 3 + # + 1&, 3], {1, 2, 1}];AlgebraicNumberPolynomial[a, x]a = AlgebraicNumber[Root[# ^ 3 + # + 1&, 3], {1, 1, 1}];AlgebraicNumberNorm[a]AlgebraicNumberTrace[a]a = AlgebraicNumber[Root[# ^ 3 + # + 1&, 3], {1, 1, 1}];MinimalPolynomial[a, x]% /. x -> a可能存在的问题 (1)
a = AlgebraicNumber[Root[# ^ 3 + # + 1&, 3], {1, 2, 1}];Re[a]Sqrt[a]利用 RootReduce 转换为 AlgebraicNumber:
ToNumberField[RootReduce[Re[a]]]ToNumberField[RootReduce[Sqrt[a]]]技术笔记
-
▪
- 代数数域
文本
Wolfram Research (2007),AlgebraicNumber,Wolfram 语言函数,https://reference.wolfram.com/language/ref/AlgebraicNumber.html.
CMS
Wolfram 语言. 2007. "AlgebraicNumber." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/AlgebraicNumber.html.
APA
Wolfram 语言. (2007). AlgebraicNumber. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/AlgebraicNumber.html 年
BibTeX
@misc{reference.wolfram_2026_algebraicnumber, author="Wolfram Research", title="{AlgebraicNumber}", year="2007", howpublished="\url{https://reference.wolfram.com/language/ref/AlgebraicNumber.html}", note=[Accessed: 17-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_algebraicnumber, organization={Wolfram Research}, title={AlgebraicNumber}, year={2007}, url={https://reference.wolfram.com/language/ref/AlgebraicNumber.html}, note=[Accessed: 17-August-2026]}