Calcul numérique (avec Maple) Maplesoft http://www.maplesoft.com/ Maple version 9.5
Le logiciel de calcul formel Maple Sources utilisées pour ce cours : Raphaël Giromini http://www.giromini.org/maple/index.html M. Chare (cours-tds années précédant 2006). José-Marconi Rodrigues (tps précédant 2006).
Modification sur l’emploi du temps Mardi : TD (gp2 : MIP) : 13h30 - 15h30 TD (gp1 : MI) : 15h30 - 17h30 Salle Fin des TDs le 18 avril ou le 25 avril
Chapitre 7 : Algèbre linéaire
Structures de données Représentation de vecteurs et de matrices : via les structures de données list et listlist via la structure de donnée array calcul simple : +, -, &*, ^ ou via les structures de données vector et matrix (librairie linalg) transposer, inverser, diagonaliser, choisir une base, trouver des vecteurs propre, des valeurs propre ...
via les structures de données list, listlist et array
via les structures de données list, listlist et array
via les structures de données list, listlist et array
via les structures de données list, listlist et array
via les structures de données list, listlist et array
Les structures de données vector et matrix (librairie linalg) Pour des opérations plus compliquées sur les matrices et les vecteurs, on utilise la librairie linalg via la commande :
Les structures de données vector et matrix (librairie linalg) La syntaxe pour construire un vecteur est : vector(n, [x1,...,xn]) où n est la dimension du vecteur et les xi sont les les composantes du vecteurs. Remarque : L’un des deux arguments (au choix) est optionnel. Il est également possible d’appliquer une fonction (f) aux index pour définir le vecteur : vector(n, f(x))
vector Remarque 1 : Le type d’un vecteur est array Remarque 2 : Aide en ligne : ?linalg[vector]
Les structures de données vector et matrix (librairie linalg) La syntaxe pour construire une matrice est : matrix(m, n, list) où mn est la dimension de la matrice et list est une liste ou une liste de listes de coefficients. Remarque : L’un des arguments ‘ list ’ ou ‘ m, n ’ est optionnel. Il est également possible d’appliquer une fonction (f) aux index pour définir la matrice : matrix(m, n, f(i,j))
matrix
Exemple de matrices particulières
Exemple de matrices particulières
Opérations algébriques On retrouve les opérations +,-, &*, ^ On peut utiliser directement matadd, multiply, scalarmul ...
Opérations diverses sur les vecteurs La commande vectdim retourne la dimension du vecteur. La commande norm retourne la norme du vecteur. La commande basis retourne une base à partir d’un ensemble de vecteurs. La commande crossprod retourne le produit vectoriel de deux vecteurs. La commande angle retourne l’angle entre deux vecteurs. Notation : uv = uv Remarque : |u|.|v|.cos = u.v
Opération diverse sur les matrices La commande stackmatrix permet de créer une matrice à partir d’une liste de vecteurs Les commandes concat et augment permettent de faire une seule matrice à partir de plusieurs matrices. Les matrices doivent avoir le même nombre de ligne. Les commandes row et col permettent d’extraire les colonnes et les lignes d’une matrice (attention au type de retour).
Opération diverse sur les matrices Illustration :
Opération diverse sur les matrices Illustration :
matrix list Pour passer d’une liste de liste à une matrice on utilise la commande convert(…, matrix). Pour passer d’une matrice à une liste de liste on utilise également la commande convert(…, listlist).
matrix list
Rappel sur les matrices ... Soit le système linéaire suivant : 1 . x + 2 . y + 5 . z + 3 . w = 10 1 . x + 5 . y + 2 . z + 3 . w = -3 4 . x + 2 . y + 3 . z + 1 . w = 19 -2 . x + 5 . y + 4 . z + 5 . w = 7 Il peut s’écrire sous forme matriciel : A . X = B
Rappel sur les matrices ... A . X = B
Rappel sur les matrices … et intérêt de celles-ci ! Soit le système linéaire de la forme : A . X = B a) Existe-il une solution ? b) Si oui, la calculer. a) Il existe une solution si det(A) 0 c’est-à-dire que la matrice A est inversible (A. A-1 = I) b) X = A-1.B
Matrice transposé, matrice inverse det permet de calculer le déterminant de la matrice inverse permet d’inverser la matrice si le déterminant est non nul. linsolve permet de résoudre un système de la forme A.X = B. transpose permet de transposer la matrice
Matrice transposé, matrice inverse
Matrice transposé, matrice inverse
Matrice transposé, matrice inverse Remarque : La matrice A est non inversible, le système n’a donc pas de solution.
Opérations diverses sur les matrices Rang d’une matrice (nombre de lignes ou colonnes linéairement indépendantes) : rank Noyau d’une matrice (noyau d’une application linéaire) kernel
Opérations diverses sur les matrices
Opération élémentaire du pivot de Gauss addrow(mat, l1, l2, m) permet d’ajouter m fois la ligne l1 de la matrice mat à la ligne l2. addcol(mat, c1, c2, m) ... mulrow(mat, l, exp) permet de multiplier la ligne r de la matrice mat par exp. mulcol(mat, c, exp) … swaprow(mat, l1, l2) échange les lignes l1 et l2. swapcol(mat, c1, c2) ...
Opération élémentaire
Calcul du Jacobien Le Jacobien d’un vecteur f = (f1, f2, …, fm) dont les paramètres des expression fi sont x1, …, xn vaut :
Calcul du Jacobien
EigenVector, EigenValue Un vecteur propre d’une matrice A est tel que : .X = A.X On appel le scalaire la valeur propre. La procédure eigenvectors calcule les vecteurs propre de la matrice A. (résolution de (I. - A) X = 0 pour chaque X). Remarque : utile pour l’analyse de donnée et la réduction de la dimension des données (taille des vecteurs).
EigenVector, EigenValue
Opérations diverses sur les matrices Famille maximale libre des vecteur-colonnes rowspace colspace
Opérations diverses sur les matrices