我认为这是一个简单的问题,但我找不到正确的方法。
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)
答案 0 :(得分:1)
只需在+ 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)
答案 1 :(得分:1)
我通常通过为所需的序列长度设置一个变量来处理这种情况,例如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))