矩阵

矩阵是一组数字

矩阵是一个矩形阵列

矩阵排列为行数

矩阵尺寸

这个矩阵1行和3列:

C=
2 5 3

这个方面矩阵的值为 (1X3)。


这个矩阵有2行和3列:

C=
2 5 3
4 7 1

矩阵的维数是 (2X3)。


方阵

方阵是行数和列数相同的矩阵。

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 的等价矩阵。符号为

我=
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;

另一个简单的数学对象是数组:

const array = [ 1, 2, 3 ];

矩阵是二维数组:

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

向量可以写为矩阵只有一列:

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

向量也可以写成数组:

const vector = [ 1, 2, 3 ];

JavaScript 矩阵运算

在 JavaScript 中编写矩阵运算很容易变成循环的意大利面条。

使用 JavaScript 库将为您省去很多麻烦。

用于矩阵运算的最常见库之一称为数学.js

可以使用一行代码将其添加到您的网页:

使用 math.js

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

添加矩阵

如果两个矩阵具有相同的维数,我们可以将它们相加:

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 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时间=
1 3
2 4

矩阵相乘

矩阵相乘更加困难。

我们只能将两个矩阵相乘,如果矩阵A中的个数相同在矩阵 B 中。

然后,我们需要编译一个"dot product":

我们需要将每个数字相乘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 C
1 2 3
X
1 1 1
2 2 2
3 3 3
 = 
6 12 18

6 = 1x1 + 2x1 + 3x1
12 = 1x2 + 2x2 + 3x2
18 = 1x3 + 2x3 + 3x3

如果你知道如何矩阵相乘,你就可以解很多复杂的方程。

示例

你卖玫瑰。

  • 红玫瑰每朵3美元
  • 白玫瑰每朵4美元
  • 黄玫瑰每朵2美元
  • 星期一你卖了 260 朵玫瑰
  • 星期二你卖了 200 朵玫瑰
  • 星期三你卖了 120 朵玫瑰

所有销售的值是多少?

Red Rose$3 White$4 Yellow$2
周一 120 80 60
星期二 90 70 40
星期三 60 40 20
A C C
$3
$4
$2
X
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 C C
$3
$4
$2
X
120 80 60
90 70 40
60 40 20
 = 
$3x120 + $4x80 + $2x60
$3x90 + $4x70 + $2x40
$3x60 + $4x40 + $2x20
 = 
$800
$630
$380

矩阵分解

使用人工智能,您需要知道如何分解矩阵。

矩阵分解是线性代数中的关键工具,尤其是线性最小二乘法。