[Enseignement] Probleme suite récurrente avec cycle
LEURENT Jean-Matthieu
jleurent at ac-strasbourg.fr
Ven 11 Oct 17:51:45 CEST 2013
Le 11/10/2013 15:24, fred M a écrit :
> Voici un programme Scilab qui doit me permettre de mettre en évidence des
> suites récurrentes bornées non convergentes en fonction de leur valeur
> initiale.
> function [u]=f(u0)
> u(1)=u0;
> n=1;
> for n=1:100
> disp([n,u(n)])
> if u(n)>2 then
> u(n+1)=8-2*u(n);
> elseif u(n)<-2 then
> u(n+1)=(1/3)*(u(n)+5)-5;
> else u(n+1)=2*u(n);
> end
> end
> clf;
> plot(u,"+r");
> endfunction
> f(1.6)
>
>
> En essayant avec une valeur initiale égale à 1.6 , la suite est censée
> valoir alternativement 1.6 et 3.2 et oh surprise !! Cela dysfonctionne avant
> le 50è terme. Xcas même chose ,Geogebra même chose alors que pour ma bonne
> vieille TI ça marche!!
> Au final, une valeur initiale entre 0 et 1 donne une suite convergeant vers
> 0 !!!
>
> J'attends vos commentaires. Je pense qu'il n'y a ^pas grand chose à modifier
> mais pardonnez moi :je suis novice.
> Cordialement,
> M Morand
>
>
>
> --
> View this message in context: http://mailinglists.scilab.org/Probleme-suite-recurrente-avec-cycle-tp4027594.html
> Sent from the Scilab pour l'enseignement - Mailing Lists Archives mailing list archive at Nabble.com.
> _______________________________________________
> enseignement mailing list
> enseignement at lists.scilab.org
> http://lists.scilab.org/mailman/listinfo/enseignement
>
Bonjour.
Je n'ai pas vérifié pour les deux valeurs considérées mais je suis
quasiment sur que le problème vient de la représentation des nombres
dans l'ordinateur. Pour faire simple, en base 10, 1.6 et 3.2 s'écrivent
correctement avec 1 chiffre après la virgule et en base 2 avec un nombre
infini de chiffres après la virgule. Après calculs, il y a alors des
erreurs de troncature qui s'amplifient à chaque itération. Les
algorithmes et la représentation des nombres mis en place dans nos
calculatrices tiennent compte de ces problèmes et les corrigent
correctement dans la majorité des cas. Ce n'est pas toujours le cas dans
les programmes pour ordinateur. Nos calculatrices ne sont pas pour
autant parfaites. Le phénomène décrit se produit avec des nombres comme
1/3, 1/6 etc.
Cordialement
J-M Leurent
Plus d'informations sur la liste de diffusion enseignement