Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Partial fraction decomposition over the reals or complex

Hi,

I am trying to get partial fraction decomposition (for integration) but over the complex numbers. For example, the denominator (x^2+1)*(x^3-2) should produce five fractions. I have experimented a bit with coercion but didn't manage to get anything. For example:

f=x^3-2
R=CC['x']
ff=R(f)
factor(f); factor(ff)

produces

x^3 - 2
(x - 1.25992104989487) * (x + 0.629960524947437 - 1.09112363597172*I) * (x + 0.629960524947437 + 1.09112363597172*I)

so far so good (except for decimals). But (1/f).partial_fraction() produces 1/(x^3 - 2), and (1/ff).partial_fraction() produces

Traceback (click to the left of this block for traceback)
...
AttributeError: 'FractionFieldElement_1poly_field' object has no attribute 'partial_fraction'

On the other hand, (1/ff).partial_fraction_decomposition() gives

(0, [0.209986841649145/(x - 1.25992104989487), (-0.104993420824573 +
0.181853939328620*I)/(x + 0.629960524947437 - 1.09112363597172*I),
(-0.104993420824573 - 0.181853939328620*I)/(x + 0.629960524947437 +
1.09112363597172*I)])

which is correct but not exact. Is there a command to get an exact decomposition over C, or am I stuck with having to set and solve a linear system?

Thanks