0

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

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)
4

2 回答 2

2

我通常通过为所需的系列长度设置一个变量来处理这种情况,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))
于 2019-07-02T19:01:10.373 回答
2

您只需添加+ O(z^5)substpol表达式中即可选择所需的精度。

> substpol(1+2*'z^2+3*'z^3 + O('z^5),'z,'z^2) + O('z^5)
1 + 2*z^4 + O(z^5)
于 2019-07-02T18:51:03.733 回答