Vous pouvez utiliser JavaScript pour trouver la matrice inverse

王林
Libérer: 2023-05-09 14:33:07
original
570 Les gens l'ont consulté

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.

  1. Matrice et vecteur

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,n

a2,1 a2,2 ... a2,n ... ... ... ... am,1 am,2 ... am,n]
Copier après la connexion

Le vecteur est une matrice colonne et peut être exprimé comme :

# #v = [v1

v2 ... vn]
Copier après la connexion

Addition et multiplication matricielles
  1. L'addition et la multiplication matricielles sont des opérations entre les éléments correspondants. Le résultat de l’addition matricielle est l’addition des éléments correspondants de deux matrices. Le résultat de la multiplication matricielle correspond aux lignes de la première matrice multipliées par les colonnes de la deuxième matrice puis additionnées.

Matrix transpose
  1. Matrix transpose est une nouvelle matrice obtenue en échangeant les lignes et les colonnes de la matrice. Par exemple :

A = [1 2 3

4 5 6]
Copier après la connexion

A' = [1 4

2 5 3 6]
Copier après la connexion

Inverse of Matrix# #
  1. L'inverse d'une matrice est une matrice, et le résultat de sa multiplication par la matrice d'origine est la matrice identité. La matrice identité est une matrice avec des 1 sur la diagonale principale et des 0 ailleurs.
Si l'inverse de la matrice A est A^-1, alors il y a A

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

  1. Trouver le déterminant d'une matrice est la première étape pour résoudre l'inverse d'une matrice. Le déterminant est une valeur numérique qui représente le produit des éléments diagonaux d'une matrice moins le produit des éléments hors diagonale. Par exemple :
A = [1 2 3

4 5 6 7 8 9]
Copier après la connexion
Copier après la connexion

|A|A = 1

5

9 + 2

6# #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; }
Copier après la connexion

}

# ## #Trouver la matrice adjointe d'une matrice

La 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.

    Par exemple, pour la matrice 3x3 suivante :
  1. A = [1 2 3
4 5 6 7 8 9]
Copier après la connexion
Copier après la connexion

Sa matrice adjointe est :

# #adj(A) = [ -3 6 -3

6 -12 6 -3 6 -3 ]
Copier après la connexion

Pour résoudre la matrice adjointe, vous pouvez utiliser le code JavaScript suivant :

function adj(A) {# #
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;
Copier après la connexion

}

Trouver l'inverse d'une matrice

Pour 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 :

    function inverse(A) {
  1. 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;
    Copier après la connexion
    }# ## #test code

    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) ;

      var Ainv = inverse(A);
    1. console.log("Ainv = ");
    2. console.log(Ainv);
    # # var I = numeric.dot(A, Ainv);

    console.log("A * Ainv = ");

    console.log(I);


    Le résultat de sortie doit être comme indiqué ci-dessous :

    A =

    [ [ 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 =

    [ [ 1, 0, 0 ],

    [ 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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!