Re: How to do Continued fraction of polynomials
- To: mathgroup at smc.vnet.net
- Subject: [mg53206] Re: [mg53052] How to do Continued fraction of polynomials
- From: Daniel Lichtblau <danl at wolfram.com>
- Date: Tue, 28 Dec 2004 23:12:43 -0500 (EST)
- References: <200412220952.EAA04405@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Milind Gupta wrote:
> How can we do a continued fraction expansion in Mathematica.
>
> Suppose we have
> x^3 + 2x
> ------------
> x^2 + 1
>
> and we want:
>
> x + 1
> -------------
> x + 1
> ----
> x
>
> Can we get this by using some function or some technique in Mathematica??
>
> Regards,
One method is to iterate taking a quotient and remainder, keeping the
quotients and dividing previous remainders by new ones.
polynomialContinuedFraction[p1_,p2_,x_] := Module[{quot,rem,res},
Reap[NestWhileList[
({quot,rem} = Developer`PolynomialDivision[#[[1]],#[[2]],x];
Sow[quot,res];
{#[[2]],rem})&,
{p1,p2},
!Developer`ZeroQ[#[[2]]]&]][[2,1]]
]
For your example:
In[12]:= convergents = polynomialContinuedFraction[x^3+2*x, x^2+1, x]
Out[12]= {x, x, x}
To change to the customary format you can use
pcfForm[{l1_}] := l1
pcfForm[ll_List] := First[ll] + 1/pcfForm[Rest[ll]]
In[16]:= InputForm[pcfForm[convergents]]
Out[16]//InputForm= x + (x^(-1) + x)^(-1)
Daniel Lichtblau
Wolfram Research
- References:
- How to do Continued fraction of polynomials
- From: Milind Gupta <milind.gupta@gmail.com>
- How to do Continued fraction of polynomials