\documentclass[11pt,landscape]{article}
\usepackage[width=240mm,height=173mm]{geometry}
\usepackage[french,vlined,boxed]{algorithm2e}
\usepackage{preambule-utf8}
%\usepackage{etex}
\usepackage[boldsans]{ccfonts}
\usepackage{beton,euler}
\usepackage{luximono}

\usepackage{bbding,filecontents}
 \usepackage{wasysym,marvosym,keystroke}
\definecolor{0.95white}{rgb}{0.95,0.95,0.95}


% pour algorithm
\incmargin{1em}
\dontprintsemicolon
%\SetCommentSty{\small\sffamily}


\graphicspath{{/home/moi/Photos/Maths/}{/home/moi/Figures/FigSTI/}{/home/moi/Figures/FigSeconde/}{/home/moi/Lycee/Informatique/XCAS/2008_9/}}

\entete{TD Maple n°5}{Chaos, fractales et suites}{PCSI 2 - Lycée Clemenceau}%g,d,b

 \usepackage{index}
 \makeindex
 \renewindex{default}{idx}{ind}{Index des commandes vues aujourd'hui}

\newcommand{\indexkeywordsmaple }[1]{\index[default]{maple@\textbf{\large Commandes}!#1@\textcolor{red}{\texttt{#1}}|textbf}}

\newcommand{\indn }[1]{\index[default]{maple@{\large
      Notions }!#1@ #1}}

\newcommand{\indt }[1]{#1\index[default]{maple@{\large
      Touches }!#1@ #1}}


%%% Environnement des réponses du logiciel
\DefineVerbatimEnvironment{boxedverbatim}{Verbatim}{fontsize=\small,formatcom=\color{blue},fontshape=it,gobble=2,frame=single,framesep=4mm,label=\textit{\small \textcolor{black}{Réponse du logiciel}},xleftmargin=10pt,rulecolor=\color{black}}




\newcommand\Com[1]{%
\shorthandoff{;:}\textcolor{red}{{ \ttfamily #1}}\index[default]{maple@\textbf{\large Commandes}!#1@\textcolor{red}{\texttt{#1}}|textbf}}


%%% Com avec syntaxe
\newcommand\Comsi[2]{%
\shorthandoff{;:}\textcolor{red}{{ \ttfamily #1}}(\textcolor{red}{\texttt{#2}})\index[default]{maple@\textbf{\large Commandes}!#1@\textcolor{red}{\texttt{#1}}|textbf}}





%%%%%%  Commande personnelle ou bout de code

\renewcommand{\code}[1]{\textcolor{red}{\texttt{#1}}}





\newcommand{\MAPLE}{\lstset{numbers=none,language=Maple,xleftmargin=10pt,%
keywordstyle =\color{red}\usefont{OT1}{cmtt}{b}{n},basicstyle=\ttfamily\color{red},commentstyle=\normalfont\scriptsize\itshape,
    backgroundcolor=\color{0.95white},index=[2][keywords],indexstyle=[2]\indexkeywordsmaple,breaklines=true}
}



%biblio

\usepackage[super,idem=strict,ibidem=name]{jurabib}
\usepackage{url}
\bibliographystyle{jurabib}



\begin{document}
\setlength{\parindent}{0pt}
\thispagestyle{empty}



%%%%%% TITRE{vide}{intitule chapitre : lecon, chapitre ...}{debut titre}{fin titre}{titre toc}{dessin}
%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%% TITREs{vide}{intitule chapitre : lecon, chapitre ...}{debut titre}{fin titre}{titre toc}
%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



\setcounter{NumLecon}{4}

\TITREs{}{TD \includegraphics[height=0.8cm]{maple.eps} }{Chaos, fractales et suites}{}{Chaos, fractales et suites}
        

\MAPLE

\begin{multicols}{2}


\section{Newton et le chaos}


Considérons l'équation $z^5-1=0$. Elle admet cinq solutions dans $\bbc$.

\begin{lstlisting}
coul:=proc(a,b)
local z,j,c;
z:=a+i*b;
c:=0;
while abs(z^5-1)>=0.01 and c<20 do 
  z:=z-(z^5-1)/(5*z^4);
  c:=c+1;
od;
return(c);
end:
\end{lstlisting}

Ensuite,  on trace  dans  le carré  $[-1;1]\times[-1;1]$  des points  de
coordonnées $(a,b)$ colorés avec la couleur \verb+coul(a,b)+~:~en effet,
chaque couleur peut être représentée par un nombre.

Cela
nécessite pas mal  de calculs et donc prend de la  mémoire, trop pour le
peu de temps dont nous disposons aujourd'hui.

Voici ce  que cela  donne (pas avec  MAPLE mais  avec XCAS qui  est plus
adapté à la géométrie)~:~comment interpréter ce graphique~?



\begin{center}
  \includegraphics[width=1.3\linewidth]{fractalenewton}
\end{center}

Pour  observer la  sensibilité  de  la convergence  au  choix de  $z_0$,
considérez le programme suivant~:
    
\begin{lstlisting}
fracnewt:=proc(zo)
local z,k;
z:=evalf(zo):
    for k from 0 to 100 while abs(z^5-1) >= 0.001 do
    z:=z-(z^5-1)/(5*z^4)
    od;
z;
end:
\end{lstlisting}
    

et le graphe associé à cette commande~:

\begin{lstlisting}
plot([seq([Re(fracnewt(-0.700000*I+0.000001*I*k)),Im(fracnewt(-0.700000*I+0.000001*I*k))],k=0..10)],style=point);
\end{lstlisting}

Comment l'interpréter~?

\section{L'effet papillon}

Vers 1950, le météorologiste américain Edward \textsc{Lorenz} étudie la circulation atmosphérique. Reprenant
  les   travaux   des   mathématiciens   français   \textsc{Hadamard}   et   \textsc{Poincaré}   sur
  l'imprédictibilité des systèmes  simples. Même en modélisant l'atmosphère en  un système ayant une
  dizaine de  degrés de liberté, il montre  la sensibilité exponentielle par  rapport aux conditions
  initiales. Il illustre son propos en montrant que le battement d'aile d'un papillon en un point de
la Terre  est suffisant pour  déclencher deux semaines  plus tard une tornade  à l'autre bout  de la
planète. Au même moment, le  russe Vladimir \textsc{Arnold}, disciple de \textsc{Kolmogorov}, modélise
le  mouvement d'un  fluide parfait  comme celui  d'un point  sur une  «~hypersurface~»  de dimension
infinie.  Il part  lui aussi  de travaux  d'\textsc{Hadamard} sur  les trajectoires  d'une  bille sur
certaines surface~:~par exemple, si on lâche une bille sur un paraboloïde hyperbolique (une selle de
cheval), sa trajectoire va  dépendre énormément de sa position de départ,  à tel point qu'il s'avère
impossible de prévoir sa trajectoire au-delà d'un temps très court. \\
Bref,  l'effet papillon  envahit  les esprits  et nombres  de  disciplines pour  imposer une  vision
chaotique d'un monde complexe et imprédictible. 
C'est ce phénomène que nous allons observer et commenter aujourd'hui, non pas en étudiant le domaine
des turbulences atmosphériques «~physiquement~» hors de  notre portée, mais en explorant, de manière
très simplifiée, la
\emph{dynamique des populations}.\\
Nous évoquerons  en conclusion les  apports récents de  la \emph{mécanique statistique}  qui replace
dans leur contexte les travaux de \textsc{Lorenz} et \textsc{Arnold}.




\section{Le Zräjdz}

Comme vous le savez tous, le Zräjdz commun à ailette mouchetée est l'animal emblématique de la Syldavie. Aussi paisible que les
habitants de ce bucolique pays, le Zräjdz se nourrit exclusivement des baies du bleurtschzrn, arbre qui pousse en abondance dans les
verts sous-bois syldaves. Si l'on ne considérait que cette idéale situation, la population $u$ de Zräjdzs suivrait la loi suivante $$
u_{n+1}=R u_n$$ Cette relation traduit le fait que la population de l'année $n+1$ est proportionnelle à l'année $n$ : on applique à $u_n$
le taux de natalité et le taux de mortalité. Le coefficient $R$ résume ces proportions.

On prend $R=1,5$ et on suppose qu'il y avait \nombre{10000} couples de Zräjdzs au départ de notre étude.


La  suite étant  définie  par récurrence,  la  première idée  est de  la
définir de la même manière sur Maple~:

\begin{lstlisting}
u:=proc(n) option remember;
 if n=0 then 20000;
        else R*u(n-1);
 fi;
end:
\end{lstlisting}

L'option  \verb+remember+ permet d'économiser  grandement la  mémoire en
stockant à  chaque calcul les  valeurs calculées dans une  table. Ainsi,
quand on a calculé $u_{10}$ et  que l'on demande ensuite $u_{11}$, on ne
recalcule pas toutes  les valeurs de $u_0$ à  $u_{11}$. La complexité de
l'algorithme était exponentielle et devient linéaire.


On fixe R~:

\begin{lstlisting}
R:=1.5:
\end{lstlisting}

On demande par exemple les 15 premiers termes de la suite~:

\begin{lstlisting}
seq(u(k),k=0..15);
\end{lstlisting}


et on trace la représentation graphique associée~:

\begin{lstlisting}
plot([seq([n,u(n)],n=0..15)],style=point);
\end{lstlisting}



\section{Trop de Zräjdzs nuit aux Zräjdzs}

Il est assez aisé d'objecter au modèle précédent que l'évolution ne peut pas rester proportionnelle à la population de l'année
précédente~: au bout d'un moment la nourriture et  l'espace vital, par exemple, viennent à manquer. On peut alors modéliser l'évolution
de la population selon la loi $$u_{n+1}=R\,u_n(1-u_n/100\,000)$$ 

\begin{enumerate}

\item Définissez $u(n)$ comme cela a été fait au paragraphe précédent et
  calculez les 25 premiers termes de la suite. On prendra encore $R=1,5$
  et $u_0=20\,000$. 


\item Tracez également la graphique donnant la population en fonction de l'année. On utilisera l'option \gros{style=point}
et on observera le phénomène sur une cinquantaine d'années.

\item Observez maintenant ce qui se passe pour ces  graphiques quand on fait varier le coefficient R. On regardera en particulier les graphiques correspondant à  R=2; R=0,9; R=3,44; R=3,5; R=3, 544; R=3, 831874048.

\item Ce n'est pas tout! Regardons maintenant ce qui se passe pour une même valeur de R lorsqu'on fait varier de manière infime $u(0)$. On prendra par exemple $R=3,\,831874048$ et $u(0)$ successivement égal à $20\,000$ puis à $20\,001$.


C'est l'illustration du fameux <<~effet papillon~>>: un battement d'aile de papillon à Rezé est susceptible de déclencher beaucoup plus tard une tornade au Texas. La très faible perturbation créée par le vol d'un papillon pourrait en principe faire varier les conditions initiales du système atmosphérique et engendrer plus tard un changement climatique en un endroit quelconque de notre planète.

\item   Ce  phénomène   est  mis   plus  clairement   en  évidence   par  un   \textbf{diagramme  de
    bifurcation}. Cette fois, le travail est inversé~:~je vous livre le programme et vous essayez de
  le commenter et de  découvrir à quoi correspond le graphique obtenu.  Qu'est-ce que représente r~?
  res~? ligne~? tmp~? 

\begin{lstlisting}
 Feig:=proc(R)
 local k,r,tmp,ligne,res,t;
 etendue:=floor(R/0.01):
 res:=[0$etendue]:
 ligne:=[0$20]:
 tmp:=0.2:
 for r from 1 to R by 0.01 do
 for k from 1 to 100 do
 tmp:=r*tmp*(1-tmp);
 od;
 for k from 1 to 20 do
 ligne:=subsop(k=[r,tmp],ligne);
  tmp:=r*tmp*(1-tmp);
 od:
 t:=floor(r*100);
 res:=subsop(t=ligne,res):
 od:
 plot(res,x=0..R,style=point);
 end:
\end{lstlisting}

Ensuite, observez ce qui se passe pour $0\ie R<3$, $3\ie R<3,45$, $3,45\ie R<3,57$, $3,57\ie R\ie 4$.

\end{enumerate}




\section{Exposant de Lyapounov}

Pour  mesurer  la  sensibilité  d'un système  dynamique  aux  conditions
initiales, on  mesure l'exposant de \textsc{Lyapounov}  introduit par le
mathématicien russe  Alexandre \textsc{Lyapounov} à la  fin du XIX\up{e}
siècle.

On considère une suite définie par la relation $u_{n+1}=f(u_n)$.  Quelle est l'influence d'un
écart $e_0$ sur $u_0$ pour la suite des itérés~?

Après une itération,  l'écart absolu vérifie $|e_1|=|f(u_0+e_0)-f(u_0)|$
et                  l'écart                 relatif                 vaut
$\frac{|e_1|}{|e_0|}=\frac{|f(u_0+e_0)-f(u_0)|}{|e_0|}\approx    f'(u_0)$
pour $|e_0|$ suffisamment petit.


Après $n$ itérations, l'écart relatif vaut 

$$\frac{|e_n|}{|e_0|}=\frac{|e_1|}{|e_0|}\times
\frac{|e_2|}{|e_1|}\times\cdots\times \frac{|e_n|}{|e_{n-1}|}=\prod_{k=1}^nf'(u_{k-1})$$


Si un des écarts devient nul, notre étude est sans intérêt.
Comme effectuer un produit  est une opération coûteuse, informatiquement
parlant, nous allons pouvoir considérer le logarithme de ce produit.

Notre  problème est  de savoir  si les  écarts s'amplifient  et  donc le
produit est supérieur à  1, ou bien si le système est  stable et donc le
produit est inférieur à 1.

$$\prod_{k=1}^nf'(u_{k-1})<1\ssi                          \sum_{k=1}^n\ln
\left(f'(u_{k-1})\right)<0$$

Pour relativiser le rôle du choix de $n$, nous allons normer cette somme
en la divisant par $n$.


On définit alors l'exposant de \textsc{Lyapounov}~:


$$\lambda=\lin \frac{1}{n}\sum_{k=1}^n\ln\left(f'(u_{k-1})\right)$$



Écrivez  une procédure  \verb+lyapounov:=proc(u0,R,n)+  qui calcule  une
approximation  numérique de  l'exposant de  Lyapounov qui  dépend  de la
donnée de $u_0$, $R$ et le nombre $n$ d'itérations.


Ensuite, vous l'utiliserez pour représenter l'exposant en fonction de R.

Par exemple, avec $u_0=0,45$ et 50 itérations~:

\begin{lstlisting}
plot([seq([r*0.001,lyapounov(0.45,r*0.001,50)],r=3000..4000)],view=[-3..4,-3..1]);
\end{lstlisting}




\begin{center}
  \includegraphics[height=\linewidth,angle=270]{lyapou02.eps}
\end{center}

Comment interpréter ce graphique~?


\end{multicols}


\end{document}
%%% Local Variables: 
%%% mode: latex
%%% TeX-master: t
%%% End: 
