0% ont trouvé ce document utile (0 vote)
73 vues7 pages

Calculs matriciels en Python : Guide complet

Transféré par

Olivier Ngamboma
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
73 vues7 pages

Calculs matriciels en Python : Guide complet

Transféré par

Olivier Ngamboma
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd

CHAPITRE 3 : IMPLÉMENTATION DES CALCULS MATRICIELLES SOUS PYTHON

En programmation, l’implémentation fait référence à la façon dont une idée, une fonctionnalité, un
algorithme ou une solution est mise en œuvre en utilisant un langage de programmation.

Dans notre travail, nous avons opté pour le langage Python qui est un langage bien adapté par sa
puissance, sa polyvalence et sa grande bibliothèque.

3.1 Rapide historique de python

Python est un langage de programmation interprété, polyvalent et orienté objet, créé par Guido van
Rossum en 1989 et publié pour la première fois en 1991. Le programme orienté objet tente de
modéliser le monde réel grâce à l’utilisation d’objets qui combinent les méthodes et les données.
(https://www.sciencedirect.com/topics/computer-science/object-oriented-languages )

De 1989-1991, Guido van Rossum travaillait au Centre de mathématiques et d’informatique (CWI)


aux Pays-Bas. Il cherchait un langage simple et intuitif, mais puissant, pour écrire des scripts tout en
facilitant le débogage, Python est fortement inspiré du langage ABC, conçu pour enseigner la
programmation, mais avec des fonctionnalités améliorées comme la gestion des exceptions et
l’extensibilité. Ce nom « Python » vient de la série humoristique britannique Monty Python’s Flying
Circus, et non du serpent.

Version 1.0 (1991) est la première version officielle. Elle introduit les concepts clés comme les
fonctions, les modules, les exceptions et les types de données fondamentaux (listes, dictionnaires,
etc.) dans les années 1990, Python gagne en popularité grâce à sa syntaxe claire et ses modules
extensible.

C’est dans les années 2000 qu'une organisation à but non lucratif nommée python software
foundation est créée pour soutenir le développement de Python. C’est alors que Python 2.0 est
introduit dans le marché avec des fonctionnalités importantes comme la gestion automatique de la
mémoire (garbage collection) et les list comprehensions. Cependant, il souffrait de limitations liées à
la compatibilité ascendante. Puis en 2008 une refonte majeure Python 3.0 qui corrige les
incohérences de Python 2 mais tout en cassant la compatibilité avec les anciennes versions.

À partir de 2010 à aujourd’hui que Python est devenu l’un des langages les plus populaires, grâce à sa
simplicité et son adoption dans des domaines variés : développement web, data science, intelligence
artificielle, automatisation, et plus encore.

Python aujourd’hui est constitué d'une vaste communauté qui continue à accroître sa popularité et
contribue à des milliers de bibliothèques tout en facilitant l’adoption pour des cas d’utilisation
spécifiques.

Aujourd’hui Python est largement utilisé par des entreprises comme Google, Netflix, Instagram, et
est enseigné comme langage d’introduction dans de nombreuses universités. Il est apprécié pour sa
simplicité, sa polyvalence et sa richesse en ressources.

3.2 Algorithme des opérations matricielles

Avant de commencer notre travailler sur Python, il est indispensable que nous élaborons d’abord nos
algorithme. Comme il a été précisé dans le chapitre un l’élaboration des algorithmes est une étape
cruciale dans le travail de programmation informatique.
Les calculs matriciels en algorithmique impliquent des opérations comme l’addition, la soustraction,
la multiplication, la transposition, et le calcul de déterminants ou d’inverses de matrices.

Voici les algorithmes pour chaque opération

A) Addition de matrices

Principe : Additionner les éléments correspondants de deux matrices.

Algorithme addition de matrices

Début

Entrée : Deux matrices A et B de dimensions m x n

Sortie : Matrice C = A + B

1. Si les dimensions de A et B ne sont pas égales, afficher « Addition impossible » et arrêter.

2. Créer une matrice C de dimensions m x n.

3. Pour i allant de 1 à m :

Pour j allant de 1 à n :

C[i][j] = A[i][j] + B[i][j]

4. Retourner C

Fin

B) Multiplication de matrices

Principe : La multiplication d’une matrice (m x n) par une matrice (n x p) produit une matrice (m x
p). L’élément est calculé comme le produit scalaire de la iᵉ ligne de et de la jᵉ colonne de .

Algorithme multiplication de matrices

Début

Entrée : Deux matrices A (m x n) et B (n x p)

Sortie : Matrice C = A * B

1. Si le nombre de colonnes de A ≠ nombre de lignes de B, afficher « Multiplication impossible » et


arrêter.

2. Créer une matrice C de dimensions m x p, initialisée à 0.

3. Pour i allant de 1 à m :

Pour j allant de 1 à p :

Pour k allant de 1 à n :

C[i][j] = C[i][j] + A[i][k] * B[k][j]

4. Retourner C

Fin
C) Multiplication par un scalaire

Principe : On multiplie chaque élément de la matrice par le scalaire donné.

Entrées :Une matrice M de dimensions m × n (avec m lignes et n colonnes).

Un scalaire k

Sortie : Une matrice R de dimensions m × n , le résultat de la multiplication de M par k

Algorithme multiplication par un scalaire

Début

Lire m, n (les dimensions de la matrice M).

Créer une matrice M de dimensions m × n

Pour i allant de 1 à m :

Pour j allant de 1 à n

Lire M[i][j] (élément à la position i, j).

Lire k (le scalaire).

Créer une matrice R de dimensions m × n pour stocker le résultat.

Pour i allant de 1 à m :

Pour j allant de 1 à n :

R[i][j]  k × M[i][j]

Afficher R

Fin

D) Soustraction des matrices

Principe : L’algorithme de la soustraction matricielle consiste à soustraire les éléments


correspondants de deux matrices. Pour que la soustraction soit valide, les matrices doivent avoir la
même dimension (nombre de lignes et de colonnes).

Algorithme soustraction matricielle

Entrées :Deux matrices A et B de taille m × n

Sortie :Une matrice C de taille m × n où chaque élément est obtenu par la soustraction des éléments
correspondants de A et B

1. Vérifier que les matrices A et B ont la même dimension.


2. Créer une matrice C de la même dimension que A et B.
3. Pour chaque élément i, j calculer la matrice C[i][j] = A[i][j] + B[i][j]
4. Retourner la matrice C

Algorithme soustraction_matricielle(A, B)

Début
Si taille(A) ≠ taille(B) alors

Afficher '’ Les matrices doivent avoir la même taille. '’

Retourner

Fin Si

Créer une matrice C de même taille que A et B.

Pour chaque i de 1 à m (nombre de lignes de A et B) faire

Pour chaque j de 1 à n (nombre de colonnes de A et B) faire

C[i][j] ← A[i][j] – B[i][j]

Fin Pour

Fin Pour

Retourner C

Fin

E) Transposition de matrice

Principe : La transposée d’une matrice (m x n) est une matrice (n x m) obtenue en échangeant les
lignes et colonnes.

Algorithme transposition de matrice

Début

Entrée : Matrice A de dimensions m x n

Sortie : Matrice A^T de dimensions n x m

1. Créer une matrice A^T de dimensions n x m.

2. Pour i allant de 1 à m :

Pour j allant de 1 à n :

A^T[j][i] = A[i][j]

3. Retourner A^T

Fin

F) Calcul du déterminant (Matrice 2x2)

Principe : Pour une matrice A = ( a bc d ) le déterminant est det(A) = ad - bc

Algorithme déterminant Matrice 2×2

Début

Entrée : Matrice A de dimensions 2 x 2

Sortie : Déterminant de A
Si A n’est pas une matrice 2x2, afficher ‘’Calcul impossible '’ et arrêter.

Sinon Calculer det = A[1][1] * A[2][2] – A[1][2] * A[2][1]

Retourner det

Fin

G) Inversion de matrice (2x2)

L’inversion d’une matrice est une opération qui consiste à trouver une matrice de forme A-¹ de sorte
que A × A-¹ = I où A est la matrice d’entrée et I est la matrice identité de même dimension.

Algorithme

1. Entrée : Une matrice carrée de A dimension n×n


2. Sortie : La matrice inverse A-¹ ou un message indiquant que A n’est pas inversible.

Étapes de l’algorithme

1. Initialisation :Construire une matrice A augmentée , où est la matrice identité de taille


n×n
2. Élimination de Gauss :

Pour chaque ligne de , effectuer les étapes suivantes :

Si l’élément diagonal , échanger cette ligne avec une autre ligne ayant un élément non nul
dans la même colonne.

Diviser toute la ligne par (le pivot) pour rendre .

Pour chaque ligne , soustraire un multiple approprié de la ligne pour rendre tous les
éléments de la colonne , sauf le pivot, égaux à 0.

3. Validation : Si à tout moment un pivot est nul et qu’il n’est pas possible de l’échanger, la
matrice n’est pas inversible.
4. Extraction : Une fois réduit à , extraire depuis la partie droite.

Algorithme Inversion_Matrice(A)

Début

Entrée : Matrice carrée A de dimension n × n

Sortie : Matrice inverse A_inv ou un message d’erreur

1. Construire la matrice augmentée [A|I], où I est la matrice identité

2. Pour i allant de 1 à n :

a. Si A[i][i] = 0 :

- Trouver une ligne k > i avec A[k][i] ≠ 0

- Si aucune ligne n’est trouvée, retourner '’ A n’est pas inversible '’

- Échanger les lignes i et k

b. Diviser la ligne i par A[i][i] pour rendre le pivot égal à 1


c. Pour chaque ligne j ≠ i :

- Soustraire A[j][i] * (ligne i) de la ligne j

3. Extraire la partie droite de [I|A^{-1}] comme étant A^{-1}

4. Retourner A^{-1}

Fin

H) Division des matrices

La division matricielle n’existe pas directement comme dans le cas d’autres opérations , car les
matrices ne possèdent pas de véritables résultats si elles ne respectent pas certaines règles.
Cependant, pout résoudre une division matricielle implicite on reformule A/B égal A × B -¹e
problème comme une multiplication par l’inverse :

1. Vérifier si est B carrée : L’inverse d’une matrice n’existe que pour les matrices carrées. Si
n’est pas carrée, il n’est pas possible d’inverser .
2. Calculer le déterminant de : Si le déterminant de B est nul ( det(B) = 0) ; alors B n’est pas
inversible.
3. Calculer : Si B est inversible, utilisez la formule pour obtenir l’inverse. Pour une matrice
carrée ou 2×2, l’inverse est donnée par : B-¹=1/det(B).
4. Multiplier A par B-¹ : effectuer cette opération pour obtenir le résultat

Algorithme division matricielle

Début

Entrée : Deux matrices A (n × m) et B (m × m)

Sortie : Résultat de A / B (n × m), ou message d’erreur si non possible

1. Si B n’est pas carrée (m × m) :

Afficher '’Erreur : B doit être une matrice carrée '’

Arrêter

2. Calculer det(B) Si det(B) == 0 :

Afficher ‘’ Erreur : B n’est pas inversible '’

Arrêter

Sinon Calculer det = B[1][1] * B[2][2] – B[1][2] * B[2][1]

3. Calculer l’inverse de B, noté B_inv =


4. Calculer le produit matriciel C = A × B_inv
5. Retourner C

Fin

3.3 Implémentation des opérations matricielles sous Python


A) Addition

B) Soustraction

C) Transposition

D) Calcul du déterminant

E) Inversion

F) Division

Vous aimerez peut-être aussi