Re: Simplification to Partial Fraction
- To: mathgroup at smc.vnet.net
- Subject: [mg59706] Re: [mg59679] Simplification to Partial Fraction
- From: Daniel Lichtblau <danl at wolfram.com>
- Date: Thu, 18 Aug 2005 00:16:37 -0400 (EDT)
- References: <200508170800.EAA24842@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Jon Palmer wrote: > I was wondering if someone can help with a Partial Fraction problem. > > I have a calculated expression, u, which is a quotient of two polynomials in > three variables x, y & z. > > > u = P(x,y,z)/Q(x,y,z) > > > I know that the quotient, when simplified, is a sum of partial fractions of > the form > > u = R(x,y,z) + S(x,y,z)/(x^2 +y^2) + T(x,y,z)/(y^2 +z^2) + U(x,y,z)/(z^2 > +x^2) > > > Is there a way to simplify the expression into the parial fraction form? > > I have tried various combinations of Simplify, Apart, Collect etc. and can't > find a method that works. Any help would be much appreciated. > > Thanks > Jon Palmer > Here are a few possibilities. I like the last one best. As a preprocessing step, first put the whole thing into an explicit rational function form using Together. Obtain numerator and denominator. For example: ee = x^3+x*y+z^2+x/(y^2+z^2) + y^2/(x^2+z^2) + x*y*z/(x^2+y^2) This is constructed so that we can see clearly what is the expected result. ff = Together[ee] {num,den} = {Numerator[ff],Denominator[ff]} (1) With a certain amount of effort the desired breakup can be done by iterations of Developer`PolynomialDivision[num,den,var] where var is one of {x,y,z}. You get a pair of the form {quotient,remainder}. Each quotient will need to be further split by polynomial division so as to get quotients with respect to all three variables. Likewise remainders from one division will need to be further divided by denominators with respect to remaining variables. (2) Do {{poly},rem} = PolynomialReduce[num, den] to get polynomial part and remainder. For the latter, try Apart[rem,den,x] to get a partial fraction decomposition. You may need to further split pieces and do Apart on them with respect to {y,z}. (3) Again get the polynomial part using PolynomialReduce. {{poly},rem} = PolynomialReduce[num, den] Now work on the parts involving a fraction over (x^2+y^2). {{pz},dz} = PolynomialReduce[rem*(x^2+y^2), den, z] We recover the fraction as pz/(x^2+y^2). Now remove the (x^2+y^2) factor from dz and recover the part over (x^2+z^2). {{py},dy} = PolynomialReduce[dz*(x^2+z^2)/(x^2+y^2), den, y] It will be py/(x^2+y^2). Now remove the (x^2+y^2) factor from the remainder and recover the fractional part over (x^2+z^2). {{px},dx} = PolynomialReduce[dy*(y^2+z^2)/(x^2+z^2), den, x] At this point, if you've been living a just life, the remainder should be zero. For our example above: In[94]:= InputForm[result = {poly,pz/(x^2+y^2),py/(x^2+z^2),px/(y^2+z^2)}] Out[94]//InputForm= {x^3 + x*y + z^2, (x*y*z)/(x^2 + y^2), y^2/(x^2 + z^2), x/(y^2 + z^2)} In[95]:= dx===0 Out[95]= True Daniel Lichtblau Wolfram Research
- References:
- Simplification to Partial Fraction
- From: "Jon Palmer" <Jonathan.palmer@new.ox.ac.uk>
- Simplification to Partial Fraction