


Vous pouvez utiliser JavaScript pour trouver la matrice inverse
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.
- 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,na2,1 a2,2 ... a2,n ... ... ... ... am,1 am,2 ... am,n]
# 🎜🎜#v = [v1
v2 ... vn]
- 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 est une nouvelle matrice obtenue en échangeant les lignes et les colonnes de la matrice. Par exemple :
A = [1 2 3
4 5 6]
A' = [1 4
2 5 3 6]
- 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.
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
- 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 :
4 5 6 7 8 9]
5
9 + 26#🎜 🎜 #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; }
}
#🎜🎜 ## 🎜🎜#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.
- Par exemple, pour la matrice 3x3 suivante : A = [1 2 3
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 :
- function inverse(A) {
- }#🎜 🎜## 🎜🎜#test code
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 connexionNous 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);
- console.log("Ainv = "); console.log(Ainv);
console.log("A * Ainv = ");
console.log(I);
A =
Le résultat de sortie doit être comme indiqué ci-dessous :[ [ 1, 2, 3 ],
[ [ 1, 0, 0 ],
[ 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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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.

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.

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

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

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.

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.

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

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