sujet

publicité
TP n°4 AGREGATION 2003
APPLICATIONS DE SCILAB (Partie I / III) :
Algèbre linéaire
Après les trois premières séances d’initiation à Scilab ayant eu pour objet l’acquisition du
maniement du logiciel puis l’apprentissage des instructions de base, les trois séances à venir sont
plus axées sur les diverses applications possibles de Scilab en Mathématiques (algèbre linéaire,
probabilités et statistiques, résolution d’équations). Dans cette première séance, les applications
de Scilab en algèbre linéaire pour lequel cet outil est particulièrement conçu sont abordées.
1. Construction de vecteurs et de matrices
Comme la phase d’initiation l’a déjà mis en évidence, Scilab est particulièrement conçu pour
la construction de matrices et de vecteurs ainsi que pour leur manipulation. Outre le caractère :
permettant de construire un vecteur ligne dont les coefficients sont équirépartis entre 2 valeurs,
par exemple 0:0.1:3, les caractères [ ] , et ; permettent une affectation terme à terme,
ligne après ligne d’une matrice, par exemple [1,0;0,1] pour construire la matrice identité de
taille 2. Il existe également diverses instructions permettant de construire des matrices
particulières comme eye (matrice identité), zeros (matrice nulle), ones (matrice constituée de
1), toeplitz (matrice tridiagonale) ou rand (matrice aléatoire). Enfin, il est possible
également d’utiliser les caractères [ ] , et ; pour concaténer des matrices de taille
compatible en ligne ou en colonne ainsi que le caractère : pour extraire des sous matrices ou les
affecter en bloc. A=[ones(2,3),zeros(2,1);zeros(3,4)]désigne ainsi une matrice
5*4 (laquelle ?) et A(1:3,3:2:7) désigne la matrice formée des lignes 1 à 3 et des colonnes
3, 5 et 7 de A.
EXERCICE 1 : Construire de manière judicieuse la matrice symétrique de taille (n2* n2) dite de
discrétisation par différences finies du Laplacien sur un carré, tridiagonale par blocs de taille n :
sur la diagonale : n matrices tridiagonales avec des 4 sur la diagonale et des 1 au dessus et
en dessous.
sur- et sous- diagonale : n matrices identité
2. Conditionnement et résolution de systèmes linéaires
L’influence des erreurs d’arrondis sur la précision de la solution d’un système linéaire
peut être quantifiée a priori par la valeur du conditionnement de la matrice A associée (en
utilisant par exemple l’instruction cond de Scilab). Il s’avère donc indispensable d’estimer cette
valeur avant toute résolution de système linéaire avec un logiciel de calcul numérique comme
Scilab (même lorsqu’on utilise une méthode symbolique, donc « exacte », comme la méthode de
Gauss).
EXERCICE 2 : écrire un script permettant de résoudre tout système cramérien Au=b par la
méthode de Gauss avec stratégie de pivot. Appliquer ce script sur des exemples utilisant une
matrice bien conditionnée (comme la matrice construite dans l’exercice 1) puis une matrice mal
conditionnée (comme la matrice de Hilbert). Comparer les résultats et les temps de calcul
obtenus avec ceux issus de l’instructions préprogrammée linsolve de Scilab ou d’une
résolution exacte.
3. Recherche d’éléments propres
Scilab dispose d’instructions (en l’occurence spec et bdiag) permettant de déterminer
rapidement les éléments propres d’une matrice. Les mêmes restrictions d’imposent de même
cependant sur le conditionnement du problème.
EXERCICE 3 : Ecrire un script permettant de calculer par la méthode de Jacobi les valeurs
propres d’une matrice symétrique. Appliquer ce script à la matrice construite dans l’exercice 1
après s’être assuré de son bon conditionnée pour ce problème.
Téléchargement