目录
首先来思考,为什么叫“秩”?
举个例子就很容易理解,大家排队买票。如果大家互相不认识,那就会一个排一个,非常有秩序。然而,如果突然来了一个与队伍前面的人认识的人,这个人又不自觉排队,非要插队。那后面的人肯定要有意见了,说你要是这样我前面 还有认识的人呢,你插我也插队,这样整个队伍就乱掉了, 谁也买不成。
通过这个例子,可以得到一下结论:彼此不认识,那就不相关,就有秩序,问题就好解决;反之,彼此相关,就没有秩序,问题就不好解决。
所以,数学中定义,矩阵中最大的不相关的向量的个数,叫做秩,可以理解为有秩序的程度。
从社会学角度考虑一下,政府机关是讲人际关系的地方,可谓是关系错综复杂,通常都是近亲繁殖。显然,这些部门用矩阵来说,就不满秩,秩非常小。可以想象这些地方的工作肯定是搞不好的,因为没有秩序。所以想找个好单位,满秩可以作为一项评价指标哦~~~
通俗解释
想象你有一个装满数字的网格(即矩阵),每一行和每一列都可以看作是一个包含数字的列表。矩阵的秩告诉我们这些行或列中有多少是真正独立的,也就是说,没有哪一行(或列)可以通过其他行(或列)的加减乘除(简单的数学运算)来得到。
低秩矩阵的意义 讲的不错
1.1转置矩阵简介
把矩阵A的行换成同序数的列得到的新矩阵,叫做A的转置矩阵(Transpose of a Matrix),记作ATAT。
例如:
因此,转置矩阵的特点:
(1)转置矩阵的行数是原矩阵的列数,转置矩阵的列数是原矩阵的行数;
(2)转置矩阵下标(i,j)的元素对应于原矩阵下标(j,i)的元素。
1.2实现
使用二维数组作为矩阵的存储结构,根据转置矩阵的特点,很容易得到转置矩阵。
int** getTransposeMatrix(int** matrix,int row,int column){
int** matrixR=new int*[columns];
for(int i=0;i<columns;++i){
matrixR[i]=new int[rows];
}
for(int i=0;i<row;++i){
for(int j=0;j<column;++j){
matrixR[j][i]=matrix[i][j];
}
}
return matrixR;
}
2.矩阵相乘
2.1矩阵相乘简介
矩阵相乘的特点:
(1)当矩阵A的列数等于矩阵B的行数时,A与B才可以相乘。
(2)乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和。
(3)矩阵C的行数等于矩阵A的行数,C的列数等于B的列数。
3矩阵相乘后转置
一个矩阵的转置与它相乘,为什么是对称阵?
证明它们的乘积的转置等于其本身就可以了。(A^T*A)^T=A^T*(A^T)^T=A^T*A
矩阵的秩
矩阵的秩: 用初等行变换将矩阵A化为阶梯形矩阵, 则矩阵中非零行的个数就定义为这个矩阵的秩, 记为r(A)。
满秩矩阵(non-singular matrix): 设A是n阶矩阵, 若r(A) = n, 则称A为满秩矩阵。但满秩不局限于n阶矩阵。若矩阵秩等于行数,称为行满秩;若矩阵秩等于列数,称为列满秩。既是行满秩又是列满秩则为n阶矩阵即n阶方阵。
满秩矩阵是一个很重要的概念, 它是判断一个矩阵是否可逆的充分必要条件
其中非奇异矩阵是满秩矩阵
定义2.1 在 矩阵A中,任取k行与k列(k≤m,k≤n),位于这些行列交叉处的k2个元素,不改变它们在矩阵中所处的位置次序而得的k阶行列式,称为矩阵A的k阶子式。
定义2.1 设在矩阵A中有一个不等于0的r阶子式D,且所有r+1阶子式(如果存在的话)全等于0,那末D称为矩阵A的最高阶非零子式,数r称为矩阵A的秩,记作
R(A)。
1. 零矩阵的秩为0;
3. 可逆矩阵称为满秩矩阵;
4. 不可逆矩阵称为降秩矩阵。
矩阵中任两列两行成比例,矩阵的秩等于1
成比例可以用矩阵运算(初等变换)消去,两两成比例,消到最后就只剩下一行了,不就秩为1了
记于2017.01.01,原来高数还是可以学会的,笔记一下。