线性代数矩阵的秩阵

【线性代数】矩阵的零空间
我的图书馆
【线性代数】矩阵的零空间
矩阵A的零空间就Ax=0的解的集合。
零空间的求法:对矩阵A进行消元求得主变量和自由变量;给自由变量赋值得到特解;对特解进行线性组合得到零空间。
假设矩阵如下:
对矩阵A进行高斯消元得到上三角矩阵U,继续化简得到最简矩阵R:
由于方程Ax=0的右侧是零向量,所以只对矩阵A进行消元不会影响解,因此不需要增广矩阵,所以有:
从上面的高斯消元的结果可以看出,矩阵A的秩为2,其中第1,3列为主元列,2,4列为自由列,对应于方程主来说,形式转变如下:
从上式可以看出,x2,x4是自由变量,我们可以随意赋值,x2=0,x4=1;x2=1,x4=0可以分别得到两个特解(几个自由变量就有几个特解):
然后我们将两组特解进行线性组合就得到了矩阵A的零空间:
上面我们从数值解的角度描述了矩阵零空间的求法,下面从公式角度分析:
上面我们经过消元(行变换,不改变行空间和零空间,只改变列空间)得到了最简形式R。我们将R经过列变换得到如下矩阵:
我们可以对方程式作如下变形:
我们之所以进行上述变换,是为了有更好的表示形式(不进行列变换也行,但是要记住哪一列是单位矩阵I中的,哪一列是自由变量矩阵F中的):
这样我们代入方程式可以得到零空间矩阵:
从上面的推导可以看出,得到的零空间矩阵的每一列就是我们前面的特解(注意要变换顺序!交换第2,3行,结果便和前面相同)。因此,我们可以从通过消元法得到最简式R,然后就可以直接得到零空间矩阵,则零空间就是零空间矩阵各列向量的线性组合,而不需要像前面那样先给x2,x4赋值,然后回代到方程中得到两个特解,从而得到矩阵的零空间。
下面再举一例:
由于R本来就具有很好的形式,就不用进行列变换了:
于是通过解方程得到零空间矩阵:
注:最简矩阵R和零空间矩阵x在MATLAB中可以分别用命令rref(A),null(A,'r')得到
作者:nineheadedbird
TA的最新馆藏[转]&
喜欢该文的人也喜欢线性代数:线性方程组与矩阵
1.1 线性方程组
1.1.1 方程组定义
一个m个方程,n个未知数的方程组定义如下:
a11x1+a12x2+...+a1nxna21x1+a22x2+...+a2nxn?am1x1+am2x2+...+amnxn=b1=b2=bm(1)
其中aij及bi均为实数,(1)称为m*n的线性方程组。若方程组有解,则称其为相容的(consistent),否则为不相容的。
1.1.2 等价方程组
定义:若两个含有相同变量的方程组具有相同的解集,则称它们是等价的。
有三种运算可以得到一个等价的方程组:
交换任意两个方程的顺序 任一方程两边同乘一个非零的实数 一方程的倍数加到另一个方程上
1.1.3 系数矩阵
把(1)式中的系数与一个m*n的阵列联系起来,称这个了阵列为方程组的系数矩阵(coefficient matrix),若m=n则称此矩阵为方阵。
??????a11a21?am1a12a22am2.........a1na2namn??????
如果在系数矩阵的右侧添加一列方程组的右端项,则得到新的矩阵:
???????a11a21?am1a12a22am2.........a1na2namnb1b2?bm???????
称这个矩阵为方程组的增广矩阵(augmented maxtrix)。
1.1.4 解方程组
传统的解方程组即消元法,有了矩阵这个工具后,方程组的求解可以通过对增广矩阵做行运算得到:
交换两行 以非零实数乘以某行 将某行替换为它与其他行的倍数的和
对于大型方程组,需要借助于计算机求解,下面的代码示例使用numpy求解方程组的解:
import numpy as np
a = np.array([[3,1],[1,2]])
b = np.array([9,8])
result = np.linalg.solve(a,b)
print result #[ 2.
1.2 行阶梯形
1.2.1 行阶梯形矩阵定义
若一个矩阵满足下面三个条件,则称其为行阶梯形矩阵(row echelon form)
每一非零行中的第一个非零元素为1 第k行的元素不全为零时,第k+1行的首变量之前零的个数多于第k行首变量之前零的个数 所有元素均为零的行必在不全为零的行之后
右边的矩阵是行阶梯形:??????
使用行运算,将线性方程组的增广矩阵化为行阶梯形的过程称为高斯消元法(Gaussian elimination)
若一个线性方程组中方程的个数多于未知数的个数,则称其为超定的。通常不相容
若方程个数少于未知数的个数,则其为亚定的。通常相容,且有无穷解。
1.2.2 行最简形定义
若一个矩阵满足,矩阵是行阶梯形,且第一行的第一个非零元是其所在列的性非零元,则称矩阵为行简形。下面的矩阵是行最简形的
基于基本行运算将矩阵化为行最简形的过程称为Guass-Jordan消元法。
如果线性方程组的右端项全为零,则称其为齐次的。齐次方程组总是相容了,因为全零即为其一个解。
1.3 矩阵算术
1.3.1 矩阵记号
A=A(aij)=???????a11a21?am1a12a22?am2......?...a1na2n?amn???????
行向量:一个1*n的矩阵,如[1234]
列向量:一个m*1的矩阵, 如???123???
对一个m*n的矩阵A,A的行向量表示为
ai&=(ai1,ai2,...,ain),i=1,2,..,m
A的列向量表示为
aj=???????a1ja2j?amj???????,j=1,2...,n
矩阵A可以用其列向量或其行向量表示:
A=(a1,a2,...,an)=??????a?1a?2?a?m??????
1.3.2 算术法则
标量乘法:若A为m*n的矩阵,且n为一标量,则二者乘积矩阵B为
n?A(aij)=B(bij=n?aij)
矩阵加法:若A,B均为m*n的矩阵,其和矩阵C为
A(aij)+B(bij)=C(cij=aij+bij)
1.3.3 矩阵乘法与线性方程组
对于方程组(1),若令
A=??????a11a21?am1a12a22am2.........a1na2namn??????,x=??????x1x2?xn??????,b=??????b1b2?bn??????
并定义乘积Ax为
Ax=???????a11x1+a12x2+...+a1nxna21x1+a22x2+...+a2nxn?am1x1+am2x2+...+amnxn???????=??????a?1xa?2x?a?mx??????(2)
则线性方程组(1)等价于矩阵(2)。同样的将线性方程组表示为矩阵列向量和的形式:
Ax=x1??????a11a21?am1??????+x2??????a12a22?am2??????+?+xn??????a1na2n?amn??????=x1a1+x2a2+...+xnan
矩阵乘法定义:若A=(aij)为一个m*n的矩阵,矩阵B=(bij)是一个n*r的矩阵,则乘积AB=C(cij)为一个m*r的矩阵,其元素定义为:
cij=a?ibj=&k=1naikbkj
1.3.4 线性组合
a1,a2,...,an为Rm中的向量,且x1,x2,...,xn为标量,则和式:x1a1+x2a2+...+xnan称为向量a1,a2,...,an的一个线性组合
线性方程组相容性定理:
一个线性方程组Ax=b相容的充要条件是向量b可写为矩阵A列向量的一个线性组合。
1.3.5 矩阵转置
一个m*n的矩阵A的转置为n*m的矩阵,定义为:AT(bij=aji)
若一个方阵A,满足AT=A,则称A是对称的(symmetric)。
转置的代数法则:
(AT)T=A (cAT)=cAT (A+B)T=AT+BT (AB)T=BTAT
1.3.6 矩阵乘法应用
现代检索技术是基于矩阵与线性代数的。在典型的情况下,一个包含一组文档,且我们希望通过搜索条件找出最符合需要的文档。假设数据库包含m个文档与一个字典,字典包含了文档中排重后的关键字,字典包含的词数为n,且按字典序排序。
我们将数据库表示为一个m*n的矩阵A,这个矩阵的第i行表示字典中第i个关键字在各个文档中的TF-IDF。如果一次检索包含多个关键字,将其表示为一个n*1的列向量x,如果字典中第i个关键字包含在检索中,则x的第i个元素为1。为完成检索,只需要计算ATx,结果为一个n*1的列向量,每行对应一个文档与搜索条件的匹配度,选择其中值最大的即为最匹配的结果。在第5章,可以通过向量夹角的余弦cos值来计算匹配度。
1.4 矩阵代数
1.4.1 运算法则
下列法则对任何标题n和m及矩阵A B C都是成立的:
交换率:A+B = B+A
结合率:(A+B)+C = A+(B+C) (AB)C = A(BC)
分配率:A(B+C) = AB + AC
1.4.2 矩阵的逆
定义:单位矩阵 I=&ij,其中
&ij={10当i=j当i&j
定义:矩阵的逆,若存在矩阵B使用AB=BA=I,则称方阵A是可逆的(invertible)或非奇异的(nonsingular),矩阵B称A的逆,记作A?1。注意,只有方阵才可能可逆,非方阵不应使用奇异或非奇异的这一说法。
定理:若A B均为非奇异的方阵,则AB也是非奇异的,且(AB)?1=B?1A?1。
更一般的有 (A1A2...Ak)?1=A?1k...A?12A?11
1.4.3 使用numpy进行矩阵运算
下面使用python代码计算上面两节介绍的运算
import numpy as np
A = np.array([[1,2,3],
I = np.eye(3) #三阶单位矩阵
print 3*A #标量乘法
print A+I #矩阵加法
print A.T #A的转置
print np.dot(A,I) #矩阵乘法
print np.linalg.inv(A)
#计算A的逆
1.5 初等矩阵
1.5.1 定义
定义初等矩阵:如果从单位矩阵I开始,只进行一次初等行运算,得到的矩阵称为初等(elementary)矩阵,因此有三类初等矩阵,以n=3为例。
交换两行 E1=??????
一行乘积 E2=??????
乘后加行 E3=??????
一般的,若E为n阶初等矩阵,A为n*r的矩阵,E*A的作用就是对A进行相应的行运算。A*E的作用就是对A进行相应的列运算。
定理:若E为一初等矩阵,则E是非奇异的,且E的逆与它同类型的初等矩阵。
定义:若存在一个有限初等矩阵的序列使得B=E1E2...EkA,则称A与B是行等价的。
定理:非奇异矩阵的等价条件:若A是n阶方阵,则下列陈述是等价的
A是非奇异的 Ax=0仅有平凡解0 A与I行等价
若A是非奇异的,则有
&i=1kEiA=I
在等式两边乘以A?1
&i=1kEiI=A?1
这给出了计算A的逆的方式,即将A和I写为增广形式,并利用初等行去处将其中的A转换为I,则I将转换为A?1。即(A|I)的行最简形为(I|A?1)
因此也可以通过求逆计算线性方程组Ax=b的解,即x=A?1b
1.5.2 LU分解
上三角矩阵:当i&j时, aij=0
下三角矩阵:当i<j时, </jaij=0
三角形矩阵:上三角和下三角的统称
严格三角形:对角元素非零的三角形矩阵
对角形矩阵:当i&j时, aij=0
定义:将矩阵A分解为一个单位下三角矩阵L和一个严格上三角矩阵U的乘积的过程,称为LU分解。LU分解只需要对A使用第三种行运算化简为严格上三角形,即可完成。LU分解在消元过程中十分有用。
LU=???11/?????????=??????=A
1.5.3 使用scipy对矩阵LU分解
import scipy.linalg
A = np.array([[1,2,3],
l,u = scipy.linalg.lu(A,True)
本文是Steven J. Leon的线性代数及其应用的第一章的学习笔记 本文公式编写使用了MathJax语法 Latex公式支持【图文】线性代数矩阵及其运算_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
线性代数矩阵及其运算
&&线性代数矩阵及其运算
阅读已结束,下载本文到电脑
想免费下载本文?
登录百度文库,专享文档复制特权,积分每天免费拿!
你可能喜欢如何直观理解矩阵和线性代数? - 知乎<strong class="NumberBoard-itemValue" title="被浏览<strong class="NumberBoard-itemValue" title="0,640分享邀请回答patreon.com/3blue1brown ,诸位若有条件不妨去支持一下。最低额度只要1美元/个视频,就能优先观看今后制作的所有「XX的本质」系列视频。(刚发现,Minecraft的作者Markus Persson赫然出现在资助者名单中……)另外还有个好消息:应B站几位字幕译者的邀请,3Blue1Brown本人已同意在B站设立官方账号:,今后他在Youtube发布的精彩视频都会在B站上持续发布中文字幕版,大家可以去B站关注和支持。1.1K84 条评论分享收藏感谢收起86949 条评论分享收藏感谢收起}

我要回帖

更多关于 线性代数公式大全 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信