L'inversion de matrice est un calcul important en algèbre linéaire. Elle est souvent utilisée dans les calculs mathématiques et les pratiques d'ingénierie, telles que la résolution de systèmes d'équations, le calcul de matrices de transformation, etc. Cet article présente comment utiliser le langage JavaScript pour implémenter la fonction d'inversion d'une matrice.
1. Connaissances de base en algèbre linéaire
Avant de présenter comment inverser une matrice en JavaScript, nous devons d'abord comprendre quelques connaissances de base en algèbre linéaire.
La matrice est une table de nombres rectangulaire, qui se compose de m lignes et n colonnes et peut être exprimée sous la forme : # #
A = [a1,1 a1,2 ... a1,na2,1 a2,2 ... a2,n ... ... ... ... am,1 am,2 ... am,n]
# #v = [v1
v2 ... vn]
A = [1 2 3
4 5 6]
A' = [1 4
2 5 3 6]
A^-1 = A^-1
A = I.Notez que seule la matrice carrée peut être inversée.
2. Utilisez JavaScript pour implémenter la matrice inverse L'implémentation de la matrice inverse en JavaScript nécessite des connaissances mathématiques et des algorithmes de base. Ci-dessous, nous présenterons étape par étape la méthode de mise en œuvre spécifique.Trouver le déterminant d'une matrice
4 5 6 7 8 9]
5
9 + 26# #7 + 348 - 357 - 249 - 168 = 0Nous pouvons utiliser la récursivité pour résoudre le déterminant. Lorsque la taille de la matrice est 1x1, le déterminant est égal à la valeur de l'élément ; lorsque la taille de la matrice est 2x2, le déterminant est égal au produit des éléments supérieur gauche et inférieur droit moins le produit des éléments supérieur droit et inférieur gauche ; lorsque la taille de la matrice est supérieure à 2x2, le déterminant est égal à la somme du déterminant de la sous-matrice composée du premier élément de chaque ligne et des éléments restants multipliée par le correspondant coefficients.Ce qui suit est le code JavaScript pour résoudre le déterminant :
function det(A) {
var n = A.length; if (n === 1) { return A[0][0]; } else if (n === 2) { return A[0][0] * A[1][1] - A[0][1] * A[1][0]; } else { var sum = 0; for (var i = 0; i < n; i++) { var submatrix = []; for (var j = 1; j < n; j++) { submatrix.push(A[j].slice(0, i).concat(A[j].slice(i + 1))); } var sign = Math.pow(-1, i); var cofactor = sign * det(submatrix); sum += A[0][i] * cofactor; } return sum; }
}
# ## #Trouver la matrice adjointe d'une matriceLa matrice adjointe d'une matrice (matrice adjugée) est le produit de l'inverse de la matrice et de son déterminant. Chaque élément de la matrice adjointe est le cofacteur algébrique de la matrice.
4 5 6 7 8 9]
Sa matrice adjointe est :
# #adj(A) = [ -3 6 -36 -12 6 -3 6 -3 ]
var n = A.length; var adjA = []; for (var i = 0; i < n; i++) { adjA[i] = []; for (var j = 0; j < n; j++) { var submatrix = []; for (var k = 0; k < n; k++) { if (k !== i) { submatrix.push(A[k].slice(0, j).concat(A[k].slice(j + 1))); } } var sign = Math.pow(-1, i + j); adjA[i][j] = sign * det(submatrix); } } return adjA;
}
Trouver l'inverse d'une matricePour trouver l'inverse d'une matrice, vous il faut d'abord trouver la matrice adjointe et le déterminant de la matrice. Ensuite, selon la formule A^-1 = adj(A) / |A|, c'est-à-dire que la matrice adjointe de la matrice est divisée par son déterminant pour obtenir la matrice inverse.
Ce qui suit est le code JavaScript pour résoudre la matrice inverse :
var n = A.length; var detA = det(A); if (detA === 0) { console.log("Matrix is not invertible."); return null; } var adjA = adj(A); var Ainv = []; for (var i = 0; i < n; i++) { Ainv[i] = []; for (var j = 0; j < n; j++) { Ainv[i][j] = adjA[j][i] / detA; } } return Ainv;
Nous pouvons utiliser un simple code de test pour vérifier l'exactitude du code JavaScript ci-dessus pour résoudre la matrice inverse :
var A = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
console.log("A = ");console.log (A) ;
console.log("A * Ainv = ");
console.log(I);
Le résultat de sortie doit être comme indiqué ci-dessous :
[ [ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7 , 8, 9]] # # Ainv = # # [[-0.5000000000000001, 1, -0,5], # # [1, -2, 1], # # # [-0.50000000000001, 1, -0.5 ] ]# #A * Ainv =
[ 0, 0.99999999999999997, 0 ],
[ 3.3306690738754696e-16, 0, 1 ] ]# #
Comme vous pouvez le constater, le résultat est très proche de la matrice identitaire.
3. Résumé
Résoudre la matrice inverse est un calcul mathématique très important. En tant que langage de programmation populaire, le langage JavaScript peut facilement implémenter la fonction de résolution de matrices inverses. Cet article présente la méthode spécifique de résolution de la matrice inverse à l'aide du langage JavaScript, notamment la recherche du déterminant, de la matrice adjointe et de la matrice inverse de la matrice. Espérons que cet article sera utile aux développeurs JavaScript qui doivent effectuer des calculs mathématiques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!