Informatique 2010-2011 : TP 9 Bibliothèque "LinearAlgebra" et calculs euclidiens MPSI B Hoche
I. Bibliothèque d’algèbre linéaire
La bibliothèque d’algébre linéaire récente de Maple est LinearAlgebra. (Une
bibiothèque plus ancienne linalg est également présente). L’appel se fait avec
with(LinearAlgebra):
Il peut être utile d’appeler cette bibliothèque avec un " ;" pour afficher la liste des
fonctions. On ne donne ici qu’une introduction très limitée à cette bibliothèque
extrèmement riche. La plupart des fonctions de LinearAlgebra commencent par
une majuscule (souvent il y a d’autres majuscules au milieu du nom) contrairement
à celles de linalg.
1. Algèbre linéaire générale
Constructeurs Plusieurs formes possibles.
Pour des matrices lignes ou colonnes
> <a|b|c>;<a,b,c>;
Les matrices colonnes sont aussi désignées par le terme de « vecteur »dans
l’aide de Maple.
Pour une matrice d’un autre type
> A:=RandomMatrix(3);
B:=<<a|b|c>,<u|v|w>>;
M := <<1,1,1,4>|<1,1,-2,1>|<3,1,1,8>>;
C:= Matrix(2,3,[[1,2,3],[l,j,g]]);
Le constructeur Matrix offre une myriade de possibilités. Consulter l’aide.
Attention, les types de données de cette bibliothèque ne coïncident pas
tout à fait aux types d’objets mathématiques. En particulier une colonne
(constructeur <,,>)n’est pas une matrice à une colonne (constructeur
Matrix(p,1)). De même, une ligne (constructeur < > avec des |comme
séparateurs) n’est pas une matrice à une ligne (constructeur Matrix(1,q)).
Addition Le + habituel convient
> A:=RandomMatrix(3);
B:=RandomMatrix(3);
A+B;
Multiplication externe Le * habituel convient.
> A:=RandomMatrix(3); lambda*A;
Multiplication matricielle Un opérateur "magique" : le point "." (dot). Il fait à
peu près ce qu’on voudrait qu’il fasse. On peut l’employer comme le "rien"
que l’on place entre deux matrices lorsqu’un produit est possible.
> A:=RandomMatrix(3);
C:=<a,b,c>; L:=<u|v|w>;
A.C; L.A; L.C; C.L;
Extraire des données Pour un terme A[1,2]. Pour extraire une matrice
> A:=RandomMatrix(5);
SubMatrix(A, [2..5], [2..3, 1]);
Déterminant Simplement Determinant(M) avec majuscule et sans accent.
Trace Simplement Trace(M) avec majuscule.
Rang Simplement Rank(M).
Système linéaire La syntaxe présentée ici est basique, la procédure renvoie les
solutions (avec d’éventuels paramètres) d’une équation matricielle AX =b
d’inconnue une matrice colonne Xavec un second membre bqui est une
matrice colonne.
> A := <<1,0,0>|<2,1,0>|<1,0,0>|<-1,-1,-3>>;
b := <2,-1,-9>:
LinearSolve(A, b);
b := Matrix(3,1);
LinearSolve(A, b);
Consultez l’aide de LinearSolve(), les possibilités sont innombrables.
2. Algèbre linéaire euclidienne
Produit scalaire La fonction DotProduct calcule le produit scalaire canonique
de deux matrices colonnes de n’importe quelle taille.
> U:=<a,b,c>; V:=<u,v,w>;
DotProduct(U,V);
Comme toujours dans Maple, par défaut les variables sont à valeurs com-
plexes et DotProduct calcule les produit hermitien en conjuguant automati-
quement la colonne de gauche.
On peut ajouter un paramètre matriciel Aà l’appel de Bilinear (voir aide)
cela permet de calculer un produit scalaire en prenant les coordonnées dans
une base qui n’est pas orthonormée.
Produit vectoriel La fonction CrossProduct calcule le produit vectoriel de deux
matrices colonnes de 3 lignes.
> U:=<a,b,c>; V:=<u,v,w>;
CrossProduct(U,V);
Cette création est mise à disposition selon le Contrat
Paternité-Pas d’utilisations commerciale-Partage des Conditions Initiales à l’Identique 2.0 France
disponible en ligne http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
1Rémy Nicolai TP1010
Informatique 2010-2011 : TP 9 Bibliothèque "LinearAlgebra" et calculs euclidiens MPSI B Hoche
II. Calculs d’algèbre linéaire euclidienne
Dans cet exercice, on désigne par Eun espace euclidien orienté de dimension n
fixé et par Bune base orthonormée directe. Toutes les coordonnées seront relatives
à cette base sauf mention explicite.
1. Projection orthogonale.
Former une procédure dont l’appel est projorth(L,V).
Le premier paramètre Ldésigne une liste de matrices colonnes. Chacune
étant formée par les coordonnées d’un vecteur d’une base orthogonale de
l’espace sur lequel on projette.
Le deuxième paramètre Vest la matrice colonne des coordonnées du vecteur
que l’on projette.
La procédure renvoie la matrice colonne des coordonnées du vecteur pro-
jeté.
2. Dans cette question n= 3, calculer l’image d’un vecteur par la symétrie par
rapport à la droite Vect(u)avec ude coordonnées (a, b, c)puis calculer la
matrice de cette symétrie. Calculer la matrice de la symétrie par rapport au
plan Vect(u).
3. Orthogonalisation
Former une procédure dont l’appel est orthGS(L)
Le paramètre Ldésigne la liste des matrices colonnes des coordonnées des
vecteurs de la famille à orthogonaliser. On suppose que cette famille est
libre.
La procédure renvoie la liste des matrices colonnes des coordonnées des
vecteurs de la famille orthogonalisée.
4. Calculs dans une base non orthonormée.
En utilisant l’aide de DotProduct, modifier les procédures précédentes en
ajoutant un nouveau paramètre matriciel Spour pouvoir faire les calculs
dans le cas où la base Bn’est pas orthonormée. La matrice Sétant la matrice
(symétrique) du produit scalaire dans B.
5. Ici Eest de dimension 3et la base est orthonormée. On considère une ro-
tation fd’axe Vect(u)et d’angle αautour de u. Les coordonnées de usont
(a, b, c). En utilisant la formule de cours donnant l’image par fd’un vecteur
xorthogonal à uà l’aide d’un produit vectoriel, former la matrice de f.
Cette création est mise à disposition selon le Contrat
Paternité-Pas d’utilisations commerciale-Partage des Conditions Initiales à l’Identique 2.0 France
disponible en ligne http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
2Rémy Nicolai TP1010
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !