1
$\begingroup$

I am aware Maple has many commands of the form convert(a,b), where $a$ is usually an expression and $b$ can be a lot of different things, such as parfrac.

I've been doing some practice questions, and I'm stumped on this one: If I wanted to convert $\dfrac{1}{2x^3+x^2+2x}$ into $\dfrac{1}{2x}+\dfrac{-\frac{1}{4}+I\frac{\sqrt{15}}{60}}{x+\frac{1}{4}-I\frac{\sqrt{15}}{4}}+\dfrac{-\frac{1}{4}-I\frac{\sqrt{15}}{60}}{x+\frac{1}{4}+I\frac{\sqrt{15}}{4}}$, what would $b$ be in convert(a,b)? ( I know $a$ is obviously the expression.)

I is the imaginary unit in Maple.

$\endgroup$

2 Answers 2

4
$\begingroup$

Use this one instead:

[> f := 1/(2*x^3+x^2+2*x):
 convert(f, parfrac, complex):
 evalf(%);

         (-.25+0.65e-1*I)/(x+.25-.97*I)+.50/x+(-.25-0.65e-1*I)/(x+.25+.97*I)
$\endgroup$
1
  • $\begingroup$ You know your Maple! +1 $\endgroup$
    – amWhy
    Sep 27, 2013 at 0:49
2
$\begingroup$

You asked about an exact symbolic (ie. not floating point) form as the result.

Below are two approaches. The first is to subsequently apply the identify command to an answer (containing floats) obtained by using the complex option to the convert call. Such an approach often will not work on more involved results.

The second approach below involves trying to figure out a factorization and thus the extension field which may be supplied as another optional argument to the convert call. This is followed by a minor rearrangement in order to get 1 as the coefficient of the leading terms of the polynomials in the denominators, similar to how you cast it.

restart:

a:=1/(2*x^3+x^2+2*x):

# One way...

sort(identify(convert(a,parfrac,complex)));

          1    1    (1/2)  (1/2)      1    1    (1/2)  (1/2) 
        - - - -- I 3      5         - - + -- I 3      5      
   1      4   60                      4   60                 
  --- + ------------------------- + -------------------------
  2 x       1   1    (1/2)  (1/2)       1   1    (1/2)  (1/2)
        x + - + - I 3      5        x + - - - I 3      5     
            4   4                       4   4                

# Another (somewhat successful) way...

A:=denom(a);

                          /   2        \
                        x \2 x  + x + 2/

Q:=map(radnormal,
       convert(a, parfrac,
               {I} union indets([solve(A/x^(ldegree(A)))],radical)
               )
       );

                  (1/2)                            (1/2)     
        -15 + I 15              1         15 + I 15          
   ------------------------- + --- - ------------------------
      /     (1/2)          \   2 x      /    (1/2)          \
   15 \-I 15      + 4 x + 1/         15 \I 15      + 4 x + 1/

sort(add(subs(R=(numer(1/t)/lcoeff(numer(1/t))),
              S=denom(1/t)/lcoeff(numer(1/t)),
              S/R),
         t in Q));

                1    1     (1/2)      1    1     (1/2) 
              - - + -- I 15         - - - -- I 15      
         1      4   60                4   60           
        --- + ------------------- + -------------------
        2 x       1     (1/2)   1       1     (1/2)   1
              x - - I 15      + -   x + - I 15      + -
                  4             4       4             4
$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .