JavaScript を使用して逆行列を見つけることができます
逆行列は、線形代数における重要な計算です。連立方程式の解法や変換行列の計算など、数学的な計算やエンジニアリングの実践でよく使用されます。この記事では、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 サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











この記事では、functionコンポーネントでのデータフェッチやDOM操作などの副作用を管理するためのフックであるReactの使用Effectについて説明します。メモリリークなどの問題を防ぐための使用、一般的な副作用、およびクリーンアップについて説明します。

怠zyな読み込みは、必要になるまでコンテンツの読み込みを遅延させ、初期負荷時間とサーバーの負荷を削減することにより、Webパフォーマンスとユーザーエクスペリエンスを改善します。

JavaScriptの高次関数は、抽象化、共通パターン、および最適化技術を通じて、コードの簡潔さ、再利用性、モジュール性、およびパフォーマンスを強化します。

この記事では、JavaScriptのカレーについて説明します。これは、マルチアーグメント関数を単一argument関数シーケンスに変換する手法です。 Curryingの実装、部分的なアプリケーションなどの利点、実用的な用途、コード読み取りの強化を調査します

この記事では、ReactのUseContextを説明しています。これにより、小道具掘削を避けることで国家管理を簡素化します。再レンダーの削減により、集中状態やパフォーマンスの改善などの利点について説明します。

この記事では、Virtual DOMツリーを比較してDOMを効率的に更新するReactの調整アルゴリズムについて説明します。パフォーマンスの利点、最適化技術、ユーザーエクスペリエンスへの影響について説明します。

記事では、PreventDefault()メソッドを使用して、イベントハンドラーのデフォルト動作の防止、ユーザーエクスペリエンスの強化などの利点、およびアクセシビリティの懸念などの潜在的な問題について説明します。

この記事では、予測可能性、パフォーマンス、ユースケースなどの側面に焦点を当てた、Reactの制御されていないコンポーネントと制御されていないコンポーネントの利点と欠点について説明します。それらを選択する際に考慮することを要因についてアドバイスします。
