将多项式的因子返回为 Pari/GP 中的向量
Returning the factors of a polynomial as a vector in Pari/GP
当使用 factor
时,Pari 打印多项式的因子及其重数。然而,当使用 polcyclofactors
时,多项式的分圆因子被列为一个向量,没有多重性。
有什么方法可以模仿 polcyclofactors
只是简单地对多项式进行因式分解?那么,只将多项式的因子显示为向量而不用担心重数?
是的。函数 factor
returns 一个两列矩阵。如果你只对素数感兴趣,而不是重数,你可以 select 只是第一列:
例如:
factor(120)[,1]
如果您只对多重性感兴趣,您会做 [,2]
。如果您需要将结果作为向量而不是列向量(这两种类型大部分可以互换),那么您还需要添加一个转换:
Vec(factor(120)[,1])
尽管我用整数完成了示例,但它也适用于多项式。
Vec(factor((1+x)^7*(1+x^2)^3)[,1])
Andrew 答案的变体:您可以使用 Vec
将矩阵转换为其列的向量,然后(多)将各个列分配给新变量,以便
[P] = Vec(factor(120));
将P
设置为不可约因子的向量并且
[P, E] = Vec(factor(120));
将 P
和 E
分别设置为不可约因子和多重性。但是更混乱的 factor()[1] 构造会快一点(因为调用 Vec
会导致额外的副本)。
当使用 factor
时,Pari 打印多项式的因子及其重数。然而,当使用 polcyclofactors
时,多项式的分圆因子被列为一个向量,没有多重性。
有什么方法可以模仿 polcyclofactors
只是简单地对多项式进行因式分解?那么,只将多项式的因子显示为向量而不用担心重数?
是的。函数 factor
returns 一个两列矩阵。如果你只对素数感兴趣,而不是重数,你可以 select 只是第一列:
例如:
factor(120)[,1]
如果您只对多重性感兴趣,您会做 [,2]
。如果您需要将结果作为向量而不是列向量(这两种类型大部分可以互换),那么您还需要添加一个转换:
Vec(factor(120)[,1])
尽管我用整数完成了示例,但它也适用于多项式。
Vec(factor((1+x)^7*(1+x^2)^3)[,1])
Andrew 答案的变体:您可以使用 Vec
将矩阵转换为其列的向量,然后(多)将各个列分配给新变量,以便
[P] = Vec(factor(120));
将P
设置为不可约因子的向量并且
[P, E] = Vec(factor(120));
将 P
和 E
分别设置为不可约因子和多重性。但是更混乱的 factor()[1] 构造会快一点(因为调用 Vec
会导致额外的副本)。