• Aucun résultat trouvé

1. a. En remplaçant, on trouve que la suite (y

N/A
N/A
Protected

Academic year: 2022

Partager "1. a. En remplaçant, on trouve que la suite (y"

Copied!
3
0
0

Texte intégral

(1)

Informatique 2009-2010 : TP 5 MPSI B Hoche

I. Correction du devoir sur les suites de Fibo- nacci.

Partie I. Relations.

1. a. En remplaçant, on trouve que la suite (y

n

)

n∈N

vérifie la même relation de récurrence que la suite de Fibonacci.

Dans les questions b. et c., les suites proposées et celle de Fibonacci vérifient la même relation de récurrence mais les termes sont décalés.

b. Si x

0

= 0 et x

1

= 0 : y

0

= 1 = F

1

y

1

= 1 = F

2

)

⇒ ∀n N : y

n

= F

n+1

⇒ ∀n N : x

n

= F

n+1

1 c. Si x

0

= 0 et x

1

= 1 :

y

0

= 1 = F

2

y

1

= 2 = F

3

)

⇒ ∀n N : y

n

= F

n+2

⇒ ∀n N : x

n

= F

n+2

1 2. a. Formons une relation de récurrence vérifiée par (s

n

)

n∈N

s

n

= F

0

+ F

1

+ · · · + F

n

s

n+1

= F

0

+ F

1

+ · · · + F

n+1

& &

s

n

+ s

n+1

= F

0

+ F

2

· · · + F

n+2

On en déduit s

n

+ s

n+1

= s

n+2

1. La suite (s

n

)

n∈N

vérifie donc la relation de récurrence de la question 1. Comme de plus, s

0

= F

0

= 0 et s

1

= F

0

+ F

1

= 1, on obtient d’après 1.c :

∀n N : s

n

= F

n+2

1 Autre solution, on peut simplifier s

n

"en dominos" :

s

n

= (F

2

F

1

) + (F

3

F

2

) + · · · + (F

n+2

F

n+1

) = F

n+2

1 b. On commence par former v

p

u

p

en exploitant la relation de récurrence

de Fibonacci avec des différences cette fois :

v

p

u

p

= (F

3

F

2

) + (F

4

F

3

) + · · · + (F

2p+1

F

2p

)

= F

1

+ F

2

+ · · · + F

2p−1

= v

p−1

+ 1 = v

p

F

2p+1

+ 1

On en déduit :

∀p N : v

p

= F

2p+1

1 Pour obtenir u

p

, on considère la somme

u

p

+ v

p

= s

2p+1

1 = F

2p+3

2 u

p

= F

2p+3

2 F

2p+1

+ 1

= F

2p+2

1 On en déduit :

∀p N : u

p

= F

2p+2

1

Partie II. Procédures.

1. Les compléments de code à fournir sont : for k from 1 to n-1 do

temp := v;

v := u+v ; u := temp;

od;

return v;

Il est à noter que cette procédure ne renvoie F

m

que pour m 1. Pour m = 0, on n’entre pas dans la boucle "for" et la procédure renvoie la valeur intiale de v c’est à dire 1 au lieu de 0. Pour m = 1, on n’entre pas non pus dans la boucle mais la valeur renvoyée est bien F

1

= 1.

2. a. Dans la procédure récursive, il ne faut surtout pas oublier de faire ren- voyer directement le résultat pour m = 0 ou 1

fib_r := proc(m) if m=0 then

return 0 ; elif m=1 then

return 1 ; else

return fib_r(m-2) + fib_r(m-1);

fi;

end proc;

b. Pour m égal à 0 ou 1, la procédure renvoie directement le résultat sans calcul. Pour une autre valeur de m, il y a une seule addition à part celles

Cette création est mise à disposition selon le Contrat

Paternité-Pas d’utilisations commerciale-Partage des Conditions Initiales à l’Identique 2.0 France disponible en ligne http://creativecommons.org/licenses/by-nc-sa/2.0/fr/

1

Rémy Nicolai TP0905

(2)

Informatique 2009-2010 : TP 5 MPSI B Hoche

des appels récursifs. On en déduit : a

0

= a

1

= 0

∀n 2 : a

n

= a

n−1

+ a

n−2

+ 1 )

⇒ ∀n N : a

n

= F

n+1

1 d’après la question I.1.b.

3. La procédure fib_g utilise une variable globale et un tableau fib_g := proc(m)

global n, F;

local k;

n:=m;

F:= array(1..n,[]);

F[1]:=1; F[2]:=1;

for all k from 3 to n do F[k] := F[k-2] + F[k-1]

od;

return ();

end proc;

Noter le return vide à la fin pour que la procédure remplisse le tableau sans rien renvoyer.

Partie III. Représentation de Zeckendorf.

1. Exemples. Les premiers entiers se représentent facilement

1 = F

2

2 = F

3

3 = F

4

4 = F

4

+ F

2

5 = F

5

2. a. La suite des nombres de Fibonacci est strictement croissante et la re- cherche de k se fait dans un boucle pour laquelle x est entre 1 et F

n

. Il existe donc toujours un tel k.

b. Pourquoi x est-il nul à la fin ?

Remarquons d’abord que x est négatif ou nul car x 1 est faux pour sortir de la boucle. D’autre part, juste avant la sortie de boucle, on a trouvé un k tel que F [k] x donc y = x F[k] 0. Ensuite cette valeur y a été assignée à x et c’est ce nombre qui a échoué au test. La valeur de x après sortie de boucle est donc 0.

Pourquoi la boucle se termine-t-elle ?

Parceque la suite des valeurs de x est strictement décroissante.

Pourquoi Z[k]Z[k 1] = 0 ?

Supposons Z[k] = 1. Alors F[k] x < F [k + 1]. Posons y = x F [k]

qui est la valeur que prendra x ensuite. On a y < F [k + 1] F[k] = F[k 1]

Par conséquent, le "bon " k de l’étape suivante ne peut être k 1. Le Z[k 1] reste donc à 0.

c. La question précédente assure l’existence d’une Z-représentation. Elle fournit un algorithme permettant d’en trouver une. Elle ne dit rien sur l’unicité.

3. La suite des nombres de Fibonacci est strictement croissante donc : F

k1

+ · · · + F

kr

F

n−1

+ F

n−3

+ · · · +

 

  F

2

ou

F

3

selon parité de n

Avec les résultats de I.2.b., on trouve dans les deux cas que F

k1

+ · · · + F

kr

F

n

1

L’inégalité précédente permet de montrer l’unicité d’une Z-représentation. Si il en existait deux égales, il existerait des suites se terminant avec k

r

< k

0r0

telles que

k

r

+ 1 k

0r0

F

k0

r0

F

k0

1

+ · · · + F

k0

r0

= F

k1

+ · · · + F

kr

< F

kr+1

Ce qui est évidemment absurde car k

r

+ 1 k

r00

.

On aurait aussi pu raisonner en évaluant le nombre de suites d’indices.

Notons r

n

le nombre de ces suites pour un n 2. Il est bien clair que r

2

= r

3

= 1.

Pour un n fixé, on peut classer les suites suivant la manière dont elles se terminent. Le nombre de suites dont le dernier k est n est a

n−2

car alors le k précédent ne peut être n 1. Quant aux suites qui se terminent strictement avant n, elles sont au nombre de a

n−1

.

On retombe encore sur a

n

= a

n−2

+ a

n−1

ce qui donne avec les condi- tions initiales a

n

= F

n+1

. Un nombre ne saurait donc admettre plusieurs Z- représentation. Pour obtenir pratiquement une Z-représentation d’un nombre x, il faut d’abord calculer et stocker dans un tableau des nombres de Fibo- nacci F

0

, · · · , F

n

avec x < F

n

. Il faut ensuite utiliser l’algorithme étudié en question 2.

Cette création est mise à disposition selon le Contrat

Paternité-Pas d’utilisations commerciale-Partage des Conditions Initiales à l’Identique 2.0 France disponible en ligne http://creativecommons.org/licenses/by-nc-sa/2.0/fr/

2

Rémy Nicolai TP0905

(3)

Informatique 2009-2010 : TP 5 MPSI B Hoche

II. Un exercice sur des suites

On se propose d’étudier les suites définies par récurrence par u

0

= a, u

1

= b et u

n+1

= 111 1130

u

n

+ 3000 u

n

u

n−1

1. Former une procédure

suite(n,d,a,b)

renvoyant une évaluation numérique du n eme terme de la suite avec d chiffres significatifs. Examiner en particulier les résultats obtenus pour d valant 10, 20, 30 et n variant entre 5 et 40 avec les conditions initiales :

P e : a = 11/2 b = 61/11

P f : a = 5.5 b = 61/11

2. On interprète la suite précédente en itérant une transformation g du plan (privé de l’origine) dans lui même définie par :

lorsque M est le point de coordonnées (x, y), g(M ) est le point de coordonnées :

(y, 111 1130

y + 3000 xy )

On forme une suite de points en se donnant un point P

0

et la relation de récurrence P

n+1

= g(P

n

).

Quel rapport avec le 1. ? Chercher les points fixes de g (utiliser solve).

Former une fonction g dont l’argument est la liste des coordonnées d’un point P et renvoyant les coordonnées du point g(P) dans une liste.

3. On veut montrer que si P

0

= [11/2, 61/11] les P

n

sont sur une même conique.

On considère une fonction de la forme

F = ax

2

+ by

2

+ cxy + dx + ey + f

avec des coefficients a,b, c, d, e, f arbitraires. Former et résoudre le système de 5 équations aux inconnues a,b, c, d, e, f traduisant que P

0

, P

1

, P

2

, P

3

, P

4

sont sur la ligne de niveau 0 de F. Montrer (en utilisant subs) que cette ligne de niveau est invariante par g.

4. Faire de jolis dessins pour comprendre ce qui se passe (en particulier la notion de "bassin d’attraction").

Cette création est mise à disposition selon le Contrat

Paternité-Pas d’utilisations commerciale-Partage des Conditions Initiales à l’Identique 2.0 France disponible en ligne http://creativecommons.org/licenses/by-nc-sa/2.0/fr/

3

Rémy Nicolai TP0905

Références

Documents relatifs

Paternité-Pas d'utilisations commerciale-Partage des Conditions Initiales à l'Identique 2.0 France disponible en ligne http://creativecommons.org/licenses/by-nc-sa/2.0/fr/.. 1

Paternité-Partage des Conditions Initiales à l'Identique 2.0 France disponible en ligne http://creativecommons.org/licenses/by-sa/2.0/fr/.. 2 Rémy

Paternité-Pas d’utilisations commerciale-Partage des Conditions Initiales à l’Identique 2.0 France disponible en ligne http://creativecommons.org/licenses/by-nc-sa/2.0/fr/.. 1

Paternité-Pas d’utilisations commerciale-Partage des Conditions Initiales à l’Identique 2.0 France disponible en ligne http://creativecommons.org/licenses/by-nc-sa/2.0/fr/. 1

Paternité-Pas d’utilisations commerciale-Partage des Conditions Initiales à l’Identique 2.0 France disponible en ligne http://creativecommons.org/licenses/by-nc-sa/2.0/fr/. 1

Paternité-Pas d’utilisations commerciale-Partage des Conditions Initiales à l’Identique 2.0 France disponible en ligne http://creativecommons.org/licenses/by-nc-sa/2.0/fr/. 1

Paternité-Pas d’utilisations commerciale-Partage des Conditions Initiales à l’Identique 2.0 France disponible en ligne http://creativecommons.org/licenses/by-nc-sa/2.0/fr/b. 3

Paternité-Pas d’utilisations commerciale-Partage des Conditions Initiales à l’Identique 2.0 France disponible en ligne http://creativecommons.org/licenses/by-nc-sa/2.0/fr/.. 1