fullparfrac - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


convert/fullparfrac

convert a rational expression to full partial fraction form

 

Calling Sequence

Parameters

Description

Examples

Calling Sequence

convert(f, fullparfrac)

convert(f, fullparfrac, x)

convert(f, fullparfrac, methext)

convert(f, fullparfrac, x, methext)

convert(f, fullparfrac, ratflag)

convert(f, fullparfrac, x, ratflag)

convert(f, fullparfrac, methext, ratflag)

convert(f, fullparfrac, x, methext, ratflag)

Parameters

f

-

rational function in x

x

-

main variable name

methext

-

(optional); method (normal, sqrfree, or factor) or an extension

ratflag

-

(optional); flag that alters the form of the output

Description

• 

Convert to fullparfrac performs a partial fraction decomposition of the rational function f in the variable x after completely factoring the denominator into linear factors over its splitting field.

• 

If no x is provided, parfrac attempts to determine a suitable x, and proceeds if the operation is not ambiguous. For example, an expression that is a rational polynomial in both a and b requires that the variable be specified.

• 

Optionally, the methext parameter can be one of 'normal', 'sqrfree', 'factor' (the default) or a field extension.  In the first three cases, the associated function is applied to the denominator(s), and in the last case, factoring over that field extension is applied.  The 'normal' and 'sqrfree' options are very efficient, although the answer often contains reducible RootOfs. Factoring eliminates this problem but at a high computational cost, and also at the cost of not always producing the simplest output form.

• 

Optionally, the ratflag parameter is a boolean flag indicating if rational expressions in terms of the roots of the irreducible RootOfs should be rationalized to polynomial functions. By default, this rationalization is performed when the denominator of f contains only x. If additional unknowns are present in the denominator, then this rationalization is not performed.

  

The default can be overridden by using the environment variable _Env_fullparfrac_normalized. If set to true, rationalization is performed by default, and if set to false it is not. This is most useful when fullparfrac is being called from another routine over which you have no control (see the final example below).

• 

Warning: If the coefficients of the function f contain parameters, then there will be values for those parameters for which the decomposition is erroneous, as a symbolic splitting field is valid only for generic values of the parameter.  This is known as the specialization problem.

Examples

convertx2+1x2+x+1,fullparfrac,x

1+_α=RootOf_Z2+_Z+1_α323x_α

(1)

convertx2+1x2+x+1,fullparfrac

1+_α=RootOf_Z2+_Z+1_α323x_α

(2)

convertx3+xx23x+2,fullparfrac,x

x+3+10x22x1

(3)

convertx3+xx23x+2,fullparfrac,x,normal

x+3+_α=RootOf_Z23_Z+212_α14x_α

(4)

convert1x2+1,fullparfrac,x

_α=RootOf_Z2+1_α2x_α

(5)

convertxx3+RootOf_Z2+3x+1,fullparfrac,x

_α=RootOf_Z3+RootOf_Z2+3_Z+14RootOf_Z2+3_α243+8RootOf_Z2+3_α1299_α2436RootOf_Z2+343+6_α43+843x_α

(6)

In the following example, 'x' and 'a' appear in the denominator, so x must be specified.

convert1x3+ax+1,fullparfrac,x

_α=RootOf_Z3+a_Z+113_α2+ax_α

(7)

Not specifying x results in an error:

convert1x3+ax+1,fullparfrac

Error, (in `convert/fullparfrac`) the variable name (for conversion to partial fractions) must be provided

You can request rationalization via:

convert1x3+ax+1,fullparfrac,x,true

_α=RootOf_Z3+a_Z+16a_α24a3+279_α4a3+27+4a24a3+27x_α

(8)

In the following example, 'x' is the only variable in the denominator, so rationalization is performed.

convert1x3+x+12,fullparfrac,x

_α=RootOf_Z3+_Z+1431+3_α231x_α2+_α=RootOf_Z3+_Z+1162961_α2150961_α+108961x_α

(9)

To disable rationalization, use the false option.

convert1x3+x+12,fullparfrac,x,false

_α=RootOf_Z3+_Z+113_α2+12x_α2+_α=RootOf_Z3+_Z+16_α3_α2+13x_α

(10)

or

_Env_fullparfrac_normalizedfalse:

convert1x3+x+12,fullparfrac,x

_α=RootOf_Z3+_Z+113_α2+12x_α2+_α=RootOf_Z3+_Z+16_α3_α2+13x_α

(11)

_Env_fullparfrac_normalized_Env_fullparfrac_normalized:

As a final example, you can control the behavior of fullparfrac when used in other functions.

sum1x4+x+12,x

_α=RootOf_Z4+_Z+12722924229_α3+16229_α2Ψ1,x_α+_α=RootOf_Z4+_Z+11382452441_α3+1568452441_α21358452441_α1036852441Ψx_α

(12)

forgetsum:

_Env_fullparfrac_normalizedfalse:

sum1x4+x+12,x

_α=RootOf_Z4+_Z+1Ψ1,x_α4_α3+12+_α=RootOf_Z4+_Z+112_α2Ψx_α4_α3+13

(13)

See Also

convert

convert/parfrac

forget