You can help partfrac by factoring the denominator. In cvs maxima:
load(simplify_sum)$
my_partfrac(e, x) := partfrac(num(e)/factor_with_solve(e, x), x)$
my_partfrac(1/(x^4+20*x^2+120), x);
will compute the partial fraction representation.
Andrej
On 31 Mar 2007 11:10:34 +0200, Albert Reiner <areiner at tph.tuwien.ac.at> wrote:
> Is there some setting that allows partfrac to compute the partial
> fraction representation for 1/(120+20*x^2+x^4)?
>
> ,----
> | (%i1) partfrac(1/(120+20*x^2+x^4), x);
> | 1
> | (%o1) ----------------
> | 4 2
> | x + 20 x + 120
> `----
>
> As the denominator is a quadratic function of x^2, it is clear that
> this can be handled. And indeed, solve has no problem obtaining the
> zeros, and I could do a "manual" high school-like partial fraction
> decomposition to obtain the desired result:
>
> ,----
> | 1
> | ---------------- =
> | 4 2
> | x + 20 x + 120
> | (sqrt(sqrt(30) - 5) sqrt(30) + 6 sqrt(sqrt(30) - 5)) x sqrt(30)
> | ------------------------------------------------------ + --------
> | 240 120
> | -----------------------------------------------------------------
> | 2
> | x + 2 sqrt(sqrt(30) - 5) x + 2 sqrt(30)
> | sqrt(30) (sqrt(sqrt(30) - 5) sqrt(30) + 6 sqrt(sqrt(30) - 5)) x
> | -------- - ------------------------------------------------------
> | 120 240
> | + -----------------------------------------------------------------
> | 2
> | x - 2 sqrt(sqrt(30) - 5) x + 2 sqrt(30)
> `----
>
> I suppose that enhancing partfrac to handle this type of problems
> might also benefit ilt as that knows how to compute the inverse
> Laplace transform of the "manual" result but not of the original
> expression.
>
> Best regards,
>
> Albert.