线性代数:矩阵基本运算 矩阵怎么进行加减
在本文中,我们将介绍矩阵的大部分根本运算,依次是矩阵的加减法、矩阵的标量乘法、矩阵与矩阵的乘法、求转置矩阵,以及深刻懂得矩阵的行列式运算 。本文将不会涉及逆矩阵、矩阵的秩等概念,将来再探讨它们 。
矩阵的加减法【线性代数:矩阵基本运算 矩阵怎么进行加减】矩阵的 加法 与 减法 运算将吸收两个矩阵作为输入,并输出一个新的矩阵 。矩阵的加法和减法都是在分量级别上进行的,因此要进行加减的矩阵必需有着雷同的维数 。
为了避免反复编写加减法的代码,我们先创立一个可以吸收运算函数的办法,这个办法将对两个矩阵的分量分离履行传入的某种运算 。然后在加法、减法或者其它运算中直接调用它就行了:
class Matrix { // ... componentWiseoperation(func, { rows }) { const newRows = rows.map((row, i) => row.map((elemen资源网t, j) => func(this.rows[i][j], element)) )&资源网nbsp; return new Matrix(...newRows) } add(other) { return this.componentWiseOperation((a, b) => a + b, other) } subtract(other) { return this.componentWiseOperation((a, b) => a - b, other) }}const one = new Matrix( [1, 2], [3, 4])const other = new Matrix( [5, 6], [7, 8])console.log(one.add(other))// Matrix { rows: [ [ 6, 8 ], [ 10, 12 ] ] }console.log(other.subtract(one))// Matrix { rows: [ [ 4, 4 ], [ 4, 4 ] ] }复制代码矩阵的标量乘法矩阵的标量乘法与向量的缩放相似,就是将矩阵中的每个元素都乘上标量:
class Matrix { // ... scaleBy(number) { const newRows = this.rows.map(row => row.map(element => element * number) ) return new Matrix(...newRows) }}const matrix = new Matrix( [2, 3], [4, 5])console.log(matrix.scaleBy(2))// Matrix { rows: [ [ 4, 6 ], [ 8, 10 ] ] }复制代码矩阵乘法当 A 、 B 两个矩阵的维数是 兼容 的时候,就能对这两个矩阵进行矩阵乘法 。所谓维数兼容,指的是 A 的列数与 B 的行数雷同 。矩阵的乘积 AB 是通过对 A 的每一行与矩阵 B 的每一列盘算点积得到:
文章插图
class Matrix { // ... multiply(other) { if (this.rows[0].length !== other.rows.length) { throw new Error('The number of columns of this matrix is not equal to the number of rows of the given matrix.') } const columns = other.columns() const newRows = this.rows.map(row => columns.map(column => sum(row.map((element, i) => element * column[i]))) ) return new Matrix(...newRows) }}const one = new Matrix( [3, -4], [0, -3], [6, -2], [-1, 1])const other = new Matrix( [3, 2, -4], [4, -3, 5])console.log(one.multiply(other))// Matrix {// rows:// [ [ -7, 18, -32 ],// [ -12, 9, -15 ],// [ 10, 18, -34 ],// [ 1, -5, 9 ] ]}复制代码我们可以把矩阵乘法 AB 视为先后运用 A 和 B 两个线性变换矩阵 。为了更好地懂得这种概念,可以看一看我们的linear-algebra-demo 。资源网
下图中黄色的部分就是对红色方块运用线性变换 C 的成果 。而线性变换 C 就是矩阵乘法 AB 的成果,其中 A 是做相对于 y 轴进行反射的变换矩阵, B 是做剪切变换的矩阵 。
推荐阅读
- 围棋快速入门之基本规则 围棋规则图解
- 有哪些简单的瘦腰瑜伽?
- 12岁的男孩标准身高体重
- 儿童生长痛的4个特征
- 自闭症孩子基本不会笑
- TikTok开始在应用中提供一个基本款文本到图像AI生成器
- 5岁孩子尿床
- 国家基本药物制度 基本药物制度
- 高温|高温下居民到古墓纳凉?当地回应:基本没有破坏
- 羊肉焖面的家常做法