矩阵怎么进行加减(线性代数:矩阵基本运算)

矩阵怎么进行加减(线性代数:矩阵基本运算)

本文将介绍矩阵的大部分基本运算,分别是矩阵的加法和减法、矩阵的标量乘法、矩阵与矩阵的乘法、寻找转置矩阵、深入理解矩阵的行列式运算。逆矩阵和矩阵秩的概念本文不涉及,以后再讨论。

矩阵的加法和减法

矩阵的加法和减法将接收两个矩阵作为输入,并输出一个新矩阵。矩阵的加和减是在组件级执行的,因此要加和减的矩阵必须具有相同的维数。

为了避免重复文佳百科中的加减法代码,我们首先创建一个可以接收运算函数的方法。此方法将分别对两个矩阵的分量执行传入操作。然后在加法、减法或者其他运算中直接调用:

class Matrix {  // ...  componentWiseOperation(func, { rows }) {    const newRows = rows.map((row, i) =>      row.map((element, j) => func(this.rows[i][j], element))    )    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) {   &n嘉文社百科bsp;  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。为了更好地理解这个概念,请看一下我们的线性代数演示。

下图中的黄色部分是对红色方块应用线性变换C的结果。线性变换C是矩阵乘法AB的结果,其中A是相对于Y轴反射的变换矩阵,B是剪切变换矩阵。

如果在矩阵乘法中改变A和B的顺序,会得到不同的结果,因为这相当于先应用B的剪切变换,再应用A的反射变换:

调换

转置矩阵由一个公式定义。换句话说,我们翻转矩阵的对角线,得到转置矩阵。注意,矩阵对角线上的元素不受转置操作的影响。

以上就是由优质生活领域创作者 嘉文社百科网小编 整理编辑的,如果觉得有帮助欢迎收藏转发~

分享到 :
相关推荐

笔记本电脑鼠标动不了怎么办?(鼠标不动的原因)

鼠标不动怎么办?鼠标之所以叫鼠标,是因为它长得像鼠标,而且鼠标的使用率非常频繁。鼠标...

在家里如何自制果汁(自酿纯果汁的做)

1.草莓清澈干净,去蒂。2.在容器里铺一层草莓,然后撒一些白糖。3加文社会百科。再铺...

谁知道什么牌子的咖啡粉好喝(速溶咖啡不好喝?)

很多人喜欢在工作或者学习的时候泡一杯咖啡,享受慢时光。但是面对市面上各种各样的咖啡粉...

掷地有声什么意思(成语掷地有声原来是指晋朝人孙绰夸赞自己的)

“打地板”这个成语原意是指阿津王朝的孙绰称赞他的口才或文笔。这是2020年10月30...

珠海长隆自助游攻略(珠海横琴长隆海洋王国,游玩全攻略)

在珠海你不能错过的一个地方是长隆国际海洋王国。近距离接触鲸鲨、白鲸加文百科、北极熊等...

「已解决」上海女人雪花膏的功效是什么

上海女人雪花膏的功效是滋润皮肤。补水保湿。上海女人雪花膏可以每天早晚清洁后。直接擦于...

什么游戏最好玩(盘点史上最好玩的PC开放世界游戏)

什么是“开放世界”游戏?维基百科定义为电子游戏的关卡设计类型,旨在让玩家自由探索世界...

漫威十二等级(漫威里那些神明的等级是如何划分的)

漫威漫画的十二个等级(文佳社会百科对漫威漫画中的神的等级是如何分类的)。如果在网上搜...