Algèbre linéaire

_images/algebre.png

Définition d’une matrice et d’un vecteur

Considérons la matrice \(A=(a_{ij})\) d’ordre \(n\times p\).

\[\begin{split}A=\left( \begin{matrix} a_{11}&a_{12} & ... &a_{1j}&... & a_{1p}\\ a_{21} & a_{22} & ... & a_{2j}& ... & a_{2p} \\ \vdots &\vdots &\vdots &\vdots & \vdots &\vdots \\ a_{i1}&a_{i2} & ... & a_{ij}& ... & a_{ip}\\ \vdots &\vdots &\vdots &\vdots & \vdots &\vdots \\ a_{n1} &a_{n2} & ... & a_{nj} & ... & a_{np} \end{matrix} \right)\end{split}\]

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\)\(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\)\(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\)\(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 ]