MathGroup Archive 2000

[Date Index] [Thread Index] [Author Index]

Search the Archive

does anyone have a program for the period length of a continued fraction?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg23216] does anyone have a program for the period length of a continued fraction?
  • From: "Matthew Herman" <Henayni at hotmail.com>
  • Date: Mon, 24 Apr 2000 01:12:23 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

I am working on a program for pell's equation, and I need this.
In the meantime, here is a program for the {a1,a2...an} list of a finite 
or infinite continued fraction and another for the convergents. If 
anyone has any comments or suggestions.. let me know. FullExtendedGCD is 
taken from Stan Wagon's "Mathematica in Action".

contfrac[a_,b_]:=
  If[IntegerQ[a =
b],Part[FullExtendedGCD[a,b],2],Floor[NestList[r,a,b-1]]]
r[x_] := 1/(x - Floor[x])

FullExtendedGCD[a_, b_] := FullExtendedGCD[a, b, {a}, {}]
FullExtendedGCD[a_, b_, r_, q_] := FullExtendedGCD[
 b, Mod[a,b], Append[r, b], Append[q, Floor[a/b]]]
FullExtendedGCD[a_, 0, r_, q_]  :=
 Block[{s = {1, 0}, t = {0, 1}},
 Scan[(AppendTo[t, t[[-2]] - t[[-1]] #];
    AppendTo[s, s[[-2]] - s[[-1]] #]) &, q];
 {r, q, s, t}]



(conv[a_, b_] :=
    Table[p[a, b, k]/q[a, b, k], {k, 1, Length[contfrac[a, b]]}]
p[a_,b_,n_]:=Part[contfrac[a,b],n]p[a,b,n-1]+p[a,b,n-2]
p[a_,b_,2]:=Part[contfrac[a,b],1]*Part[contfrac[a,b],2]+1
p[a_,b_,1]:=Part[contfrac[a,b],1]
q[a_,b_,1]:=1
q[a_,b_,2]:=Part[contfrac[a,b],2]
q[a_,b_,n_]:=Part[contfrac[a,b],n]q[a,b,n-1]+q[a,b,n-2]



thanks,



matt



  • Prev by Date: how to XY plot a list of complex numbers?
  • Next by Date: Re: Remote kernel with ssh
  • Previous by thread: Re: how to XY plot a list of complex numbers?
  • Next by thread: mathlink