Calculateur de matrices, gratuit
Effectuez des opérations matricielles : addition, soustraction, multiplication, transposition, déterminant et inverse.
Matrice A
Matrice B
Comment ça marche
Définissez les dimensions des matrices A et B, saisissez les valeurs et sélectionnez une opération. Le calculateur vérifie les dimensions et effectue l'opération, affichant le résultat dans une grille matricielle claire.
Opérations prises en charge
- Addition et soustraction · nécessite des matrices de mêmes dimensions
- Multiplication · les colonnes de A doivent égaler les lignes de B
- Transposition · inverse lignes et colonnes (A^T, B^T)
- Déterminant · matrices carrées uniquement (det(A), det(B))
- Inverse · matrices carrées avec déterminant non nul (A^−1, B^−1)
Questions fréquentes
Quelles dimensions de matrice sont prises en charge ?
Les matrices jusqu'à 6×6 sont prises en charge. Sélectionnez le nombre de lignes et de colonnes pour chaque matrice avant de saisir les valeurs.
Quand puis-je calculer un inverse ?
L'inverse d'une matrice n'existe que pour les matrices carrées (même nombre de lignes et de colonnes) avec un déterminant non nul. Les matrices singulières (déterminant = 0) n'ont pas d'inverse.
Mes données sont-elles enregistrées ?
Non. Tous les calculs s'exécutent dans votre navigateur. Rien n'est enregistré ni envoyé à un serveur.
Ce qu'est réellement une matrice
Une matrice est un tableau rectangulaire de nombres disposés en lignes et en colonnes et traité comme un seul objet mathématique. La forme s'écrit m × n, où m est le nombre de lignes et n le nombre de colonnes, toujours les lignes d'abord. Les nombres individuels à l'intérieur sont les entrées ou éléments ; une entrée à la ligne i, colonne j, se note aij avec une indexation à partir de 1. (L'un des bugs les plus courants lors du portage d'articles de mathématiques vers le code est le décalage entre cette convention à partir de 1 et l'indexation à partir de 0 utilisée par le C, Python et JavaScript.)
Un vecteur est une matrice à une seule ligne (1 × n, « vecteur ligne ») ou à une seule colonne (m × 1, « vecteur colonne »). Un scalaire est une matrice 1 × 1. Cette imbrication compte : elle signifie que chaque opération de l'algèbre linéaire (produits scalaires, projections, transformations) peut s'exprimer uniformément comme une arithmétique matricielle, ce qui explique pourquoi les matrices sont devenues le langage universel des mathématiques appliquées après 1900.
Petite histoire
Le plus ancien précurseur connu se trouve dans l'ouvrage chinois Les Neuf Chapitres sur l'art mathématique (vers le IIe siècle av. J.-C.), qui utilisait une méthode tabulaire d'élimination de Gauss appelée fangcheng pour résoudre des systèmes d'équations linéaires. Le terme moderne « matrix » a été forgé par le mathématicien anglais James Joseph Sylvester en 1850, à partir du mot latin signifiant « utérus », une structure au sein de laquelle des sous-déterminants pouvaient croître. L'article fondateur fut le « A Memoir on the Theory of Matrices » de 1858, d'Arthur Cayley, ami et collaborateur de Sylvester, qui formalisa la multiplication matricielle, la matrice identité, la matrice nulle et l'inverse, transformant les matrices d'une simple commodité de notation en une algèbre à part entière.
Tout au long de la fin du XIXe et du début du XXe siècle, l'élimination de Gauss-Jordan, la théorie des valeurs propres et le théorème spectral ont consacré les matrices comme l'outil central de l'algèbre linéaire. Les tournants du XXe siècle furent la formulation de la mécanique matricielle de la théorie quantique par Werner Heisenberg en 1925 (ce qui explique pourquoi les physiciens ont commencé à prendre les matrices au sérieux), l'article de 1947 de John von Neumann et Herman Goldstine sur l'inversion numérique de matrices d'ordre élevé, qui fonda l'algèbre linéaire numérique moderne, et la sortie en 1979 de BLAS (Basic Linear Algebra Subprograms) et celle en 1992 de LAPACK : les bibliothèques optimisées que toute plateforme de calcul scientifique, de MATLAB à NumPy, appelle en dernier ressort.
Les six opérations fondamentales, expliquées
Addition et soustraction. Les deux matrices doivent avoir des dimensions identiques. Le résultat a la même forme et chaque entrée est la somme terme à terme : cij = aij + bij. Vous ne pouvez pas additionner une 2×3 à une 3×2 ; l'opération n'est pas définie. L'addition matricielle est commutative et associative, exactement comme l'addition ordinaire des nombres.
Multiplication matricielle. L'opération qui rend les matrices puissantes, et celle que la plupart des gens comprennent de travers au premier contact. Pour que C = A × B soit définie, les dimensions internes doivent correspondre : si A est m × n, B doit être n × p, et le résultat C est m × p. Le « n » du milieu s'annule ; les « m » et « p » extérieurs subsistent. Chaque entrée se calcule comme un produit scalaire d'une ligne de A avec une colonne de B : cij = Σ aik · bkj sommé sur k.
Un exemple concret en 2×2 :
A = [1 2] B = [5 6] A·B = [1·5+2·7 1·6+2·8] = [19 22]
[3 4] [7 8] [3·5+4·7 3·6+4·8] [43 50]
La multiplication matricielle n'est pas commutative : A·B ≠ B·A en général, et parfois les deux produits sont même de formes différentes. (Si A est 2×3 et B est 3×2, A·B est 2×2 mais B·A est 3×3.) Cette non-commutativité est la source d'une grande partie de la richesse de l'algèbre linéaire et explique pourquoi l'article de 1858 de Cayley est considéré comme fondateur.
Transposée : notée AT, échange les lignes et les colonnes. L'entrée qui était à la ligne i, colonne j, devient l'entrée à la ligne j, colonne i. Donc si A est m × n, AT est n × m. Identité utile : (A·B)T = BT·AT, avec l'ordre inversé.
Déterminant : un unique scalaire qui résume une matrice carrée. Pour une 2×2, c'est ad − bc ; pour des matrices plus grandes, il se développe récursivement par développement en cofacteurs (impraticable au-delà de 4×4) ou par décomposition LU (l'algorithme qu'utilisent les ordinateurs, en O(n³)). Géométriquement, la valeur absolue du déterminant est le facteur par lequel l'application linéaire met à l'échelle les aires (en 2D), les volumes (en 3D), et ainsi de suite. Un déterminant de 2 signifie que le carré unité est transformé en un parallélogramme d'aire 2 ; un déterminant négatif signifie un renversement d'orientation (une réflexion en miroir) ; un déterminant nul signifie que la transformation écrase tout sur une droite ou un point, la matrice est singulière (non inversible).
Inverse : notée A⁻¹, l'unique matrice telle que A · A⁻¹ = A⁻¹ · A = I, où I est la matrice identité. L'inverse « annule » ce que fait A. Elle n'existe que pour les matrices carrées de déterminant non nul. Les ordinateurs calculent les inverses par élimination de Gauss-Jordan ou par décomposition LU. Pour une 2×2, la formule est la célèbre (1/det) × [d, -b; -c, a].
Pourquoi les matrices comptent au-delà des mathématiques scolaires
Les matrices sont partout dans l'informatique moderne parce que toute transformation linéaire est une matrice :
- Graphisme 3D : chaque position, rotation, mise à l'échelle et projection est une matrice homogène 4×4. Chaque image que votre GPU rend en multiplie des milliers. OpenGL et Direct3D exposent tous deux des piles de matrices explicites ; les moteurs modernes les enveloppent, mais les mathématiques sont inchangées.
- Apprentissage automatique : chaque couche de réseau de neurones est une multiplication matricielle. Un grand modèle de langage moderne à 70 milliards de paramètres est, structurellement, quelques centaines de multiplications matricielles par passe avant. cuBLAS, cuDNN, les Tensor Cores de NVIDIA et les TPU de Google sont du matériel dédié à la multiplication matricielle à grande échelle : tout l'essor de l'IA est, en une phrase, la prise de conscience que les GPU rendent la multiplication matricielle très, très rapide.
- Vision par ordinateur : l'analyse en composantes principales (ACP) et la décomposition en valeurs singulières (SVD) réduisent des données de pixels à haute dimension à des caractéristiques de faible dimension. La compression d'images (la DCT du JPEG) est de l'arithmétique matricielle.
- Recherche sur le web : l'algorithme PageRank original de Google (Brin et Page, 1998) calcule le vecteur propre principal d'une matrice de liens de 30 millions par 30 millions. Il fonctionne parce que les matrices modélisent exactement les chaînes de Markov.
- Statistiques : les équations normales de la régression linéaire sont
β = (XTX)−1XTy. Tout logiciel statistique les résout par décomposition QR ou SVD. - Cryptographie : les chiffrements par blocs comme AES impliquent des transformations matricielles sur des corps finis. Les portes de l'informatique quantique sont des matrices unitaires.
- Vibrations et génie des structures : l'analyse modale (trouver les fréquences de vibration naturelles d'un pont) est un problème de valeurs propres sur les matrices de rigidité et de masse.
Des matrices particulières à connaître
- Matrice identité I : carrée, des 1 sur la diagonale et des 0 ailleurs.
A·I = I·A = A. La matrice « ne rien faire ». - Diagonale : des entrées non nulles uniquement sur la diagonale principale. Multiplier par une matrice diagonale met à l'échelle chaque ligne ou colonne indépendamment.
- Triangulaire (supérieure ou inférieure), des entrées non nulles uniquement sur ou au-dessus (ou au-dessous) de la diagonale. Facile à inverser et à résoudre pour des systèmes linéaires.
- Symétrique :
A = AT. Toutes les valeurs propres sont réelles ; centrale en optimisation et en statistiques. - Orthogonale :
AT·A = I, c'est-à-dire que l'inverse est égale à la transposée. Les matrices de rotation sont orthogonales ; les transformations orthogonales préservent la longueur et l'angle. - Creuse ou dense : les matrices creuses ont des entrées majoritairement nulles (typiques des matrices d'adjacence de graphes, des matrices de rigidité par éléments finis). Un stockage et des algorithmes creux spécialisés les rendent considérablement plus rapides que les méthodes denses naïves à grande échelle.
Remarques sur la stabilité numérique
L'arithmétique matricielle en virgule flottante cache des pièges qui n'apparaissent pas dans les exemples scolaires. Le conditionnement d'une matrice mesure à quel point son inverse amplifie de petites perturbations de l'entrée : pour une matrice mal conditionnée, une erreur de 0,1 % sur une entrée peut provoquer une erreur de 1000 % sur le résultat. L'exemple pathologique classique est la matrice de Hilbert (entrées 1/(i+j-1)), dont le conditionnement explose exponentiellement avec la taille ; une matrice de Hilbert 6×6 a déjà un conditionnement d'environ 10⁷, ce qui signifie que sept chiffres décimaux de précision sont perdus dans l'inverse.
En pratique, les scientifiques du calcul ne calculent presque jamais A⁻¹ explicitement. Pour résoudre A·x = b, ils utilisent une décomposition LU ou QR ; pour utiliser l'inverse implicitement, ils multiplient A⁻¹·b via une décomposition plutôt que de construire A⁻¹ d'abord. Pour les systèmes mal conditionnés ou rectangulaires, on préfère la pseudo-inverse fondée sur la SVD (inverse de Moore-Penrose). Ce calculateur calcule l'inverse explicite à des fins pédagogiques, ce qui convient pour de petites tailles, mais mérite d'être noté lors d'un passage à l'échelle.
Périmètre en toute honnêteté
Ce calculateur couvre l'addition / la soustraction / la multiplication / la transposition / le déterminant / l'inverse sur des matrices allant jusqu'à 6×6, les opérations qu'un étudiant rencontre dans un premier cours d'algèbre linéaire. Il ne calcule pas les valeurs propres, les vecteurs propres ni les décompositions matricielles (LU, QR, SVD) ; il n'affiche pas les étapes de réduction par lignes ; il ne prend pas en charge les entrées symboliques ou fractionnaires ; il ne gère pas les nombres complexes ; et il n'accepte pas les expressions matricielles comme A²·BT. Pour ces fonctionnalités, des outils dédiés (Symbolab, Wolfram Alpha, MATLAB, NumPy, Octave, SageMath) sont la bonne étape supérieure.
Plus de questions
Pourquoi la multiplication matricielle n'est-elle pas commutative ?
Parce que les matrices représentent des transformations, et l'ordre dans lequel vous appliquez les transformations compte. Pivoter puis translater n'est pas la même chose que translater puis pivoter : la translation entraîne différemment à partir d'une orientation de départ différente. La non-commutativité de la multiplication matricielle est l'encodage algébrique de ce fait physique, et c'est ce qui rend le graphisme 3D et la mécanique quantique intéressants (et délicats).
Quand une matrice n'est-elle pas inversible ?
Lorsque son déterminant est nul (de manière équivalente, lorsque ses lignes (ou colonnes) sont linéairement dépendantes), de manière équivalente, lorsque la transformation linéaire qu'elle représente écrase un vecteur non nul en zéro. Géométriquement, la matrice transforme un espace de dimension supérieure en un sous-espace de dimension inférieure, et vous ne pouvez pas récupérer la dimension perdue. De telles matrices sont dites « singulières ». Pour les matrices mal conditionnées mais techniquement inversibles, l'inverse existe en théorie mais est extrêmement imprécise en virgule flottante ; voyez la section sur la stabilité numérique ci-dessus.
Pourquoi l'indexation à partir de 1 en mathématiques mais à partir de 0 dans le code ?
La convention mathématique remonte à des siècles : la première ligne est la ligne 1 parce que le comptage commence à 1. Les langages de programmation ont adopté l'indexation à partir de 0 parce qu'elle simplifie l'arithmétique de pointeurs sur la mémoire des tableaux : l'élément au décalage i se trouve à base + i × element_size, sans facteur de correction de -1. Les deux conventions sont profondément ancrées ; l'une des sources de bugs les plus fiables est de traduire un article qui dit « ligne 3 » en code qui a besoin de matrix[2].
Existe-t-il un algorithme de multiplication matricielle le plus rapide ?
L'algorithme naïf à triple boucle s'exécute en O(n³). Volker Strassen a montré en 1969 que 7 multiplications suffisent pour une 2×2 (au lieu de 8), donnant un O(n^2.807) asymptotique appliqué récursivement. Des raffinements successifs au fil des décennies ont abaissé la borne théorique à environ O(n^2.371), mais les constantes sont si grandes que, pour toute matrice que vous rencontreriez réellement, le O(n³) naïf implémenté dans BLAS / cuBLAS l'emporte. La borne inférieure est mathématiquement ouverte : elle est d'au moins O(n²), mais personne ne connaît la réponse exacte.
Quelque chose est-il envoyé à un serveur ?
Non. L'arithmétique consiste en des opérations en virgule flottante simples, en JavaScript, calculées dans votre navigateur. Rien de vos matrices ne quitte la page ; l'outil fonctionne hors ligne une fois chargé.