0% ont trouvé ce document utile (0 vote)
9 vues13 pages

Algèbre linéaire avec Maple

Ce document décrit comment effectuer des opérations d'algèbre linéaire telles que les vecteurs, les bases, les matrices et les systèmes linéaires en utilisant Maple. Il explique comment créer et manipuler des vecteurs et des matrices, ainsi que des opérations telles que l'addition, la multiplication et l'inversion.

Transféré par

Othmane Bouanani
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
9 vues13 pages

Algèbre linéaire avec Maple

Ce document décrit comment effectuer des opérations d'algèbre linéaire telles que les vecteurs, les bases, les matrices et les systèmes linéaires en utilisant Maple. Il explique comment créer et manipuler des vecteurs et des matrices, ainsi que des opérations telles que l'addition, la multiplication et l'inversion.

Transféré par

Othmane Bouanani
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Physique Numérique (SMP6)

TP6 : Algèbre linéaire (avec Maple)

But du TP6 :
Nous allons utiliser Maple pour faire de l'algèbre linéaire dans : vecteurs, bases, matrices, systèmes
linéaires,...

La plupart des commandes de Maple qui permettent de faire de l'algèbre linéaire se trouvent dans la
librairie LinearAlgebra :

Remarque : il existe aussi la librairie linalg, utilisée dans les versions précédentes de Maple, mais qui
est obsolète dans cette version (bien qu'existant toujours).
restart: with(LinearAlgebra);
(1)

1/13
Pensez à recharger la librairie après chaque !

1. Les vecteurs
1.1 Construction d'un vecteur
La commande permet de créer un vecteur. Voici quelques exemples :
Vector([1,4,6]);whattype(%);Vector[row]([5,6,7]);
whattype(%);

Vector

Vector (2)

Vector(5,i->i^2);

(3)

RandomVector(4);

(4)

Afficher le contenu d'un vecteur :


v:=Vector([7,8,9,10]);

(5)
2/13
(5)

v;

(6)

Extraire un coefficient d'un vecteur :


v[2]; # deuxième coefficient
8 (7)
Modifier le contenu d'un vecteur
Par affectation des coefficients :
v[1]:=0;v;

(8)

Copier un vecteur
De subtiles règles d'évaluation dans Maple amènent le problème suivant lorsqu'on souhaite copier un
vecteur dans une autre variable :
w:=v;
v[1]:=2;v;w;

3/13

(9)
(9)

Toute modification de v entraine une modification de sa copie w ! Pour y remédier, on utilise la


commande copy :
w:=Copy(v);
v[1]:=3;v;w;

(10)

1.2 Quelques opérations sur les vecteurs


Somme de deux vecteurs :
u:=Vector([-7,4,7,3]);

(11)

u+v;

(12)

4/13
Multiplication d'un vecteur par un scalaire (réel) :
v*Pi;

(13)

Taille d'un vecteur (nombre de composantes) :


Dimension(u);
4 (14)
Tester une égalité de deux vecteurs :
Equal(u,v);
false (15)
Produit scalaire de deux vecteurs :
Vector([1,1]).Vector([2,1]);
3 (16)
Ou bien :
DotProduct(Vector([1,1]),Vector([2,1]));
3 (17)
Produit vectoriel de deux vecteurs :
CrossProduct(Vector([1,1,0]),Vector([1,0,1]));

(18)

1.3 Opérations avancées


Trouver une base du sous-espace vectoriel engendré par un ensemble de vecteurs :
u:=Vector([1,0,0]);
v:=Vector([1,1,0]);
w:=Vector([1,0,1]);
t:=Vector([0,0,2]);

5/13
(19)

Basis( { u,v,w,t } );

(20)

2. Les matrices
2.1 Construction d'une matrice
La commande permet de créer une matrice. Voici quelques exemples :
Matrix([[1,2,3],[4,5,6],[7,8,9]]);
whattype(%);

Matrix (21)
Matrix(3,3,[1,2,3,4,5,6,7,8,9]);

(22)

Matrix(5,3,(i,j)->i+j);

(23)

A:=RandomMatrix(2,3);

(24)

6/13
Il existe beaucoup d'autres fonctions permettant de créer des matrices. Consultez les commandes
fournies dans LinearAlgebra pour en savoir plus : par exemple DiagonalMatrix, BandMatrix,...
Afficher le contenu d'une matrice
A;

(25)

Extraire un coefficient d'une matrice


A[2,3]; # deuxième ligne, troisième colonne
(26)

Modifier d'une matrice


Par affectation des coefficients :
A[1,1]:=Pi;A;

(27)

Copier une matrice


De subtiles règles d'évaluation dans Maple amènent le problème suivant lorsqu'on souhaite copier une
matrice dans une autre variable :
B:=A;
A[1,1]:=1;A;B;

(28)

Toute modification de A entraine une modification de sa copie B ! Pour y remédier, on utilise la


commande Copy :
B:=Copy(A);
A[1,1]:=999;A;B;

7/13
(29)

2.2 Quelques opérations sur les matrices


Somme de deux matrices :
B:=Matrix(2,3,[1$6]);

(30)

A+B;

(31)

Multiplication d'une matrice par un scalaire (réel) :


A*x;

(32)

Multiplication de deux matrices (produit matriciel) :


M:=Matrix(2,2,[a1,b1,c1,d1]);
N:=Matrix(2,2,[a2,b2,c2,d2]);

(33)

M.N;

(34)

Multiplication d'une matrice par un vecteur :


[Link]([1,0,0]);

(35)

Taille d'une matrice : nombre de lignes, nombres de colonnes


RowDimension(A) ; ColumnDimension(A);
2
(36)
8/13
3 (36)
Tester une égalité de deux matrices :
Equal(A,B);
false (37)
A := RandomMatrix(4, 4);DeleteRow(A, 1);

(38)

DeleteColumn(A, 2 .. 3);

ColumnOperation(A, [1, 2]);

(39)

RowOperation(A, [3, 4]);

(40)

A := Matrix(3, 3, [1, 2, 3, 4, 5, 6, 7, 8, 9]);

(41)

RowOperation(A, [1, 2], 1);

(42)
9/13
(42)

RowOperation(A, [1, 2], -2);

(43)

ColumnOperation(A, [1, 3], -2);

(44)

RowOperation(A, 2, -1);

(45)

ColumnOperation(A, 1, 1/100);

(46)

2.3 Opérations avancées


Trace d'une matrice (somme des coefficients de la première diagonale) :
Trace(M);
(47)
Transposée d'une matrice :
Transpose(A);

(48)

Calcul de l'inverse d'une matrice (carrée inversible) :


A:=Matrix(3,3,[7/10,3/5,1/10,-3/5,11/5,1/5,-3/10,3/5,11/10]):

10/13
MatrixInverse(A);

(49)

B := 1/A;

(50)

Calcul des valeurs propres d'une matrice carrée :


Eigenvalues(A);

(51)

Calcul des vecteurs propres d'une matrice carrée :


Eigenvectors(A);

(52)

Maple renvoie ici un premier vecteur constitué des valeurs propres de A, suivi d'une matrice dont les
vecteurs colonnes sont les vecteurs propres correspondants.
Trouver une base du noyau de l'application linéaire associée à une matrice :
NullSpace(A);
(53)
B:=Matrix(2,2,[1,2,1/2,1]);

(54)

NullSpace(B);

(55)

11/13
(55)

Que signifient les réponses de Maple ?


Trouver une base de l'image de l'application linéaire associée à une matrice :
( = une base du sous-espace vectoriel engendré par les vecteurs colonnes de la matrice)
ColumnSpace(B);

(56)

Rang de la matrice (= dimension de l'image)


Rank(B);
1 (57)
Déterminant d'une matrice carrée (on rappelle qu'une matrice carrée est inversible si et seulement si son
déterminant est non nul) :
Determinant(A);
2 (58)

3. Les systèmes linéaires


3.1 Systèmes linéaires donnés par des équations
On utilise . Par exemple, pour le système :
|
|
|
solve( {x+y+z=3 , x+2*y-z=-1 , -x+y+2*z=0} , {x,y,z} );
(59)

3.2 Systèmes linéaires donnés par une matrice


On utilise . Par exemple, le système précédent correspond à A.X=B, où A est la matrice :
A:=Matrix( [ [1,1,1], [1,2,-1], [-1,1,2] ] );

(60)

et B le vecteur colonne :
B:=Vector([3,-1,0]);

(61)

12/13
On résout le système par :
LinearSolve(A,B);

(62)

3.3 Le pivot de Gauss


Maple peut effectuer le pivot de Gauss sur une matrice avec la commande GaussianElimination. Le
résultat est une matrice échelonnée mais non réduite.
C:=Matrix(A);

(63)

C:=GaussianElimination(A);

(64)

Enfin, la commande , appliquée à la matrice échelonnée, permet de trouver le(s)


solution(s) :
with(Student[NumericalAnalysis]):BackSubstitution(C,B);

(65)

On a ici besoin d'une autre librairie servant au calcul numérique matriciel .

13/13

Vous aimerez peut-être aussi