我认为这是一个简单的问题,但我找不到正确的方法。
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)
我认为这是一个简单的问题,但我找不到正确的方法。
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)
我通常通过为所需的系列长度设置一个变量来处理这种情况,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))
您只需添加+ 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)