在本文中,我们将介绍矩阵的大部分基本运算,依次是矩阵的加减法、矩阵的标量乘法、矩阵与矩阵的乘法、求转置矩阵,以及深入了解矩阵的行列式运算。本文将不会涉及逆矩阵、矩阵的秩等概念,将来再探讨它们。
矩阵的加法与减法运算将接收两个矩阵作为输入,并输出一个新的矩阵。矩阵的加法和减法都是在分量级别上进行的,因此要进行加减的矩阵必须有着相同的维数。
为了避免重复编写加减法的代码,我们先创建一个可以接收运算函数的 *** ,这个 *** 将对两个矩阵的分量分别执行传入的某种运算。然后在加法、减法或者其它运算中直接调用它就行了:
classMatrix{//...componentWiseOperation(func,{rows}){constnewRows=rows.map((row,i)=>row.map((element,j)=>func(this.rows[i][j],element)))returnnewMatrix(...newRows)}add(other){returnthis.componentWiseOperation((a,b)=>a+b,other)}subtract(other){returnthis.componentWiseOperation((a,b)=>a-b,other)}}constone=newMatrix([1,2],[3,4])constother=newMatrix([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]]}复制代码
矩阵的标量乘法与向量的缩放类似,就是将矩阵中的每个米素都乘上标量:
classMatrix{//...scaleBy(number){constnewRows=this.rows.map(row=>row.map(element=>element*number))returnnewMatrix(...newRows)}}constmatrix=newMatrix([2,3],[4,5])console.log(matrix.scaleBy(2))//Matrix{rows:[[4,6],[8,10]]}复制代码
当A、B两个矩阵的维数是兼容的时候,就能对这两个矩阵进行矩阵乘法。所谓维数兼容,指的是A的列数与B的行数相同。矩阵的乘积AB是通过对A的每一行与矩阵B的每一列计算点积得到:
classMatrix{//...multiply(other){if(this.rows[0].length!==other.rows.length){thrownewError('Thenumberofcolumnsofthi *** atrixisnotequaltothenumberofrowsofthegivenmatrix.')}constcolumns=other.columns()constnewRows=this.rows.map(row=>columns.map(column=>sum(row.map((element,i)=>element*column[i]))))returnnewMatrix(...newRows)}}constone=newMatrix([3,-4],[0,-3],[6,-2],[-1,1])constother=newMatrix([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是做剪切变换的矩阵。
近日大家很关注的117位在韩志愿军烈士遗骸归国终于在昨天回到了中国,据最新消息报道第七批在韩志愿军烈士遗骸也会送到他们的家乡,很多人也是很好奇在韩志愿军烈士遗骸是怎么回事,他们是怎么牺牲的,那么接下来...
公共卫生中心、东部医疗中心、西部医疗中心等“三大中心”工程建设正严格按照“时间表”和“路线图”顺利推进。公共卫生中心有望今年底竣工,东部医疗中心、西部医疗中心将于明年底竣工。市卫健委有关负责人表示,“...
如果您的手机丢失的话,可以到相关部门报案并登记。三星部分机型支持远程控制功能,可尝试使用该功能定位手机大致位置。远程控制功能使用方式:1.此功能需要在。 能通过技术找回,手机的黑客。早就不需要做这种工...
gameofthronesbingo.comcurrent paths: 显现当时发现的途径数。 gameofthronesseason6-online.com测验对其进行反编译,能够运用PyInst...
11月8日,CBA联盟向各俱乐部下发了巨额罚单的正式文件,cba这份巨额罚单高达542万米,其中郭艾伦未穿赞助商装备就被罚了115万,这也引起了网友极大的争议。你如何看待cba巨额罚单?网友纷纷表示不...
这个制霸宇宙的世纪难题 已经困扰了人们2000多年 每天都要问自己一万遍: 今天吃什么? 每天一到饭点, 真羡慕那些回家就有饭吃的人…… 最高级的浪漫,就是柴米油盐。 今天, 我们一起去看看别...