I. Bibliothèque d`algèbre linéaire

publicité
Informatique
I.
2010-2011 : TP 9 Bibliothèque "LinearAlgebra" et calculs euclidiens
Bibliothèque d’algèbre linéaire
> A:=RandomMatrix(3);
C:=<a,b,c>; L:=<u|v|w>;
A.C; L.A; L.C; C.L;
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
Extraire des données Pour un terme A[1,2]. Pour extraire une matrice
with(LinearAlgebra):
> A:=RandomMatrix(5);
SubMatrix(A, [2..5], [2..3, 1]);
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.
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 X avec un second membre b qui est une
matrice colonne.
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 := <<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 complexes et DotProduct calcule les produit hermitien en conjuguant automatiquement 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.
> 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.
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/
MPSI B Hoche
> U:=<a,b,c>; V:=<u,v,w>;
CrossProduct(U,V);
1
Rémy Nicolai TP1010
Informatique
II.
2010-2011 : TP 9 Bibliothèque "LinearAlgebra" et calculs euclidiens
MPSI B Hoche
Calculs d’algèbre linéaire euclidienne
Dans cet exercice, on désigne par E un espace euclidien orienté de dimension n
fixé et par B une 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 L dé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 V est la matrice colonne des coordonnées du vecteur
que l’on projette.
– La procédure renvoie la matrice colonne des coordonnées du vecteur projeté.
2. Dans cette question n = 3, calculer l’image d’un vecteur par la symétrie par
rapport à la droite Vect(u) avec u de 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 L dé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 S pour pouvoir faire les calculs
dans le cas où la base B n’est pas orthonormée. La matrice S étant la matrice
(symétrique) du produit scalaire dans B.
5. Ici E est de dimension 3 et la base est orthonormée. On considère une rotation f d’axe Vect(u) et d’angle α autour de u. Les coordonnées de u sont
(a, b, c). En utilisant la formule de cours donnant l’image par f d’un vecteur
x orthogonal à 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/
2
Rémy Nicolai TP1010
Téléchargement