
\chapterimage{matrix}



\chapter{Tableaux et matrices}



\section{Étoiles et espaces}


La  commande \verb+array(1..n,1..m)+  construit un  tableau  de \verb+n+
lignes et \verb+m+ colonnes.

Que fait cette procédure~:

\begin{lstlisting}[caption={}]
> mystere:=proc(n)
  local T,j,i;
  T:=array(1..n,1..n);
  for j from 1 to n do
    for i from 1 to n do 
      if j>i then T[i,j]:=``;
      fi;
    od;
  od;
  print(T);
  end:
\end{lstlisting}


Transformez-la un peu pour obtenir ceci avec $n=10$ par exemple~:


\begin{Verbatim}
        1                                                                                            
        1    1                                                                                       
        1    2    1                                                      
        1    3    3     1                                      
        1    4    6     4      1                               
        1    5    10    10     5      1                        
        1    6    15    20    15      6     1                  
        1    7    21    35    35     21     7     1            
        1    8    28    56    70     56     28    8     1      
        1    9    36    84    126    126    84    36    9    1 

\end{Verbatim}
     

Complétez cette dernière procédure  afin de remplacer chaque nombre pair
par  une  espace \verb+`  `+  et chaque  nombre  impair  par une  étoile
\verb+`*`+. Lancez-la pour $n=48$~: incroyable, non~?




\section{Fabriquons nos outils}


\subsection{Création d'une matrice}

Dans cette section, nous créerons nos matrices à l'aide de la commande 
\verb+array(1..n,1..m)+ vue  lors du  TD précédent ou  directement comme
une liste de listes représentant les lignes.


Par exemple, 
$\begin{pmatrix} 1&2\\3&4\\5&6
\end{pmatrix}$ sera rentré avec~:

\begin{lstlisting}[caption={}]
> M:=[[1,2],[3,4],[5,6]];
\end{lstlisting}

Comment faire calculer  le nombre de lignes et le  nombre de colonnes de
\verb+M+ à MAPLE~?


\subsection{Somme de matrices}

Créez  une procédure  qui prend comme  arguments deux  matrices et
renvoie leur somme. Elle commencera par~:

\begin{lstlisting}[caption={}]
> somm:=proc(A,B)
  local C,i,j,k;
  C:=[[0$nops(A[1])]$nops(A)];
             ?...?
  RETURN(C);
  end:
\end{lstlisting}


\subsection{Produit de matrices}


Soit  $A=(a_{ij})_{{1 \leqslant  i  \leqslant n}  \atop  {1 \leqslant  i
    \leqslant m}}$ et $B=(b_{ij})_{{1 \leqslant  i  \leqslant m}  \atop  {1 \leqslant  i
    \leqslant p}}$.


Alors $A\times B=C$ avec $C=(c_{ij})_{{1 \leqslant  i  \leqslant n}  \atop  {1 \leqslant  i
    \leqslant p}}$ et \[\forall (i,j)\in\bbn^*_n\times \bbn^*_p,\quad c_{ij}=\sum_{k=1}^ma_{ik}\cdot b_{kj}\]


Créez alors  une procédure  qui prend comme  arguments deux  matrices et
renvoie leur produit. Elle commencera par~:

\begin{lstlisting}[caption={}]
> prodm:=proc(A,B)
  local C,i,j,k;
  C:=[[0$nops(B[1])]$nops(A)];
             ?...?
  RETURN(C);
  end:
\end{lstlisting}


Vous n'utiliserez que des boucles (pas de fonctions de calcul formel~!).


\subsection{Matrice identité }


Créer  une procédure  \verb+Id:=proc(n)+  qui crée  la matrice  identité
d'ordre $n$.

\subsection{Puissances d'une matrice}


Tout est dans le titre...

\begin{lstlisting}[caption={}]
> puim:=proc(A,n)
          ?...?
 end:
\end{lstlisting}



\subsection{Trace d'une matrice}


Tout est dans le titre...

\begin{lstlisting}[caption={}]
> Tracem:=proc(A)
          ?...?
 end:
\end{lstlisting}



\subsection{Transposée d'une matrice, matrices orthogonales}


Tout est dans le titre...

\begin{lstlisting}[caption={}]
> Transm:=proc(A)
          ?...?
 end:
\end{lstlisting}

On  appelle matrice  orthogonale une  matrice carrée  dont  les vecteurs
colonne sont de norme 1 et orthogonaux deux à deux. 

Construisez une procédure testant si une matrice est orthogonale.

Calculez le produit d'une telle matrice par sa transposée.





\section{Avec les outils MAPLE}

Pour utiliser toute la puissance de calcul de MAPLE, on définit en fait une matrice par 

\begin{center}
  \verb+Matrix(nb lignes, nb colonnes, [a11,a12,a13,...,a1n,a21,a22,a23,...a2n,...,ap1,ap2,ap3,...,apn])+
\end{center}



Par exemple
\begin{lstlisting}
>  A:=Matrix(2,2,[1,2,3,4]);
\end{lstlisting}

 On peut additionner, multiplier,
élever à une puissance, appliquer une fonction à une matrice selon la syntaxe habituelle, sauf pour le produit où
il faudra taper $\cdot$ (le point).
Il existe une centaine de fonctions dans la bibliothèque \verb+LinearAlgebra+ plus celles déjà présentes sur Maple : nous ne les explorerons pas toutes !
Nous allons les découvrir à travers des petits exercices.






\vfill

\eject


\modeexercice % entre en mode exercice
\section{EXERCICES}


\begin{listeexercices}


\begin{exercice}[Noyau, image]

Qu'est-ce que l'endomorphisme de $\bbr^2$ d'expression analytique canonique

$$\bsyc x'&=&-\fr{1}{5}x-\fr{2}{5}y\\y'&=&\fr{3}{5}x+\fr{6}{5}y \esyc$$

                                           
                                                      
Vous aurez besoin de déterminer la matrice A associée, le noyau de A grâce à \Coms{NullSpace}{A} qui en renvoie une base,
l'image avec \Coms{ColumnSpace}{A}. Ensuite, à vous d'essayer des petits calculs sur A pour deviner sa nature.

\end{exercice}


\begin{exercice}[Puissances de matrices]

\been

\item
 Soit $\ds A=\frac{1}{3}\bmat
0&-2&-2\\
2&0&-1\\
2&1&0 \emat $.



\been
\item
Calculer $A^2,A^3$ et $A^4$.
\item Montrez que $\{A,A^2,A^3,A^4\}$ est un groupe pour le produit matriciel de $\mathfrak{M}_3(\bbr)$.
%\item Que peut-on dire de ce groupe ?
\een


\item
Pour chacune des matrices $A$ suivantes, calculer $A^n$ pour tout $n\in\bbn$. \been
\item $\bmat 1&a\\ 0&1\emat$ avec $a\in\bbr$.
\item La matrice $J_p$ de $\mathfrak{M}_p(\bbr)$ dont tous les
coefficients sont égaux à 1. \een \een



\end{exercice}


\begin{exercice}[Matrice orthogonale]
$A= \frac{1}{5} \bmat 3&4&c\\
                      a&-3&0\\
                     0&b&d
                \emat$

Déterminez  $a$,  $b$,  $c$  et  $d$  pour  que  $A$  soit  une  matrice
orthogonale ($A^{-1}=\vphantom{A}^{t}$).
\end{exercice}





% \subsection{Inverse de matrices}




% Soit $A=\bmat 1&0&a\\ 1&a&-1\\a&0&1 \emat$. Pour quelles valeurs de $a$, la matrice $A$ est-elle inversible. Calculez alors l'invesre de $A$.


\subsection{Mini-chaînes de Markov...}


\begin{exercice}[Aidons la mafia]


Les chaînes de Markov sont issues de la théorie des probabilités et utilisent des outils d'algèbre linéaire qui nous intéressent aujourd'hui. Elles permettent de simuler des phénomènes aléatoires qui évoluent au cours du temps. Nous allons les découvrir à travers l'étude d'un exemple simple.

Zlot, Brzxxz et Morzgniouf sont trois villes situées respectivement en Syldavie, Bordurie et Bouzoukstan. Des trafiquants de photos dédicacées du groupe ABBA prennent leur marchandise le matin dans n'importe laquelle  de ces villes pour l'apporter le soir dans n'importe quelle autre. On notera pour simplifier $V_1$, $V_2$ et $V_3$ ces villes et $p_{ij}$ la probabilité qu'une marchandise prise le matin dans la ville $V_i$ soit rendue le soir dans la ville $V_j$. La matrice $(p_{ij})_{{1\ie i \ie 3}\atop {1\ie j\ie 3}}$ est appelée \textit{matrice de transition} de la chaîne de Markov. Que s'attend-on à observer sur les colonnes d'une matrice de transition ?

Supposons que $P$ soit connue et vaille $$P=\bmat 0,8 &0,3 &0,2\\ 0,1&0,2&0,6\\ 0,1&0,5&0,2\emat$$

Les trafiquants se promenant de ville en ville, il peut être utile de visualiser leurs déplacements par le  \textit{diagramme de transition} suivant



\begin{center}
  \includegraphics{GraphesExemple.2}
\end{center}



On notera $x_i^{(k)}$ la proportion de trafiquants qui se trouvent au matin du jour $k$ dans la ville $V_i$. En probabilités, on appelle \textit{vecteur d'état} tout élément $(x_1,\cdots,x_n)$ de $\bbr^{+n}$ tel que $x_1+\cdots+x_n=1$. 

Ainsi, $x^{(k)}=\pa{ x_1^{(k)},x_2^{(k)},x_3^{(k)}}$ est un vecteur d'état.

On montre que les vecteurs d'état de la chaîne sont liés par la relation

$$x^{(k)}=P\cdot x^{(k-1)}$$

et donc

$$x^{(k)}=P^k\cdot x^{(0)}$$


Supposons que le chef de la mafia locale dispose de 1000 trafiquants qui partent tous le matin du jour 0 de la ville de Zlot. Quelle sera la proportion de trafiquants dans chacune des villes au bout d'une semaine ? d'un mois ? d'un an ?

\bigskip

Le parrain voudrait que la  proportion moyenne de trafiquants soit stable
d'un  jour  sur l'autre.  Il  recherche  donc  les vecteurs  d'état  $x$
vérifiant  l'équation  $P\cdot  x=x$.  Vous  apprendrez  après  l'été  à
résoudre de manière systématique ce  genre de problème. Nous allons pour
l'heure  nous  débrouiller  sans  appui  théorique mais  avec  Maple  et
\verb+NullSpace+ Comment procéder ? La matrice identité s'écrit \verb+Matrix(3,3,shape=identity)+.


\end{exercice}



\begin{exercice}[Météo]

\`A Morzgniouf, les jours sont soit secs, soit pluvieux. On désigne par $E_1$ l'état sec et $E_2$ l'état pluvieux et par $p_{ij}$ la probabilité qu'un jour soit dans l'état $E_i$ sachant que le jour précédent était dans l'état $E_j$. Les scientifiques Bouzouks ayant observé les phénomènes météorologiques des trent-deux dernières années à Morzgniouf ont établi la matrice de transition suivante

$$P=\bmat 0,750&0,338\\0,250&0,662\emat$$

Sachant qu'il fait beau aujourd'hui, quelle est la probabilité qu'il pleuve dans dix jours ?

\end{exercice}


\end{listeexercices}
\modenormal % restaure les définitions de sections, sous-sections, etc;



%%% Local Variables: 
%%% TeX-master: "PolyMaple10"
%%% End: 
