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
I don't know how to do the computation like you ask, but I can tell you why it's not exact: you're working over CC, so you're asking for a numerical answer.