[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