Algèbre linéaire¶
Définition d’une matrice et d’un vecteur¶
Considérons la matrice \(A=(a_{ij})\) d’ordre \(n\times p\).
Il y a plusieurs manières de définir une matrice sous SimulaMath.
Première méthode :
-
matrice
([[a11, a12, ..., a1p][, a21, a22, ..., a2p], ...[, an1, an2, ..., anp]])¶ - Paramètres
aij – : le coefficient à la i-ième ligne et à la j-ième colonne de la matrice
Exemple :
simula : A = matrice([[1,2,3],[-1,5,9]]) # L1 = 1,2,3 est la première ligne de A et L2 = -1,5,9 est la deuxième
A =
[ 1 2 3 ]
[-1 5 9 ]
Deuxième méthode :
-
matrice
(n, p[, a11, a12, ..., a1p, a21, a22, ..., a2p, ..., an1, an2, ..., anp]) définition d’une matrice d’ordre \(n \times p\)
- Paramètres
n – un entier
p – un entier
aij – le coefficient à la i-ième ligne et à la j-ième colonne
Exemple :
simula : A = matrice(2, 3, [1,2,3,-1,5,9]) # 1,2,3 est la première ligne de A et -1,5,9 est la deuxième
A =
[ 1 2 3 ]
[-1 5 9 ]
On peut aussi définir quelques matrices particulières telles qu’une matrice identité ou diagonale.
-
In
(n ) # ou matriceIdentite( n)¶ la matrice identité d’ordre \(n\).
- Paramètres
n – entier
Exemple :
simula : I1 = In(3)
I1 =
[1 0 0 ]
[0 1 0 ]
[0 0 1 ]
simula : I2 = In(5)
I2 =
[1 0 0 0 0 ]
[0 1 0 0 0 ]
[0 0 1 0 0 ]
[0 0 0 1 0 ]
[0 0 0 0 1 ]
-
diag
(a_1, a_2, ..., a_n)¶ la matrice diagonale d’ordre \(n\) avec comme diagonale \(a_1, a_2, ..., a_n\)
- Paramètres
ai – un nombre
Exemple :
simula : D = diag(2,4,7)
D =
[2 0 0 ]
[0 4 0 ]
[0 0 7 ]
Pour la définition d’un vecteur colonne ou d’un vecteur ligne:
-
vecteur
((v1, v2, ..., vk))¶ le vecteur ligne \((v_1,v_2,...,v_k)\).
- Paramètres
vi – un nombre
Exemple :
simula : Vl = vecteur( (1,2,1,-1) )
Vl =
[1 2 1 -1 ]
-
vecteurColonne
((v1, v2, ..., vk))¶ le vecteur colonne \((v_1,v_2,...,v_k)^T\) .
- Paramètres
vi – un nombre
Exemple :
simula : Vc = vecteurColonne( (1,2,1,-1) )
Vc =
[ 1 ]
[ 2 ]
[ 1 ]
[-1 ]
Opération sur les matrices¶
-
trace
(A)¶ la trace de la matrice \(A\).
- Paramètres
A – une matrice
Exemple :
simula : A = matrice([[1,2,3],[0,1,0],[-1,1,1]])
A =
[ 1 2 3 ]
[ 0 1 0 ]
[-1 1 1 ]
simula : trace(A)
3
-
det
(A)¶ le déterminant de la matrice \(A\).
- Paramètres
A – une matrice
Exemple :
simula : A = matrice([[1,2,3],[0,1,0],[-1,1,1]])
A =
[ 1 2 3 ]
[ 0 1 0 ]
[-1 1 1 ]
simula : det(A) # ou determinant(A)
4
-
rang
(A)¶ le rang de la matrice \(A\).
- Paramètres
A – une matrice
Exemple :
simula : A = matrice([[1,2,3],[0,1,0],[-1,1,1]])
simula : rang(A) # ou rg(A)
3
-
transposee
(A)¶ la transposée de la matrice \(A\).
- Paramètres
A – une matrice
Exemple :
simula : A = matrice( [[1,2,3],[0,1,0],[-1,1,1]] ) ; transposee(A)
[1 0 -1 ]
[2 1 1 ]
[3 0 1 ]
simula : B = matrice(2,2, [1,2,3,4]) ; B.T # la transposée de B
[1 3 ]
[2 4 ]
-
inverse
(A)¶ l’inverse de la matrice \(A\), si elle existe.
- Paramètres
A – une matrice
Exemple :
simula : A = matrice([[1,2,3],[0,1,0],[-1,1,1]])
A =
[ 1 2 3 ]
[ 0 1 0 ]
[-1 1 1 ]
simula : inverse(A) # ou A^-1
[1/4 1/4 -3/4 ]
[ 0 1 0 ]
[1/4 -3/4 1/4 ]
-
invMatriceModulo
(A, p)¶ l’inverse de la matrice \(A\) modulo \(p\), si elle existe.
- Paramètres
A – une matrice
p – un nombre premier
Exemple :
simula : A = matrice([[1,1,0],[0,1,0],[-1,-1,1]])
A =
[ 1 1 0 ]
[ 0 1 0 ]
[-1 -1 1 ]
simula : invMatriceModulo(A, 2) # ou A^-1
[1 1 0 ]
[0 1 0 ]
[1 0 1 ]
-
comatrice
(A)¶ la comatrice de la matrice \(A\).
- Paramètres
A – une matrice
Exemple :
simula : A = matrice([[1,2,3],[0,1,0],[-1,1,1]])
A =
[ 1 2 3 ]
[ 0 1 0 ]
[-1 1 1 ]
simula : comatrice(A)
[ 1 0 1 ]
[ 1 4 -3 ]
[-3 0 1 ]
-
adjoint
(A)¶ l’adjoint de la matrice \(A\)
- Paramètres
A – une matrice
Exemple :
simula : A = matrice([[2i-1, i-1], [2 + i, 5-3i]])
A =
[-1 + 2*i -1 + i]
[ 2 + i 5 - 3*i]
simula : adjoint(A)
[-1 - 2*i 2 - i]
[ -1 - i 5 + 3*i]
-
concataneLigne
(A, B)¶ la matrice augmentée \((A \ B)\).
- Paramètres
A – une matrice
B – une matrice
Exemple :
simula : A = matrice([[1,2,3],[0,1,0],[-1,1,1]])
A =
[ 1 2 3 ]
[ 0 1 0 ]
[-1 1 1 ]
simula : concataneLigne(A, A)
[ 1 2 3 1 2 3 ]
[ 0 1 0 0 1 0 ]
[-1 1 1 -1 1 1 ]
-
concataneColonne
(A, B)¶ la matrice augmentée \(\begin{pmatrix} A\\B \end{pmatrix}\)
- Paramètres
A – une matrice
B – une matrice
Exemple :
simula : A = matrice([[1,2,3],[0,1,0],[-1,1,1]])
A =
[ 1 2 3 ]
[ 0 1 0 ]
[-1 1 1 ]
simula : concataneColonne(A, A)
[ 1 2 3 ]
[ 0 1 0 ]
[-1 1 1 ]
[ 1 2 3 ]
[ 0 1 0 ]
[-1 1 1 ]
-
ker
(A)¶ le noyau de la matrice \(A\).
- Paramètres
A – une matrice
Exemple :
simula : A = matrice([[1,2,3],[1,-1,-1],[-1,1,1]])
A =
[ 1 2 3 ]
[ 1 -1 -1 ]
[-1 1 1 ]
simula : ker(A)
Vect( (-1/3, -4/3, 1)^T )
-
Im
(A)¶ l’image de la matrice \(A\) i.e le sous espace vectoriel engendré par les colonnes de \(A\).
- Paramètres
A – une matrice
Exemple :
simula : A = matrice([[1,2,3],[0,1,0],[-1,1,1]])
A =
[ 1 2 3 ]
[ 0 1 0 ]
[-1 1 1 ]
simula : Im(A)
Vect( (1, 0, -1)^T, (2, 1, 1)^T, (3, 0, 1)^T )
-
exp
(A)¶ l’exponentielle de la matrice \(A\).
- Paramètres
A – une matrice
Exemple :
simula : A = In(3)
simula : exp(A)
[ e 0 0 ]
[ 0 e 0 ]
[ 0 0 e ]
-
echelonneeReduite
(A)¶ la forme échelonnée réduite de la matrice \(A\).
- Paramètres
A – une matrice
Exemple :
simula : A = matrice([[1,2,3,3],[0,1,0,1],[-1,1,1,-1]])
A1 =
[ 1 2 3 3 ]
[ 0 1 0 1 ]
[-1 1 1 -1 ]
simula : echelonneeReduite(A)
[1 0 0 7/4 ]
[0 1 0 1 ]
[0 0 1 -1/4 ]
-
estNilpotente
(A)¶ renvoie « OUI » si la matrice A est nilpotente et « NON » dans le cas contraire.
- Paramètres
A – une matrice
Exemple :
simula : A = matrice([[1,2,3,],[0,1,0],[1,1,-1]])
simula : estNilpotente(A)
Non
-
lin
((v1, v2, ..., vn)) # vect((v1, v2, ..., vn))¶ le sous espace vectoriel engendré par les vecteurs \((v_1,v_2,...,v_n)\) où chaque \(v_i\) appartient à \(K^m\) i.e \(v_i = (x_1,x_2,...,x_m)\).
- Paramètres
vi – un m-uplet
Exemple :
simula : B1 = lin( ( (1,2,3,3), (0,1,0,1), (-1,1,1,-1) ) )
B1 = Vect( (1, 2, 3, 3), (0, 1, 0, 1), (-1, 1, 1, -1) )
simula : B2 = vect( ((1,2,1), (2,0,1), (3,2,2)) )
B2 = Vect( (1, 2, 1), (2, 0, 1) )
-
estLibre
((v1, v2, ...vk))¶ renvoie “OUI” si la famille \((v_1,v_2,...v_k)\) est libre et “NON” dans le cas contraire.
- Paramètres
vi – un m-uplet
Exemple :
simula : estLibre( ( (1,2,3,3), (0,1,0,1), (-1,1,1,-1) ) )
Oui
simula : estLibre( ((1,2,1), (2,0,1), (3,2,2)) )
Non
-
limiteMatrice
(A, n -> n0) # limiteMatrice(A, n, n0)¶ la limite de \(A(n)\) quand n tends vers \(n_0\)
- Paramètres
A – une matrice
n – une variable
n0 – un nombre ou « oo » pour \(+\infty\) ou « -oo » pour \(+\infty\).
Exemple :
simula : A = matrice([[1/n,2,3],[0,3/n,0],[-1,1,5/n]])
A =
[1/n 2 3 ]
[ 0 3/n 0 ]
[ -1 1 5/n ]
simula : limiteMatrice(A, n -> oo)
[ 0 2 3 ]
[ 0 0 0 ]
[-1 1 0 ]
simula : limiteMatrice(A, n -> -1)
[-1 2 3 ]
[ 0 -3 0 ]
[-1 1 -5 ]
-
resoudreMatrice
(A, b)¶ la résolution de l’équation (matricielle) \(AX = b\) où \(X\) et \(b\) sont des vecteurs colonnes (matrice-colonnes) et \(A\) une matrice.
- Paramètres
A – une matrice
b – un vecteur colonne
Exemple :
simula : A = matrice([[1,2,3],[0,1,0],[-1,1,1]])
A =
[ 1 2 3 ]
[ 0 1 0 ]
[-1 1 1 ]
simula : b = vecteurColonne( (1,2,-2) )
b =
[ 1 ]
[ 2 ]
[-2 ]
simula : resoudreMatrice(A, b)
[ 9/4 ]
[ 2 ]
[-7/4 ]
-
gramSchmidt
([u1, u2, ..., un])¶ renvoie une base orthogonale à partir de (\((u_1, u_2,..., u_n)\) en utilisant le procédé d’orthogonalisation de Gram-Schmidt
- Paramètres
A – une matrice
Exemple :
simula : gramSchmidt( [(1,0,1), (0,1,-2), (-1,1,-1)])
[(1, 0, 1), (1, 1, -1), (-1/3, 2/3, 1/3)]
-
orthoNormee
([u1, u2, ..., un])¶ renvoie une base orthonormale à partir de (\((u_1, u_2,..., u_n)\) en utilisant le procédé d’orthogonalisation de Gram-Schmidt
- Paramètres
A – une matrice
Exemple :
simula : orthoNormee( [(1,0,0), (0,1,-2), (-1,1,-1)])
[(1, 0, 0), (0, racine(5)/5, -2*racine(5)/5), (0, 2*racine(5)/5, racine(5)/5)]
-
produitScalaire
(u, v)¶ le produit scalaire de deux vecteur \(u\) et \(v\).
- Paramètres
u – un vecteur
v – un vecteur
Exemple :
simula : produitScalaire( (1,2,-1), (-1,1,-1) )
2
simula : produitScalaire( (1,0,-1), (-1,1,-1) )
0
Décomposition d’une matrice¶
-
cholesky
(A)¶ la décomposition de cholesky de la matrice \(A\) i.e une matrices \(L\) triangulaire inférieure telle que \(A = LL^T\).
- Paramètres
A – une matrice symétrique définie positive
Exemple :
simula : B = matrice([ [1,1,1,1], [1,5,5,5], [1,5,14,14], [1,5,14,15]])
[1 1 1 1 ]
[1 5 5 5 ]
[1 5 14 14 ]
[1 5 14 15 ]
simula : cholesky(B)
[1 0 0 0 ]
[1 2 0 0 ]
[1 2 3 0 ]
[1 2 3 1 ]
-
decompositionLU
(A)¶ la décomposition LU de la matrice \(A\) i.e deux matrices \(L\) et \(U\) telles que \(A = LU\) avec \(L\) triangulaire inférieure et \(U\) triangulaire supérieure.
- Paramètres
A – une matrice
Exemple :
simula : A = matrice([[1,2,3],[0,1,0],[-1,1,1]])
A =
[ 1 2 3 ]
[ 0 1 0 ]
[-1 1 1 ]
simula : decompositionLU(A)
L =
[1 0 0 ]
[2 1 0 ]
[3 2 1 ]
U =
[1 2 3 ]
[0 -3 -6 ]
[0 0 4 ]
-
decompositionLDL
(A)¶ la décomposition LDL de la matrice \(A\) i.e deux matrices \(L\) et \(D\) telles que \(A = LDL^T\) avec \(D\) diagonale et \(L\) triangulaire inférieure. La matrice \(A\) doit être un carré, symétrique, définie positive et non singulière.
- Paramètres
A – une matrice qui est un carré, symétrique, définie positive et non singulière.
Exemple :
simula : D = matrice([(25, 15, -5), (15, 18, 0), (-5, 0, 11)])
[25 15 -5 ]
[15 18 0 ]
[-5 0 11 ]
simula : decompositionLDL(D)
L =
[ 1 0 0 ]
[ 3/5 1 0 ]
[-1/5 1/3 1 ]
D =
[25 0 0 ]
[ 0 9 0 ]
[ 0 0 9 ]
-
decompositionQR
(A)¶ la décomposition QR de la matrice \(A\) i.e deux matrices \(Q\) et \(R\) telles que \(A = QR\) avec \(Q\) orthogonale et \(R\) triangulaire supérieure.
- Paramètres
A – une matrice
Exemple :
simula : A = matrice([ [12, -51, 4], [6, 167, -68], [-4, 24,-41] ])
[12 -51 4 ]
[ 6 167 -68 ]
[-4 24 -41 ]
simula : decompositionQR(A)
Q =
[ 6/7 -69/175 -58/175 ]
[ 3/7 158/175 6/175 ]
[-2/7 6/35 -33/35 ]
R =
[14 21 -14 ]
[ 0 175 -70 ]
[ 0 0 35 ]
-
decompositionDunford
(A)¶ renvoie la décomposition de Dunford de la matrice \(A\) i.e deux matrices \(D\) (diagonalisable) et \(N\) (nilpotente) telles que \(DN = ND\).
- Paramètres
A – une matrice
Exemple :
simula : B = matrice([ [2,0,1], [1,1,0], [-1,1,3]])
[ 2 0 1 ]
[ 1 1 0 ]
[-1 1 3 ]
simula : decompositionDunford(B)
D =
[2 0 0 ]
[0 2 0 ]
[0 0 2 ]
N =
[ 0 0 1 ]
[ 1 -1 0 ]
[-1 1 1 ]
Réduction des matrices¶
-
polyCaract
(A)¶ le polynôme caractéristique de la matrice \(A\) i.e \(\det(A-xI_n)\).
- Paramètres
A – une matrice
Exemple :
simula : A=matrice([ [-1,1,1], [1,-1,1], [1,1,-1]])
A =
[-1 1 1 ]
[ 1 -1 1 ]
[ 1 1 -1 ]
simula : polyCaract(A)
-x^3 - 3*x^2 + 4 = -(x - 1)*(x + 2)^2
-
valeursPropres
(A)¶ les valeurs propres de la matrice \(A\) et leur ordre de multiplicité.
- Paramètres
A – une matrice
Exemple :
simula : A=matrice([ [-1,1,1], [1,-1,1], [1,1,-1]])
A =
[-1 1 1 ]
[ 1 -1 1 ]
[ 1 1 -1 ]
simula : valeursPropres(A)
lambda_1 = 1 et m(lambda_1) = 1
lambda_2 = -2 et m(lambda_2) = 2
-
spectre
(A)¶ le spectre de la matrice \(A\).
- Paramètres
A – une matrice
Exemple :
simula : A=matrice([ [-1,1,1], [1,-1,1], [1,1,-1]])
A =
[-1 1 1 ]
[ 1 -1 1 ]
[ 1 1 -1 ]
simula : spectre(A)
{1, -2}
-
valeursSingulieres
(A)¶ les valeurs singulières de la matrice \(A\).
- Paramètres
A – une matrice
Exemple :
simula : A=matrice([ [-1,1,1], [1,-1,1], [1,1,-1]])
A =
[-1 1 1 ]
[ 1 -1 1 ]
[ 1 1 -1 ]
simula : valeursSingulieres(A)
[1, 2, 2]
-
vecteursPropres
(A)¶ l’ensemble des sous espaces propres de la matrice \(A\).
- Paramètres
A – une matrice
Exemple :
simula : A=matrice([ [-1,1,1], [1,-1,1], [1,1,-1]])
A =
[-1 1 1 ]
[ 1 -1 1 ]
[ 1 1 -1 ]
simula : vecteursPropres(A)
E_1 = Vect( (1, 1, 1)^T )
E_-2 = Vect( (-1, 1, 0)^T, (-1, 0, 1)^T )
-
sousEspacePropre
(A, lambda)¶ le sous espace propre associé à la valeur propre lambda
- Paramètres
A – une matrice
lambda – une valeur propre
Exemple :
simula : B = matrice([ [2,0,1], [1,1,0], [-1,1,3]]); spectre(B)
{2}
simula : sousEspacePropre(B, 2)
Vect( (1, 1, 0)^T )
-
sousEspaceCaract
(A, lambda)¶ le sous espace caractéristique associé à la valeur propre lambda
- Paramètres
A – une matrice
lambda – une valeur propre
Exemple :
simula : B = matrice([ [2,0,1], [1,1,0], [-1,1,3]]); spectre(B)
{2}
simula : sousEspaceCaract(B, 2)
Vect( (1, 0, 0)^T, (0, 1, 0)^T, (0, 0, 1)^T )
-
espacePropreGen
(A, lambda, k)¶ le sous espace propre généralisé d’ordre \(k\) associé à la valeur propre lambda i.e \(\ker( (A-lambda*I_n)^k )\).
- Paramètres
A – une matrice
lambda – une valeur propre
k – un entier
Exemple :
simula : B = matrice([ [2,0,1], [1,1,0], [-1,1,3]]); spectre(B)
{2}
simula : espacePropreGen(B, 2, 4)
Vect( (1, 0, 0)^T, (0, 1, 0)^T, (0, 0, 1)^T )
-
estDiagonalisable
(A)¶ renvoie « OUI » si la matrice A est diagonalisable et « NON » dans le cas contraire.
- Paramètres
A – une matrice
Exemple :
simula : B = matrice([ [2,0,1], [1,1,0], [-1,1,3]])
[ 2 0 1 ]
[ 1 1 0 ]
[-1 1 3 ]
simula : estDiagonalisable(B)
Non
-
diagonaliser
(A)¶ Elle renvoie deux matrices \(P\) et \(D\) où \(P\) est inversible et \(D\) diagonale telles que \(A = PDP^{-1}\) si \(A\) est semblable à une matrice diagonale.
- Paramètres
A – une matrice
Exemple :
simula : A=matrice([ [-1,1,1], [1,-1,1], [1,1,-1]])
A =
[-1 1 1 ]
[ 1 -1 1 ]
[ 1 1 -1 ]
simula : diagonaliser(A)
P =
[-1 -1 1 ]
[ 1 0 1 ]
[ 0 1 1 ]
D =
[-2 0 0 ]
[ 0 -2 0 ]
[ 0 0 1 ]
-
jordanBlock
(lambda, k)¶ block de jordan de taille \(k \times k\) associé à la valeur propre lambda.
- Paramètres
lambda – un nombre ou une variable
k – un entier
Exemple :
simula : jordanBlock(3, 5)
[3 1 0 0 0 ]
[0 3 1 0 0 ]
[0 0 3 1 0 ]
[0 0 0 3 1 ]
[0 0 0 0 3 ]
simula : jordanBlock(x, 4)
[x 1 0 0 ]
[0 x 1 0 ]
[0 0 x 1 ]
[0 0 0 x ]
-
jordaniser
(A)¶ réduite de Jordan de la matrice \(A\). Elle renvoie deux matrices \(P\) et \(J\) où \(P\) est inversible et \(J\) une forme normale de Jordan telles que \(A = PJP^{-1}\).
- Paramètres
A – une matrice
Exemple :
simula : B = matrice([ [2,0,1], [1,1,0], [-1,1,3]])
[ 2 0 1 ]
[ 1 1 0 ]
[-1 1 3 ]
simula : jordaniser(B)
P =
[-1 0 1 ]
[-1 1 0 ]
[ 0 -1 0 ]
J =
[2 1 0 ]
[0 2 1 ]
[0 0 2 ]