如何使用 PARI/GP 计算幂级数的倒数?
How to use PARI/GP for calculating the inverse of a power series?
我想反转幂级数 PARI/GP:
如果 $y=a[1]*x+a[2]*x^2+...+O(x^N)$
由给定数组编码,比如 a=vector(N-1)
,我希望 PARI 生成向量 b 使得 $x=b[1]*y+b[2]*y^2+...+O(y^N)$
.
这可以做到 using the Bell polynomials。 Pari 手册有
Bell(k,n=-1)=
{
my(var(i)=eval(Str("X",i)));
my(x,v,dv);
v=vector(k,i,if(i==1,’E,var(i-1)));
dv=vector(k,i,if(i==1,’X*var(1)*’E,var(i)));
x=diffop(’E,v,dv,k)/’E;
if(n<0,subst(x,’X,1),polcoeff(x,n,’X))
}
生产例如
gp > Bell(3)
%3 = X1^3 + 3*X2*X1 + X3
但我不知道如何使用它们,即在 Pari 的后续公式中将值归因于 X1, X2, ...
(事实上,我几乎不明白 eval()
和 subst()
在上面的公式中工作!)。对于知道的人来说这应该是微不足道的......请帮忙!
PARI 具有进行幂级数回归的内置函数,因此无需进入低级实现,这肯定是非常次优和复杂的。
使用示例:
serreverse( x / (1 + x)^2 + O(x^20))
第二个例子(基于问题中给出的link中的例子)
serreverse(atan(x + O(x^20)))
tan(x + O(x^20))
如果您的级数在向量中 v
,您将首先将其转换为幂级数,然后调用 serreverse
。例如:
serreverse(Ser(v))
稍后要转换回向量,请使用 Vec
函数。从幂级数转换为向量时,PARI 会去掉任何前导零,这很烦人。为防止这种情况,您通常会给出第二个参数 -n
或 -(n+1)
,其中 n
是幂级数中的项数。
我想反转幂级数 PARI/GP:
如果 $y=a[1]*x+a[2]*x^2+...+O(x^N)$
由给定数组编码,比如 a=vector(N-1)
,我希望 PARI 生成向量 b 使得 $x=b[1]*y+b[2]*y^2+...+O(y^N)$
.
这可以做到 using the Bell polynomials。 Pari 手册有
Bell(k,n=-1)=
{
my(var(i)=eval(Str("X",i)));
my(x,v,dv);
v=vector(k,i,if(i==1,’E,var(i-1)));
dv=vector(k,i,if(i==1,’X*var(1)*’E,var(i)));
x=diffop(’E,v,dv,k)/’E;
if(n<0,subst(x,’X,1),polcoeff(x,n,’X))
}
生产例如
gp > Bell(3)
%3 = X1^3 + 3*X2*X1 + X3
但我不知道如何使用它们,即在 Pari 的后续公式中将值归因于 X1, X2, ...
(事实上,我几乎不明白 eval()
和 subst()
在上面的公式中工作!)。对于知道的人来说这应该是微不足道的......请帮忙!
PARI 具有进行幂级数回归的内置函数,因此无需进入低级实现,这肯定是非常次优和复杂的。
使用示例:
serreverse( x / (1 + x)^2 + O(x^20))
第二个例子(基于问题中给出的link中的例子)
serreverse(atan(x + O(x^20)))
tan(x + O(x^20))
如果您的级数在向量中 v
,您将首先将其转换为幂级数,然后调用 serreverse
。例如:
serreverse(Ser(v))
稍后要转换回向量,请使用 Vec
函数。从幂级数转换为向量时,PARI 会去掉任何前导零,这很烦人。为防止这种情况,您通常会给出第二个参数 -n
或 -(n+1)
,其中 n
是幂级数中的项数。