Ask Your Question

Revision history [back]

Output of series wrong without applying full_simplify

I am interested in extracting coefficients of generating functions. However, without applying full_simplify, the series function produces wrong results, where the coefficients appear to be shifted.

For example:

z = var("z")
u_1(z) = ( 1 - sqrt(1-4*z^2) )/(2*z)
D(z) = 1/(1 - u_1(z))

D(z).series(z,7)

produces 1*z^(-1) + 1 + 1*z + 2*z^2 + 3*z^3 + 6*z^4 + 10*z^5 + 20*z^6 + Order(z^7), while

D(z).full_simplify().series(z,7)

produces the correct result 1 + 1*z + 1*z^2 + 2*z^3 + 3*z^4 + 6*z^5 + 10*z^6 + Order(z^7).

D(z) evaluates to 2/((sqrt(-4*z^2 + 1) - 1)/z + 2), while D(z).full_simplify() evaluates to 2*z/(2*z + sqrt(-4*z^2 + 1) - 1), so the only simplification done here is to multiply the numerator and denominator with a factor z.

Why is it necessary to apply full_simplify to get correct results from series?