如何从 G(z) 得到幂级数 G(z^2)

How to get the power series G(z^2) from G(z)

我认为这是一个简单的问题,但我找不到正确的方法。

substpol 几乎按我的需要工作,但多项式的次数加倍。

例如:

G(z)=1+2*z+3*z^2+O(z^5)

我得到了:

substpol(1+2*z^2+3*z^3 + O(z^5),z,z^2)
%20 = 1 + 2*z^4 + 3*z^6 + O(z^10)

但我想将结果保留在 O(z^5):

1 + 2*z^4 + O(z^5)

您只需将 + O(z^5) 添加到 substpol 表达式即可 select 您想要的精度。

> substpol(1+2*'z^2+3*'z^3 + O('z^5),'z,'z^2) + O('z^5)
1 + 2*z^4 + O(z^5)

我通常通过为所需的系列长度设置一个变量来处理这种情况,例如 n,然后在适当的地方加入 + O(x^n)。当我超级在意性能的时候我也会在替换之前减少幂级数的长度。

可以使用 serprec 获得序列的精度。以下函数将用 x 替换 x^2 并保持相同的精度:

f(s) = {subst(s, x, x^2) + O(x^serprec(s, x))}
f(1+2*x+3*x^2+O(x^5))