数学符号
矩阵(Matrix)下标为m行n列 意为矩阵
为 行
列的矩阵
矩阵元素
,其下标为 第
行, 第
列
1.累加计算
总计符号sigma意为i初始值为1,i累加至n,对i进行求和
function sigma(n){
let total=0; //初始的总和为零
for(let i=1;i<=n;i++){ //循环n次,每次i++即自动增加1
total+=i; //对i进行加法计算
}
return total; //返回总和
}
从上面的代码中,公式和代码中的变量都是一致的,一般Σ或者Π都会写成循环,while或者for循环。
同样的对于符号Π除了把代码中的total+=i换成total*=i就可以了
假设
属于自然数,自然数从零开始,但是我们选择的初始值为1,零不纳入乘法计算
function Total_Product(n){
let total=1; //初始值为1 因为当总和为零时,零乘以零任然等于零
for(let i=1;i<=n;i++){ //从i开始一直循环到n,每次增加1
total*=i; //每次循环进行一次乘法运算
}
return total; //返回总和
}
2.矩阵(Matrix)
为一个
行
列的一个矩阵
我们写一个方法进行初始化矩阵,代码:
class Matrix{
constructor(row,col){
this.row=row; //行
this.col=col; //列
this.data=[];
let Matrix = new Array(row); //创建row个元素的空数组
for(let i=0;i<col;i++){ //对第一层数组遍历
Matrix[i] = new Array(col); //每一行创建col列的空数组
}
this.data=Matrix; //将矩阵保存到this.data上
return Matrix;
}
}
我们的函数有两个参数,分别是行(row)和列(col),根据这两个参数我们的函数会生成一个row行col列的空的矩阵。在计算机中,我们可以把矩阵看作是二维的数组。
2.1矩阵乘法
矩阵与矩阵的乘法计算会有先决条件,假设有两个矩阵
和矩阵
,它们分别是
和
,矩阵A和矩阵B的列和行必须相等,否则为不相容的两个矩阵,无法进行运算。矩阵进行相乘运算后会变成另外一个矩阵
矩阵的乘法定义为
令为的矩阵,为的矩阵。和的矩阵记作,是一个的矩阵,其第()元素等于的第行与的第列对应元素的乘积之和。换言之, 如果,则
矩阵的乘法运算公式如上
function Matrix_Product(A,B){
let tempMatrix = new Matrix(A.row,B.col);
if(A.col==B.row){
for(let i=0;i<A.row;i++){
for(let j=0;j<B.col;j++){
tempMatrix.data[i][j]=0;
for(let n =0;n<A.col;n++){
tempMatrix.data[i][j]+=A.data[i][n]*B.data[n][j];
}
}
}
return tempMatrix;
}
}
2.2矩阵的转置
矩阵的的转置可以形容为若有一个矩阵
在经过转置运算之后,它的行列数互换变成
的一个新矩阵
令为矩阵。的转置(transpose),记作,是通过交换的行和列得到的矩阵。换言之,如果,则,,。
由以上描述我们可以进行撰写代码,由于i,j都是自增量(两个自增量),所以要写两层循环。(循环层数依照自变量的个数而定)
function Matrix_transpose(matrix){
let tempMatrix = new Matrix(matrix.col,matrix.row);
for(let i=0;i<matrix.row;i++){
for(let j=0;j<matrix.col;j++){
tempMatrix.data[j][i]=matrix.data[i][j];
}
}
return tempMatrix;
}