矩阵
矩阵是一组数字。
矩阵是一个矩形阵列。
矩阵排列为行数和列。
矩阵尺寸
这个矩阵有1行和3列:
这个方面矩阵的值为 (1X3)。
这个矩阵有2行和3列:
矩阵的维数是 (2X3)。
方阵
方阵是行数和列数相同的矩阵。
n×n 矩阵称为 n 阶方阵。
2×2矩阵(2 阶方阵):
4×4矩阵(4 阶方阵):
C= |
1 |
-2 |
3 |
4 |
5 |
6 |
-7 |
8 |
4 |
3 |
2 |
-1 |
8 |
7 |
6 |
-5 |
|
对角矩阵
对角矩阵对角线条目上有值,并且零其余的:
标量矩阵
标量矩阵具有相等的对角线条目并且零其余的:
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 |
|
如果将任何矩阵与单位矩阵相乘,结果等于原始矩阵。
零矩阵
这个零矩阵(空矩阵)只有零。
等矩阵
矩阵是相等如果每个元素对应:
负矩阵
这个消极的矩阵的形式很容易理解:
JavaScript 中的线性代数
在线性代数中,最简单的数学对象是标量:
另一个简单的数学对象是数组:
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>
添加矩阵
如果两个矩阵具有相同的维数,我们可以将它们相加:
示例
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] ]
亲自试一试 »
矩阵减法
如果两个矩阵具有相同的维度,我们可以将它们相减:
示例
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] ]
亲自试一试 »
标量乘法
虽然行和列中的数字被称为矩阵,单个数字称为标量。
将矩阵与标量相乘很容易。只需将矩阵中的每个数字与标量相乘即可:
示例
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中的个数相同行在矩阵 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] ]
亲自试一试 »
解释:
6 = |
1x1 + 2x1 + 3x1 |
12 = |
1x2 + 2x2 + 3x2 |
18 = |
1x3 + 2x3 + 3x3 |
如果你知道如何矩阵相乘,你就可以解很多复杂的方程。
示例
你卖玫瑰。
- 红玫瑰每朵3美元
- 白玫瑰每朵4美元
- 黄玫瑰每朵2美元
- 星期一你卖了 260 朵玫瑰
- 星期二你卖了 200 朵玫瑰
- 星期三你卖了 120 朵玫瑰
所有销售的值是多少?
|
$3 |
$4 |
$2 |
周一 |
120 |
80 |
60 |
星期二 |
90 |
70 |
40 |
星期三 |
60 |
40 |
20 |
A |
|
乙 |
|
C |
|
C |
|
X |
120 |
80 |
60 |
90 |
70 |
40 |
60 |
40 |
20 |
|
= |
|
= |
|
示例
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 |
|
X |
120 |
80 |
60 |
90 |
70 |
40 |
60 |
40 |
20 |
|
= |
$3x120 + $4x80 + $2x60 |
$3x90 + $4x70 + $2x40 |
$3x60 + $4x40 + $2x20 |
|
= |
|
矩阵分解
使用人工智能,您需要知道如何分解矩阵。
矩阵分解是线性代数中的关键工具,尤其是线性最小二乘法。