线性代数——矩阵乘法(续)

之前提到过,矩阵乘法可以视作对向量基底的改变,而基底的选取可能直接导致向量维度的改变。一个2*3矩阵可以把二维向量映射到三维空间,故矩阵可以被视作操控空间的一种手段。

矩阵改变了向量维度

为弄懂这种变换的具体性质,我们必须从矩阵本身开始分析。依照之前的思路,矩阵的各列是基底向量,矩阵的右乘就是对列向量的线性组合,同理,矩阵左乘可以看作是对矩阵行向量的线性组合,所以矩阵的列构成了列空间,行构成了行空间。经线性变换后,若有T(x)=0 亦即 Ax=0, 则称 x 在A的零空间N(A)中。

我们用秩来表示矩阵空间的维度,虽然m*n矩阵的输入和输出对象是n维向量和m维向量,但列空间和行空间的秩并不一定是n和m,拿列空间举例,若矩阵的基底向量间是线性相关的,那么这组基底张开的空间维度就会下降。列秩是A的线性无关纵列的极大数目,行秩是最大数目的线性无关行

对于m*n的矩阵,线性变换T(或A)的作用范围是整个n维空间,而T(x)只能处于零空间N(A)和列空间中,更进一步,我们可以把四维空间分成两个子空间,矩阵行空间和所有与行空间垂直的空间,与行空间垂直的空间被映射为0,故它亦是零空间。剩下的所有包含于行空间内的向量,都会被映射到列空间。

矩阵的四个子空间

秩-零度定理

在线性代数中,秩-零化度定理给出了一个线性变化或一个矩阵的秩(rank)和零化度(nullity) 之间的关系。

dim N(A)+dim rank(A)=n

矩阵零空间的维度和矩阵的秩的和就是向量所在维度n,先假设在维度n中有n个线性独立的向量基底,其中{a1,a2.....}为所有满足T(c1a1+c2a2+.....)=0的基底,{c1,c2.....}为随机系数,对剩下的向量基底{b1,b2.....}来说,T(C1b1)+T(C2b2)+.....=T(C1b1+C2b2+.....)。为证明变换前后的维度大小不变,需证明T(C1b1+C2b2+.....)!=0。

若T(C1b1+C2b2+.....)=0,则 C1b1+C2b2+.....= c1a1+c2a2+.....,因为所有基底向量线性无关,此时所有随机系数都等于0,也就是说除非C1,C2....=0,否则T(C1b1)+T(C2b2)+.....!=0,故{T(C1b1),T(C2b2)....}线性无关,且两者的线性无关基底数目之和为n,定理得证。通过证明我们也可以看到矩阵的行秩等于列秩。

行秩和列秩

行秩等于列秩是矩阵的性质之一,如果设矩阵的列秩为r,行秩为c,将矩阵中r个线性无关向量组成一个m*r的矩阵,那么m*n的矩阵就可以视作成m*r和r*n的两个矩阵的乘积(可以化成这样是因为所有的列向量都可以由这r列组合成),这时从左乘的角度来看,所有的行向量都可以视作对r*n矩阵的线性组合,故c<=r,对A的转置使用同样的操作,则有r小于等于c,所以r等于c,行秩等于列秩。同时观察到所有矩阵都可以分解成列秩向量和行秩向量的乘积。

原文地址:https://www.cnblogs.com/matrixmlpforever/p/10960602.html

时间: 2024-08-04 19:27:51

线性代数——矩阵乘法(续)的相关文章

线性代数-矩阵-乘法 C和C++实现

矩阵的知识点之多足以写成一本线性代数. 所以我们把矩阵封装成类.以C++为主进行详解. C++语言 分段详解: 基本成员: 矩阵类的成员变量我们使用三个: 矩阵的行数 矩阵的列数 用二维数组(向量)存放矩阵中的所有元素 int m_iRows; int m_iColumns; vector<vector<T>> m_vecMatrix; 矩阵中的基本成员函数包括 加入一行 加入一列 bool addOneRowToBack(vector<T> &vec); //

线性代数——矩阵与矩阵乘法

在刚接触线性代数时,最先学到的是行列式,随之而来的就是矩阵.矩阵的出现过于突兀,当初学习时完全不清楚它的概念,更不要说还有矩阵乘法等各种奇怪的算术操作.于是从网上学习了各种矩阵概念,受益良多,在此总结一下学到的概念. 一.矩阵 矩阵最早来自于方程组的系数及常数所构成的方阵.——百度百科 如此看来,矩阵和行列式还是有联系的,矩阵最初可能就是用来表示行列式用的 方程组 改写成矩阵的形式 然而矩阵的作用不仅限于此,它有着线性变换的作用,我们将通过分析矩阵乘法来详加解释 二.矩阵乘法 提起矩阵乘法,我们

【日常学习】codevs1287 矩阵乘法题解

转载请注明出处 [ametake版权所有]http://blog.csdn.net/ametake欢迎来看. 先上题目 题目描述 Description 小明最近在为线性代数而头疼,线性代数确实很抽象(也很无聊),可惜他的老师正在讲这矩阵乘法这一段内容. 当然,小明上课打瞌睡也没问题,但线性代数的习题可是很可怕的.小明希望你来帮他完成这个任务. 现在给你一个ai行aj列的矩阵和一个bi行bj列的矩阵,要你求出他们相乘的积(当然也是矩阵). (输入数据保证aj=bi,不需要判断) 矩阵乘法的定义:

矩阵乘法优化线性递推

矩阵乘法是线性代数中一块很重要的内容.矩阵乘法的定义很奇怪[1],但正是这种奇怪的性质,让矩阵乘法成为在除了线性代数和其衍生学科(还有诸如矩阵力学之类)外最广泛使用的关于矩阵变换的应用.(什么?FFT不属于矩阵变换吧...) 注: [1]: 矩阵乘法有另外的很多定义,如未说明,指的是中间不带符号的矩阵乘法,即一般矩阵乘积.另有 标量乘积(即所有数乘上一个固定的数),阿达马乘积等,没有那么诡异,但是在大多数问题的用途上也不大. 你不会矩阵乘法?没关系,下一篇会写到的 矩阵乘法的本质 矩阵乘法的本质

矩阵乘法及其实现

作为一种数学对象,在矩阵的运算上可谓已足够完备.这篇文章要讲的矩阵乘法,可能会在很多地方用得上. 矩阵 矩阵,或者说二维数组(当然,这是为了方便理解而说的.数组不是对象,而矩阵是.但矩阵和数组又是如此相似.),是一种抽象的数学对象(或数据结构----随你啦),是在线性代数中出现的.(线性代数顾名思义是一门为了线性方程组而设立的学科,最基本的大概是高斯消元). 一个m行n列的矩阵被称做一个$m\times n$的矩阵. 例子: 一个$2\times 3$的矩阵: $\left[ \begin{ar

理解矩阵乘法

矩阵加法就是相同位置的数字加一下. 矩阵减法也类似. 矩阵乘以一个常数,就是所有位置都乘以这个数. 但是,等到矩阵乘以矩阵的时候,一切就不一样了. 这个结果是怎么算出来的? 教科书告诉你,计算规则是,第一个矩阵第一行的每个数字(2和1),各自乘以第二个矩阵第一列对应位置的数字(1和1),然后将乘积相加( 2 x 1 + 1 x 1),得到结果矩阵左上角的那个值3. 也就是说,结果矩阵第m行与第n列交叉位置的那个值,等于第一个矩阵第m行与第二个矩阵第n列,对应位置的每个值的乘积之和. 怎么会有这么

矩阵乘法 codevs 1287 矩阵乘法

1287 矩阵乘法 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 小明最近在为线性代数而头疼,线性代数确实很抽象(也很无聊),可惜他的老师正在讲这矩阵乘法这一段内容.当然,小明上课打瞌睡也没问题,但线性代数的习题可是很可怕的.小明希望你来帮他完成这个任务. 现在给你一个ai行aj列的矩阵和一个bi行bj列的矩阵,要你求出他们相乘的积(当然也是矩阵).(输入数据保证aj=bi,不需要判断) 矩阵乘法的定义: 1. 矩阵A乘以B的

那条矩阵乘法的不归路——数列

话说今天搜矩阵相乘,没有一个人用pascal写,是不是学到矩阵相乘的孩子都果断转c++了...我可是有良心的写博人,当然附上pascal代码 故事开始了 今天看到这样一个题 a[1]=a[2]=a[3]=1 a[x]=a[x-3]+a[x-1]  (x>3) 求a数列的第n项对1000000007(10^9+7)取余的值. 然后是它的数据范围 对于30%的数据 n<=100: 对于60%的数据 n<=2*10^7: 对于100%的数据 T<=100,n<=2*10^9: 当我

POJ 3150 Cellular Automaton(矩阵乘法+二分)

题目链接 题意 : 给出n个数形成环形,一次转化就是将每一个数前后的d个数字的和对m取余,然后作为这个数,问进行k次转化后,数组变成什么. 思路 :下述来自here 首先来看一下Sample里的第一组数据.1 2 2 1 2经过一次变换之后就成了5 5 5 5 4它的原理就是a0 a1 a2 a3 a4->(a4+a0+a1) (a0+a1+a2) (a1+a2+a3) (a2+a3+a4) (a3+a4+a0) 如果用矩阵相乘来描述,那就可以表述为1xN和NxN的矩阵相乘,结果仍为1xN矩阵a