Maison interface Web Questions et réponses frontales Vous pouvez utiliser JavaScript pour trouver la matrice inverse

Vous pouvez utiliser JavaScript pour trouver la matrice inverse

May 09, 2023 pm 02:33 PM

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 + 3 4 8 - 3 5 7 - 2 4 9 - 1 6 8 = 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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Qu'est-ce que l'utilisation Effecte? Comment l'utilisez-vous pour effectuer des effets secondaires? Qu'est-ce que l'utilisation Effecte? Comment l'utilisez-vous pour effectuer des effets secondaires? Mar 19, 2025 pm 03:58 PM

L'article traite de l'utilisation Effecte dans React, un crochet pour gérer les effets secondaires comme la récupération des données et la manipulation DOM dans les composants fonctionnels. Il explique l'utilisation, les effets secondaires courants et le nettoyage pour éviter des problèmes comme les fuites de mémoire.

Expliquez le concept de chargement paresseux. Expliquez le concept de chargement paresseux. Mar 13, 2025 pm 07:47 PM

Le chargement paresseux retarde le chargement du contenu jusqu'à ce qu'il soit nécessaire, améliorant les performances du Web et l'expérience utilisateur en réduisant les temps de chargement initiaux et la charge du serveur.

Comment fonctionne l'algorithme de réconciliation React? Comment fonctionne l'algorithme de réconciliation React? Mar 18, 2025 pm 01:58 PM

L'article explique l'algorithme de réconciliation de React, qui met à jour efficacement le DOM en comparant les arbres DOM virtuels. Il traite des avantages de la performance, des techniques d'optimisation et des impacts sur l'expérience utilisateur. Compte de charge: 159

Comment fonctionne le currying en JavaScript et quels sont ses avantages? Comment fonctionne le currying en JavaScript et quels sont ses avantages? Mar 18, 2025 pm 01:45 PM

L'article traite du curry dans JavaScript, une technique transformant les fonctions mulguments en séquences de fonctions à argument unique. Il explore la mise en œuvre du currying, des avantages tels que des applications partielles et des utilisations pratiques, améliorant le code

Quelles sont les fonctions d'ordre supérieur en JavaScript, et comment peuvent-ils être utilisés pour écrire du code plus concis et réutilisable? Quelles sont les fonctions d'ordre supérieur en JavaScript, et comment peuvent-ils être utilisés pour écrire du code plus concis et réutilisable? Mar 18, 2025 pm 01:44 PM

Les fonctions d'ordre supérieur dans JavaScript améliorent la concision du code, la réutilisabilité, la modularité et les performances par abstraction, modèles communs et techniques d'optimisation.

Qu'est-ce que UseContext? Comment l'utilisez-vous pour partager l'état entre les composants? Qu'est-ce que UseContext? Comment l'utilisez-vous pour partager l'état entre les composants? Mar 19, 2025 pm 03:59 PM

L'article explique UseContext dans React, qui simplifie la gestion de l'État en évitant le forage des accessoires. Il traite des avantages tels que les améliorations centralisées de l'État et des performances grâce à des redevances réduites.

Comment connectez-vous les composants React au magasin Redux à l'aide de Connect ()? Comment connectez-vous les composants React au magasin Redux à l'aide de Connect ()? Mar 21, 2025 pm 06:23 PM

L'article discute de la connexion des composants React à Redux Store à l'aide de Connect (), expliquant MapStateToproprop, MapDispatchToprops et des impacts de performances.

Comment empêchez-vous le comportement par défaut dans les gestionnaires d'événements? Comment empêchez-vous le comportement par défaut dans les gestionnaires d'événements? Mar 19, 2025 pm 04:10 PM

L'article discute de la prévention des comportements par défaut dans les gestionnaires d'événements à l'aide de la méthode empêchée dedEfault (), de ses avantages tels que une expérience utilisateur améliorée et des problèmes potentiels tels que les problèmes d'accessibilité.

See all articles