逆行列は、線形代数における重要な計算です。連立方程式の解法や変換行列の計算など、数学的な計算やエンジニアリングの実践でよく使用されます。この記事では、JavaScript 言語を使用して行列の反転関数を実装する方法を紹介します。
1. 線形代数の基礎知識
JavaScript で逆行列を求める方法を紹介する前に、まず線形代数の基礎知識を理解する必要があります。
行列は、m 行 n 列で構成される長方形の数値テーブルであり、次のように表すことができます:
A = [a1,1 a1,2 ... a1,n
a2,1 a2,2 ... a2,n ... ... ... ... am,1 am,2 ... am,n]
ベクトルは列行列であり、次のように表現できます:
v = [v1
v2 ... vn]
行列の加算と乗算は、対応する要素間の演算です。行列加算の結果は、2 つの行列の対応する要素の加算です。行列の乗算の結果は、最初の行列の行と 2 番目の行列の列を乗算し、合計したものになります。
行列の転置(行列転置)とは、行列の行と列を入れ替えて得られる新しい行列です。例:
#A = [1 2 34 5 6]
2 5 3 6]
A^-1 = A^-1 A = I。
反転できるのは正方行列のみであることに注意してください。 2. JavaScript を使用して逆行列を実装する JavaScript で逆行列を実装するには、基本的な数学的知識とアルゴリズムが必要です。以下、具体的な実装方法をステップごとに紹介していきます。4 5 6 7 8 9]
5 9 2 6 7 3 4 8 - 3 5 7 - 2 4 9 - 1 6 8 = 0
再帰を使用して行列式を解くことができます。行列のサイズが 1x1 の場合、行列式は要素の値に等しくなります。行列のサイズが 2x2 の場合、行列式は左上と右下の要素の積から要素の値を引いたものに等しくなります。右上と左下の要素の積、行列のサイズが 2x2 より大きい場合、行列式は、各行の最初の要素と残りの要素で構成される部分行列の行列式の和に対応する値を乗じたものと等しくなります。係数。 以下は行列式を解くための JavaScript コードです: 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; }
4 5 6 7 8 9]
6 -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;
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;
console.log("A = ");
console.log(A);
console.log("Ainv = ");
console.log(Ainv);
console.log(" A * Ainv = ");
console.log(I);
[ [ 1, 2, 3 ] ,
[ 4, 5, 6 ],
[ 7, 8, 9 ] ]
Ainv =
[ [ -0.5000000000000001, 1, -0.5 ],
[ 1, -2 , 1 ] ,
[ -0.5000000000000001, 1, -0.5 ] ]
A * Ainv =
[ [ 1, 0, 0 ],
[ 0, 0.9999999999999997, 0 ],
[ 3.3306690738754696e -16, 0, 1 ] ]
以上がJavaScript を使用して逆行列を見つけることができますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。