next up previous contents index
suivant: Pour s'amuser avec des monter: Curiosités et traduction pour précédent: Le raisonnement   Table des matières   Index

Les fractions continues

Définition Une fraction continue est une expression de la forme :
$ \tt a_1+\frac{b_1}{a_2+\frac{b_2}{a_3+\frac{b_3}{a_4+...}}}$
avec pour k > 1 ak > 0 et pour k $ \geq$ 1 bk > 0 Une fraction continue simple est une fraction continue où les bk = 1, c'est donc une expression de la forme :
$ \tt a_1+\frac{1}{a_2+\frac{1}{a_3+\frac{1}{a_4+...}}}$
Ici on ne s'intéressera qu'aux fractions continues simples car sinon l'écriture n'est pas unique, par exemple : $ \tt\sqrt{13}=3+\frac{4}{6+\frac{4}{6+\frac{4}{6+...}}}=$
$ \tt 2+\frac{9}{4+\frac{9}{4+\frac{9}{4+...}}}=$
$ \tt 3+\frac{1}{1+\frac{1}{1+\frac{1}{1++\frac{1}{1++\frac{1}{6+...}}}}}$

Notation Si $ \tt n=a_1+\frac{1}{a_2+\frac{1}{a_3+\frac{1}{a_4+...}}}$
on notera :
n = ([a1, a2,...an,..],[]) si le développement n'est pas périodique et
n = ([a1, a2,...as],[b1, b2,...bt]) si le développement est périodique de période [c1, c2,...ct] ie lorsque n = [a1, a2,...as, c1, c2,...ct, c1, c2,...ct, c1....]
Par exemple :
$ \tt\sqrt{13}=([3,1,1,1,1,6],[1,1,1,1,6])$

Propriétés Un nombre rationnel a un développement en fraction continue fini.
Les réels qui ont un développement en fraction continue périodique sont solution d'une équation du second degré à coefficients dans $ \mathbb {N}$.
Le programme

f2dfc(x,n):={
local r,q,lq,lr,p,j;
q:=floor(x);
r:=normal(x-q);
lq:=[];
lr:=[];
for (j:=1;j<=n;j:=j+1) {
lq:=concat(lq,q);
if (x==q){return (lq,[]);}
p:=member(r,lr);
if (p) {return (lq,mid(lq,p))};
lr:=concat(lr,r);
x:=normal(1/r);
q:=floor(x);
r:=normal(x-q);
}
return (concat(lq,x),[]);
};

dfc2f1(d,t):={
local s,st,x,l,xt,k;
s:=size(d);
x:=d[s-1];
for (k:=s-2;k>=0;k:=k-1) {x:=normal(d[k]+1/x);}
if (t==[]) {return normal(x);}
st:=size(t);
purge(y);
xt:=t[st-1]+y;
for (k:=st-2;k>=0;k:=k-1) {xt:=normal(t[k]+1/xt);}
l:=solve(y=1/xt,y);
if (l[0]>0){y:=normal(l[0]);}else{y:=normal(l[1]);};
x:=d[s-1]+y;
for (k:=s-2;k>=0;k:=k-1) {x:=normal(d[k]+1/x);}
return(normal(x));
};
dfc2f2(d,t):={
local s,st,x,xt;
s:=size(d);
x:=d[s-1];
for (k:=s-2;s>=0;s:=s-1) {x:=d[k]+1/x;}
if (t==[]) {return x;}
st:=size(t);
xt:=t[st-1];
for (k:=st-2;st>=0;st:=st-1) {xt:=st[k]+1/xt;}
return(x+1/2*(sqrt(xt^2+4)-xt));
};


Documentation de giac écrite par Renée De Graeve