マトリックス

行列は数値のセットです。

行列は長方形配列です。

行列は行に配置されます。

マトリックスの寸法

このマトリックスには、 13列があります。

C =  
2 5 3

行列の次元は(1 x 3)です。


このマトリックスには、 23列があります。

C =  
2 5 3
4 7 1

行列の次元は(2 x 3)です。


正方行列

正方行列は、同じ数の行と列を持つ行列です

n行n列の行列は、n次の正方行列として知られています。

2行2列の行列(2次の正方行列):

C =  
1 2
3 4

4行4列の行列(4次の正方行列):

C =  
1 -2 3 4
5 6 -7 8
4 3 2 -1
8 7 6 -5

対角行列

対角行列値は対角要素にあり、残り の値はゼロです。

C =   
2 0 0
0 5 0
0 0 3

スカラー行列

スカラー行列は、等しい対角要素があり、残りは ゼロです。

C =   
3 0 0 0
0 3 0 0
0 0 3 0
0 0 0 3

単位行列

単位行列には、対角線上に1、残りの部分に0があります。

これは1に相当する行列です。記号はIです。

I =   
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

いずれかの行列に単位行列を掛けると、結果は元の行列と等しくなります。


ゼロマトリックス

ゼロ行列(ヌル行列)にはゼロしかありません

C =   
0 0 0
0 0 0

等しい行列

各要素が対応する場合、行列は等しい:

2 5 3
4 7 1
  =  
2 5 3
4 7 1

負の行列

行列の負数は簡単に理解できます。

  -  
-2 5 3
-4 7 1
  =  
2 -5 -3
4 -7 -1

JavaScriptの線形代数

線形代数では、最も単純な数学オブジェクトはスカラーです。

const scalar = 1;

もう1つの単純な数学オブジェクトは配列です:

const array = [ 1, 2, 3 ];

行列は2次元配列です:

const matrix = [ [1,2],[3,4],[5,6] ];

ベクトルは、1つの列のみで行列として記述できます。

const vector = [ [1],[2],[3] ];

ベクトルは配列として書くこともできます

const vector = [ 1, 2, 3 ];

JavaScriptマトリックス操作

JavaScriptで行列演算をプログラミングすると、簡単にループのスパゲッティになる可能性があります。

JavScriptライブラリを使用すると、頭痛の種を大幅に減らすことができます。

行列演算に使用する最も一般的なライブラリの1つは、math.jsと呼ばれます。

1行のコードでWebページに追加できます。

math.jsを使用する

<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/9.3.2/math.js"></script>

行列の追加

2つの行列の次元が同じである場合、それらを追加できます。

2 5 3
4 7 1
 + 
4 7 1
2 5 3
 = 
6 12 4
6 12 4

const mA = math.matrix([[1, 2], [3, 4], [5, 6]]);
const mB = math.matrix([[1,-1], [2,-2], [3,-3]]);

// Matrix Addition
const matrixAdd = math.add(mA, mB);

// Result [ [2, 1], [5, 2], [8, 3] ]


行列の減算

2つの行列の次元が同じである場合、それらを減算できます。

2 5 3
4 7 1
 - 
4 7 1
2 5 3
 = 
-2 -2 2
2 2 -2

const mA = math.matrix([[1, 2], [3, 4], [5, 6]]);
const mB = math.matrix([[1,-1], [2,-2], [3,-3]]);

// Matrix Subtraction
const matrixSub = math.subtract(mA, mB);

// Result [ [0, 3], [1, 6], [2, 9] ]

行列を加算または減算するには、それらが同じ次元である必要があります。


スカラー乗法

行と列の数値は行列と呼ばれ、単一の数値はスカラーと呼ばれます。

行列にスカラーを掛けるのは簡単です。行列の各数値にスカラーを掛けるだけです。

2 5 3
4 7 1
   x 2 =   
4 10 6
8 14 2

const mA = math.matrix([[1, 2], [3, 4], [5, 6]]);

// Matrix Multiplication
const matrixMult = math.multiply(2, mA);

// Result [ [2, 4], [6, 8], [10, 12] ]

const mA = math.matrix([[0, 2], [4, 6], [8, 10]]);

// Matrix Division
const matrixDiv = math.divide(mA, 2);

// Result [ [0, 1], [2, 3], [4, 5] ]


行列を転置する

行列を転置するということは、行を列に置き換えることを意味します。

行と列を入れ替えるときは、行列を対角線の周りで回転させます。

A =   
1 2
3 4
    A T =  
1 3
2 4

行列の乗算

行列の乗算はより困難です。

行列Aの行数が行列Bの列数と同じである場合にのみ、2つの行列を乗算できます。

次に、「ドット積」をコンパイルする必要があります。

Aの各行の数値にBの各列の数値を掛けてから、積を加算する必要があります。

const mA = math.matrix([[1, 2, 3]]);
const mB = math.matrix([[1, 2, 3], [1, 2, 3], [1, 2, 3]]);

// Matrix Multiplication
const matrixMult = math.multiply(mA, mB);

// Result [ [6, 12, 18] ]

説明:

A B C C
1
2
3
 バツ 
1 1 1
2 2 2
3 3 3
 = 
1x1 + 2x1 + 3x1
1x2 + 2x2 + 3x2
1x3 + 2x3 + 3x3
 = 
6
12
18

行列の乗算方法を知っていれば、多くの複雑な方程式を解くことができます。

あなたはバラを売っています。

  • 赤いバラはそれぞれ3ドルです
  • 白いバラはそれぞれ4ドルです
  • 黄色いバラはそれぞれ2ドルです
  • 月曜日に260本のバラを販売しました
  • 火曜日に200本のバラを販売しました
  • 水曜日に120本のバラを販売しました

すべての売上の価値は何でしたか?

赤いバラ$ 3 白い$ 4 黄色$ 2
月曜日1208060
火曜日907040
結婚した604020
A B C C
$ 3
$ 4
$ 2
 バツ 
120 80 60
90 70 40
60 40 20
 = 
800ドル
630ドル
380ドル
 = 
1810ドル

const mA = math.matrix([[3, 4, 2]]);
const mB = math.matrix([[120, 90, 60], [80, 70, 40], [60, 40, 20]);

// Matrix Multiplication
const matrixMult = math.multiply(mA, mB);

// Result [ [800, 630, 380] ]

説明:

A B C C
$ 3
$ 4
$ 2
 バツ 
120 80 60
90 70 40
60 40 20
 = 
$ 3x120 + $ 4x80 + $ 2x60
$ 3x90 + $ 4x70 + $ 2x40
$ 3x60 + $ 4x40 + $ 2x20
 = 
800ドル
630ドル
380ドル

行列の因数分解

AIでは、行列を因数分解する方法を知る必要があります。

行列の因数分解は、線形代数、特に線形最小二乗法の重要なツールです。