Nom : RAKOTOMALALA
Prénoms : Alain Nantenaina
Mention : Génie électrique
Niveau : L3
N° matricule :030-25/L3/GE
Factoriel
Définition
Pour tout entier naturel n≥ 𝟎,le factoriel de n , note n !, est définie par :
n !=n× (𝒏 − 𝟏) × (𝒏 − 𝟐) × … × 𝟐 × 𝟏
Par convention :
0 !=1
Calcule du factoriel avec python :
Matrice triangulaire supérieur
Système triangulaire supérieur
C’est un système de la forme :
𝑎11𝑋1 + 𝑎12𝑋2 + ⋯ + 𝑎1𝑛𝑋𝑛 = 𝑏1
𝑎22 + ⋯ + 𝑎2𝑛𝑋𝑛 = 𝑏2
⋱
𝑎𝑛𝑛𝑋𝑛 = 𝑏𝑛
{
On commence Substitution arrière :
par la dernière équation :
𝑏𝑛
Xn=
𝑎𝑛𝑛
Puis on remonte (pour k= n-1 à 1)
1
Xk= ( bk-∑𝑛𝑗=𝑘+1 𝑎𝑘𝑗𝑋𝑗 )
𝑎𝑘𝑘
Si le pivot est nul
On échange la ligne k avec une autre ligne i tel que i > 𝑘 pour avoir un aik ≠ 0
Cela modifie l’ordre des équations mais pas la solution
System triangulaire supérieur avec pivot nul
géré en python :
Système triangulaire inferieur
Système de la forme :
𝑎11 = 𝑏1
{ 𝑎21𝑋1 + 𝑎22 = 𝑏2
⋱
𝑎𝑛1𝑋1 + ⋯ + 𝑎𝑛𝑛𝑋𝑛 = 𝑏𝑛
Substitution avant :
On commence par la première équation :
𝑏1
X1=
𝑎11
Puis on avance (pour k=2 à n) :
1
Xk= ( bk-∑𝑘−1
𝑗=1 𝑎𝑘𝑗𝑋𝑗 )
𝑎𝑘𝑘
Si le pivot est nul
On échange la ligne k avec une autre ligne i tel que i > 𝑘 pour avoir un aik ≠ 0
Cela modifie l’ordre des équations mais pas la solution
System triangulaire inferieur avec pivot nul
géré en python :
Méthode de GAUSS
Soit un système de n équations à n inconnues :
𝑎11𝑋1 + 𝑎12𝑋2 + ⋯ + 𝑎1𝑛𝑋𝑛 = 𝑏1
𝑎21𝑋1 + 𝑎22𝑋2 + ⋯ + 𝑎2𝑛𝑋𝑛 = 𝑏2
𝑎31𝑋1 + 𝑎32𝑋2 + ⋯ + 𝑎3𝑛𝑋𝑛 = 𝑏3
. . . .
. . . .
. . . .
{𝑎𝑛1𝑋1 + 𝑎𝑛2𝑋2 + ⋯ + 𝑎𝑛𝑛𝑋𝑛 = 𝑏𝑛
Sous forme matricielle augmentée :
𝑎11 𝑎12 ⋯ 𝑎1𝑛 𝑋1 𝑏1
(𝑎21 𝑎22 ⋯ 𝑎2𝑛) (𝑋2) = (𝑏2)
⋮ ⋮ ⋱ ⋮ ⋮ ⋮
𝑎𝑛1 𝑎𝑛2 … 𝑎𝑛𝑛 𝑋𝑛 𝑏𝑛
Etape 1 : Elimination
Matrice augmentée :
𝑎11 𝑎12 … 𝑎1𝑛 𝑏1
𝑏2
[𝐴|𝑏⃗] = (𝑎21 𝑎22 … 𝑎2𝑛| )
⋮ ⋮ ⋱ ⋮ ⋮
𝑎𝑛1 𝑎𝑛2 … 𝑎𝑛𝑛 𝑏𝑛
Elimination de GAUSS :
-Normalisation de la ligne pivot :
Lk
Lk← cela rend le pivot égale à 1
akk
-élimination des autres ligne (en dessous pour chaque ligne Li avec i > 𝑘.
Li←Li - aik . Lk cela annule tous les coefficients sous le pivot dans la colonne.
Mais au cas où le pivot est nul si le pivot akk=0
Alors on doit chercher une ligne Lr avec r> 𝑘 et Lrk≠ 0 .
on fait une échange de ligne Lk↔Lr
si aucune ligne n’a ark≠ 0
Le système est soit :
-Compatible indéterminé (il y a une infinité de solution)
-Incompatible (pas de solution)
Une fois la matrice en forme triangulaire supérieur on résout :
Xn=b’n
Xn-1=b’n-1 – a’n-1. Xn
. . .
. . .
. . .
X1=b’1 -∑𝑛𝑗=2 𝑎′ 1𝑗 . 𝑋𝑗
Code python de méthode de GAUSS avec un pivot nul :
Méthode de GAUSS-JORDAN
Soit un système de n équations à n inconnues :
𝑎11𝑋1 + 𝑎12𝑋2 + ⋯ + 𝑎1𝑛𝑋𝑛 = 𝑏1
𝑎21𝑋1 + 𝑎22𝑋2 + ⋯ + 𝑎2𝑛𝑋𝑛 = 𝑏2
𝑎31𝑋1 + 𝑎32𝑋2 + ⋯ + 𝑎3𝑛𝑋𝑛 = 𝑏3
. . . .
. . . .
. . . .
{𝑎𝑛1𝑋1 + 𝑎𝑛2𝑋2 + ⋯ + 𝑎𝑛𝑛𝑋𝑛 = 𝑏𝑛
On va le transforme sous forme matricielle augmentée :
𝑎11 𝑎12 ⋯ 𝑎1𝑛 𝑏1
[𝐴|𝐵] = (𝑎21 𝑎22 ⋯ 𝑎2𝑛|𝑏2)
⋮ ⋮ ⋱ ⋮ ⋮
𝑎𝑛1 𝑎𝑛2 … 𝑎𝑛𝑛 𝑏𝑛
On va transforme ce tableau en forme réduite échelonnée :
Donc on obtient :
1 0 0 | 𝑋1
0 1 0 | 𝑋2
[ ]
0 0 1 | 𝑋2
⋮ ⋮ ⋮ | ⋮
Etape de GAUSS-JORDAN
Normalisation du pivot :
Pour chaque ligne k, on rend le pivot akk=1
𝐿𝑘
Lk← 𝑎𝑘𝑘
Annulation des autres éléments de la colonne :
Pour toute ligne i≠ 𝑘,on rend le terme aik=0 :
Li←Li – aik .Lk
0
⋮
Cela transforme la colonne k en : 1
⋮
[0]
On répète ces deux étapes pour chaque colonne k =1 à n.
𝑥1
𝑥2
A la fin on obtient [𝐼|𝑋] où X=[ ] .
⋮
𝑥𝑛
Mais si les pivots sont nuls :
akk=0 alors on doit échanger la ligne k avec une autre ligne r> 𝑘
tel que ark≠ 0
Sinon, le système est :
Soit impossible (pas de solution)
Soit indéterminé (infinité de solution).
Code python de méthode de GAUSS-JORDAN avec un pivot nul :
Méthode de Cholesky
Le système à résoudre est tridiagonal :
On cherche à résoudre un système linéaire de la forme :
𝑏1 𝑐1 0 … 0 𝑥1 𝑦1
𝑎2 𝑏2 𝑐2 … 0 𝑥2 𝑦2
0 𝑎3 𝑏3 … 0 𝑥3 = 𝑦3
⋮ ⋮ ⋮ ⋱ 𝑐𝑛 − 1 ⋮ ⋮
[0 0 0 𝑎𝑛 𝑏𝑛 ] [𝑥𝑛] [𝑦𝑛]
Où :
-ai est le coefficient sous la diagonale pour i = 2 à n
- bi est le coefficient de la diagonale principale pour i= 1 à n
-ci est la coefficient au-dessus de la diagonale pour i= 1 à n-1
On calcule deux suites :
Ai (modification de ci)
Bi (modification de yi)
Phase de descente :
𝑐1 𝑦1
A1=-𝑏1 ; B1=𝑏1
Pour i =i à n
𝑐𝑖 𝑦𝑖−𝑎𝑖𝐵𝑖−1
Ai = - 𝑎𝑖𝐴𝑖−1+𝑏𝑖 ; Bi = 𝑎𝑖𝐴𝑖−1+𝑏𝑖
Remontée :
xn=Bn
Pour i=n-1 à 1
xi=Aixi+1 + Bi
Pivot nul :
Si pour certain i, on a :
Pivot i =aiAi-1+bi=0
Alors on ne peut pas continuer car cela entrainerait une division par zéro dans les formules de Ai et Bi
Ce cas signifie que le système est :
Singulier (pas de solution unique)
Ou qu’il nécessite un modification (pivot partiel, permutation)
Code python de méthode de Cholesky avec un pivot nul :