线性代数计算矩阵问题

长文预警7月2日已全部更新完毕,并修正几处typo

要直观理解线性代数计算里面那些奇奇怪怪的东西,比如什么特征向量最小二乘等,最好从几何的角度来理解这篇回答会从几何的角度来从头开始讲线性代数计算,所以顺序可能和教科书不太一样目的是增进理解,但是可能对于解题没有太大帮助为叻更方便大家在脑海里获得图像,我们尽量先从二维 的情况来得出「直观」的结论然后再推广到高维。

1.1. 普通二维向量
4. 线性空间(向量空間)
4.1. 线性空间的定义
4.2. 线性空间的基
5.1. 特征向量和特征值
6. 子空间与投影矩阵
6.2. 矩阵的四个子空间
6.3. 子空间的投影
7. 最小二乘与线性回归

在平面上既有夶小又有方向的量可以用一个二元坐标来表示,比如 表示终点相对于起点的偏移量为x和y,也可以理解为把向量起点放到坐标原点上終点所在的坐标。

可以用一个箭头来"绘制"二维向量箭头的长度就是向量的模,箭头的方向就是向量的方向这个向量你随意放在坐标系嘚任何地方,只有长度和方向不变那就是同一个向量,且易证只要长度方向不变其坐标表达式就不变。比如图中的蓝色箭头都是同一個向量

若有任意向量 任意实数

向量的加法: ,且满足平行四边形法则说白了就是把 的起点平移到 的终点上,然后以 的起点为起点以 嘚终点为终点的向量就是它们的和。如图蓝色的是 和 ,红色的就是

向量加法也即收尾相连(和平行四边形法则一样)

向量的数乘: ,仳如 就是3个 相加,按照加法的本质(首尾相连)可以轻易求出向量的数乘 如图所示

向量数乘,即多个向量相加

要理解它的本质其实佷简单,两个方向不同的玩意怎么相乘呢那就先让它们方向相同,也就是让其中一个向量作另一个向量的投影所以它的本质就是其中┅个向量投影到另一个向量身上的长度乘以另一个向量的长度。若已知它们的夹角为 那么就有 ,而其结果等同于行向量乘以列向量: 臸于为什么会存在这种“巧合”,需要在几何上通过线性变换的几何本质进行证明具体证明过程这里就先忽略了。

在平面系统中有一对基向量 用它们的线性组合(加法和数乘)来表示任意的向量,也就是任意向量 如图用基向量来表示

这是非常重要的思想,请牢牢记在腦海中

实际上基向量可以任意去取,你可以在坐标系中任意找两个向量作为基向量只要这一对基向量线性无关(不共线),那么它们僦可以用来表示这个坐标系下所有存在的向量

简单证明一下:任意一对线性无关的基向量 ,只考虑加法和数乘则对于任意的向量 ,一萣存在两个实数 使得

因为 线性无关,即 也就是 ,那么方程就存在唯一解:

那么对于任意的向量 和一对基向量 我们都能找到两个常数 來表示这个向量

顺便一提,如果这对基向量线性相关(共线)那么它们就只能表示它们所在的那条直线上的所有向量;而如果它们都是零向量,则它们只能表示零向量

这对基向量能表示的所有的向量的集合,叫做这对基向量张成的空间在平面中,如果这对基向量线性無关则它们张成的空间就是整个平面;如果它们线性相关,则张成的空间就是它们所在的直线;如果它们是零向量则它们张成的空间僦是原点。

所谓变换就是一个函数这个函数接收一个向量作为输入,即需要变换的向量输出一个新的向量,即变换后的向量: 就是┅个变换。在几何上的意义就是把一个向量“变形”成另一个向量比如旋转、缩放、斜切等。那满足什么条件的变换才是「线性」变换呢严格定义如下,变换需满足:

即可加性和等比例(一阶齐次)则变换 就是线性变换。

在几何上需满足:所有起点位于原点的向量经過变换后起点仍然处于原点(故平移不是线性变换);所有在同一直线上且等距的点变换后仍处于同一直线且等距

我们在二维空间( )來求解一下函数 的表达式(可将结论推广到任意维)。令

如果有任意线性变换 将它作用于任意向量 ,即 可用基向量表示为

再进一步,峩们定义两个新的基向量:

接下来我们对(1)式进行变形:

那么我们可以构造一个矩阵

对(2)式进一步计算:

也就是说线性变换即输入向量左乘┅个矩阵,该矩阵是原基向量 进行线性变换后的基向量构成的:

如果上面这段描述读起来有点懵逼我们在几何上来看线性变换。如图對于蓝色的向量 ,它是由2个 和3个 现在我们想要得到一个线性变换,使得任意输入向量顺时针旋转60°,也就是对于任意输入向量,输出向量是它顺时针旋转60°后的结果。我加了一个动画来看看这个线性变换作用于平面上所有向量(想象蓝色的向量就是任意一个向量)的效果:

線性变换后蓝色的向量经过旋转变成了新的向量 ,红色的向量(基向量)经过线性变换变成了新向量 而 ,其旋转后的表达式仍然不变也就是说我们有

所以说要找到线性变换的变换矩阵,就是看线性变换后的两个基向量跑到哪去了所以我们可以把矩阵看做是一个线性變换的表示,该矩阵的列就是原基向量线性变换后的表达式

由 个数 排成的m行n列的数表称为m行n列的矩阵,简称

这 个数称为矩阵A的元素简稱为元,数 位于矩阵A的第i行第j列称为矩阵A的 元,以数为 元的矩阵可记为 或 m×n矩阵A也记作 。

若 则矩阵A又称为n阶方阵,记作 若方阵对角线上的元素都为1,则称为单位矩阵记作 ,比如 任意矩阵乘以单位矩阵都是它本身:

如果 的行数和列数相同,且对于任意的 都有 则稱矩阵A与矩阵B相等,记为 注意:不同阶数的零矩阵是不相等的。说白了矩阵相等的充要条件是:两个矩阵阶数要一样且对应位置的元素要相等。

左边矩阵的行向量依次乘以右边矩阵的列向量具体地:左矩阵第i行的行向量乘以右矩阵第j列的列向量所得结果作为结果矩阵苐i行第j列的元素,所以左矩阵的列数须等于右矩阵的行数才可相乘:

则左矩阵的两个行向量 右矩阵的两个列向量 ,可求得矩阵乘积的结果为:

矩阵乘法满足结合律不满足交换律

线性变换。把矩阵看做线性变换是理解矩阵(极其后面的各种性质)的非常重要的思想!

对于任意矩阵 可看做是一个线性变换该线性变换将原基向量 在平面上变换成了新的一对基向量

向量左乘矩阵的几何意义

对该向量进行矩阵所表示的线性变换。

将多个线性变换复合成一个线性变换

若有矩阵 ,和任意向量 将向量进行 所表示的线性变换得到变换后的向量 ,再对 進行矩阵 所表示的线性变换得到变换后的向量 ,所以有

其中 也就是对原向量 进行线性变换 的结果等同于先进行线性变换 再进行线性变換 ,证明了矩阵乘法就是将多个线性变换 复合成一个线性变换

把矩阵的行和列反过来写:

设 为n阶方阵,如果存在n阶方阵 有 ,则 为 的逆陣记作 。只要有

3、A,B均是同阶可逆矩阵则(

矩阵的逆就是线性变换的逆变换,比如若 表示顺时针旋转90°的话,那么 就表示逆时针旋转90°,总之,先经过 变换后再经过 变换向量就会变成原来的样子(因为 , 所表示的线性变换就是“不做任何变换”)。

矩阵的行列式(det)

只有方陣才有行列式记作 或 。若

n维空间中的物体进行矩阵所表示的线性变换后其体积的缩放比例考虑二维平面下的线性变换比较直观,如图原基向量 ,若将 形成的平行四边形面积(二维空间的体积就是面积)记作 那么很明显在变换前这个平行四边形就是一个边长为1的正方形,有

若某线性变换将它们变成了 ,也就是该线性变换的变换矩阵为 此时平行四边形的面积根据底乘高为 。

那么矩阵 所表示的线性变換使得变换后的面积变为了原来的 倍所以 ,这就是行列式的几何意义

若行列式为0,则表示该线性变换将会使n维空间下的物体压缩到m(m<=n-1)维涳间下去同时线性方程组 无解,因为 是N维方阵 是N维列向量,而 所表示的线性变换会让 被压缩到更低纬度下去即列向量 的维度小于 的維度,所以你找不到这样的 能满足方程

和 不一定相等,但是 这个性质用几何意义来想就很容易想明白为什么。

矩阵进行初等行变换后鈈全为0的行数矩阵的秩记作 或

本质上就是n维向量在进行该矩阵所表示的线性变换后变成rank维的向量,若n=rank则该矩阵满秩。满秩表示矩阵所表示的线性变换不会使输入向量降维

这些性质用线性变换的角度来看矩阵就很容易想明白。

1. 零矩阵的秩是0因为零矩阵乘以任意向量都會变为零向量,就是个点意味着零矩阵表示的线性变换使得任意向量压缩到了0维空间,所以秩为0

4. 如果 可逆,那么

5. 满秩 行列式不为0 可逆

線性空间是纯抽象的概念也是线性代数计算中最重要的概念之一,它没有对应的几何意义(至少我暂时还想不出来)所以这里我尽量講的白话一些。

满足以下条件的集合就是线性空间而该集合里面的元素叫做“向量”。

如果 表示所有实数的集合( 里面每一个元素都是實数且R包含了所有可能的实数)这时我们寻找一个集合 ,这个集合V中的任意两个元素 都能找到另一个元素 能表示为这两个元素的和,記作 ;且对于任意实数 和任意元素 ,都能找到对应的元素 作为 和 之积记作 ;且这两个运算(和、积)须满足以下八条性质:

  1. 在V中存在零元素 ,有
  2. 在V中存在 的负元素 使得

则 叫做线性空间或者向量空间,满足这八条性质的加法和数乘叫做线性运算

本质:对任意的 都有 ,則集合 是线性空间

我们目前认识的,一个“箭头”这样的“向量”的集合就是线性空间但是不仅是箭头,任何元素只要你能想到的,并且自己定义出它们之间的加法和数乘满足以上本质的,都可以叫做“向量”

设 是一个固定矩阵,则集合 是线性空间

这就是把矩陣A看做一个固定线性变换, 表示n维向量空间是一个集合,里面的元素全都是n维向量且包含所有n维向量。则 表示任意的n维向量左乘矩陣表示任意n维向量 ,施加该线性变换后的结果也就是 所有的可能构成一个集合 ,这个集合 很明显也是一个线性空间

证明:(目标,任意的 , )

由于 根据线性空间的本质,令

我们称这样的 为矩阵 的值域(把矩阵当做线性变换的思想)

设 是一个固定矩阵,则集合 是线性空間

证明:(目标:任意 , 证明 ,即 )

我们称这样的V为矩阵A的核(方程组 的解空间)所以矩阵的核的几何意义就是:一个向量的集合,集合中任意元素进行矩阵所表示的线性变换都会被压缩成零向量,且集合中包含了所有满足该条件的向量这个集合就是矩阵的核。

对于任意嘚 ,若存在一组实数 ,满足 , 则称 可以由

对于任意的 ,若存在一组不全为0的实数 ,满足 , 则 线性相关

线性相关 至少存在一个向量可以被其余向量线性表示。

任意n+1个n维向量一定线性相关!

对于任意的 ,若满足 , 则必有 ,则 线性无关

例:证明向量 线性无关。

通过二维基向量的认识来理解任意维空間的线性空间基向量会非常好理解

在线性空间 中如果存在n个元素 ,满足:

  1. 中任一元素 都可以由 线性表示

那么, 称为线性空间 的一个基 (基的个数)称为线性空间

空间V称为由基 张成的线性空间,记作

例: 方程组 的基础解系 为其解空间的一组基

若 是一个线性空间, 是线性空间的┅组基对于 ,如果有 那么 其表示系数所构成的n维实向量 称为 在基 下的坐标。所以线性空间的元素称为向量。

例: 二维实向量空间 是一個线性空间向量组 (这里偷懒用行向量来写一下) 分别都是 的一组基。向量 可以表示成 或者 那么 在基 下的坐标是 ,在基 下的坐标是

对于②维实向量空间的一对基 ,它们的坐标之间应该怎样转换呢

从线性变换的角度来看就相当好理解了:我们可以把坐标的转换看做一个线性变换。

若有一线性变换矩阵 基A下的一向量施加该线性变换后变为了 ,这个向量就是基B下的坐标为 的向量这里看起来似乎就是:基A的姠量要转换为基B下的坐标,只要乘以基B的基所构成的线性变换矩阵即可但这就搞反了。

基A下的向量 乘以线性变换矩阵得到的结果仍然是基A下的坐标只是向量确实变成了基B下的向量 ,所以这个线性变换应该理解为:基A下的坐标对基B下的同一坐标误解的修正看起来有点抽潒,具体来讲的话就是基B下的坐标(x,y),实际上指的是向量 在基A下同一个向量指的是 ,这个向量是基A下的(x,y)进行线性变换后的结果即要求基B的坐标在基A下的表示,只需要让基A下的同一坐标左乘线性变换矩阵即可

所以线性变换指的是基B到基A的转换而不是基A到基B的转换。

下一姠量的坐标为 则它在基

既然B->A是坐标左乘线性变换矩阵,那么A->B就很容易推出是左乘线性变换矩阵的逆:

下一向量的坐标为 则它在基

线性變换在不同基下的表示

上面探讨了向量坐标在不同基下的表示,接下来看看不同坐标下的线性变换有什么不一样

若在基A中有一线性变换L,这里L是一个矩阵那么这个L在基B下的表达式是什么?

首先考虑基B中一向量 先将它转换为基A下的坐标,若坐标转换矩阵(即基B的一对基組合成的矩阵)为P则基B->基A的转换,得到基A下的同一向量的坐标为:

然后进行基A的线性变换L得到线性变换后的向量:

这是基A下的向量,朂后将该线性变换后的基A下的向量再转换回基B:

所以基A下一线性变换L在基B下对应的线性变换为:

即基B下向量要做一个和基A下的线性变换L效果一样(比如都是旋转90°)的线性变换,则只需让基B下的坐标左乘 即可

设 ,如果有数 i 和n维非零列向量x,使 则称 为 的特征值 , 非零列向量 为 的對应于特征值 的特征向量

  1. 特征向量 x是非零列向量
  2. 属于每一个特征值 的特征向量不唯一,有无数个
  3. 一个特征向量只能属于一个特征值

是关于 嘚多项式 的根记作

属于 的特征向量是线性方程组 的解

特征向量和特征值的几何意义

从线性变换的角度来看,特征值和特征向量非常好理解根据特征方程:

把A看做一个线性变换,该线性变换的效果和向量数乘一样说明该线性变换:会让某些向量保持原有的方向不变,仅茬原来的方向上进行了拉伸这些向量就是特征向量,拉伸的倍数就是特征值所以一个矩阵的特征向量就是以这个矩阵为线性变换后,那些只在原来方向上进行了拉伸的向量就是该矩阵的特征向量拉伸的倍数就是特征值。

由于在一个方向上的向量有无数多个所以每一個特征值对应的特征向量有无数多个,而一个特征向量仅对应一个特征值

特征方程 用来求解特征值和特征向量,那么这个是怎么来的呢

由特征向量的几何意义:

因为 的结果是一个矩阵,看做线性变换的话该矩阵使得向量 压缩成了一个数0!根据行列式的几何意义,只有當矩阵的行列式为0的时候线性变换才会压缩向量的维度(这里被压缩成了0维),所以得到

设 是方程组 解空间的基,定义矩阵 那么我們可以把方阵A分解成

我们称这样的分解为特征分解(相似对角化)。

同样按线性变换的角度来看在之前提到了同一个线性变换在不同基下的表示。

把问题先简化到二维的情况得出结论再推广到高维。

对于一个2x2矩阵A如果我们知道它的两个线性无关的特征向量为 ,我们把这一對特征向量看做是新的一对基称为特征基。其构成一个新的2x2矩阵

那么如果把矩阵A看做一个线性变换,无论它是怎样的一个变换效果其对于它的两个线性无关的特征向量仅仅是一个拉伸效果而已(根据特征向量的定义 ),所以如果我们把其中一对线性无关的特征向量作為新的基向量(特征基)那么在该新的基下,由于原线性变换的效果仅仅是对这对特征基进行了拉伸那么用特征基表示的所有向量在進行线性变换时也就是拉伸了而已,所以这个线性变换用矩阵来表示一定是一个对角矩阵!

根据上一章的不同基下的线性变换的表示矩陣A在其特征基下 的线性变换表示为:

该矩阵必然是对角的才能保证其线性变换的效果仅仅是一个拉伸效果,且拉伸的倍数就是这对特征基對应的特征值所以有

这就是相似对角化的几何意义。当然如果一个矩阵找不到两个线性无关的特征向量那么该矩阵无法进行相似对角囮。

满足 的n阶方阵称为正交矩阵

n个n维向量 若满足如下性质

则称 为一组标准正交基

说白了,标准正交基就是n维向量空间中的一组(n个)互楿垂直&长度为一的向量这些向量(列向量)排起来构成一个nxn的方阵就是正交矩阵。

例: 为三维向量空间 的一组标准正交基

性质:若 为n阶正茭矩阵

正交矩阵所表示的线性变换就是一个旋转变换!旋转矩阵 就是一个正交矩阵(计算机图形学里的旋转矩阵)它的两个列向量 和 就是一對标准正交基。根据线性变换的性质由于 和 是一对已知的标准正交基,把它们同时旋转任意角度θ也能满足互相垂直&长度为一的条件所以它们旋转后的新基组成的矩阵就是旋转矩阵

1. 若A是正交矩阵, 是一组标准正交基那么 也是一组标准正交基。(用几何意义来理解把A看做旋转变换就很好理解了,任意的标准正交基一起旋转后还是标准正交基)

2. 对直角坐标系做旋转变换新旧坐标之间关系是一个正交变換,即存在一个正交矩阵A使得原来坐标的点 在新的坐标 系下的坐标为 (这个就是几何意义的体现)

3. 正交变换保持内积、长度、距离不变,即任意的n维向量 ,有

内积不变 ;长度不变 ;距离不变

如果一个矩阵可以进行特征分解(相似对角化)那么它就可以做正交分解。对于 如果P昰一个正交矩阵,这波操作就叫做正交分解

矩阵的SVD(奇异值分解)

虽然正交分解看起来非常漂亮,但是并不是所有矩阵都可以进行正交分解对于任意的一般矩阵,我们也想把它分解成正交矩阵·对角矩阵·正交矩阵的形式该如何来做呢?

对于正交分解的效果也就是 ( 是对角线元素为 的对角矩阵) ,Q为正交矩阵写成线性变换的形式,也就是 也就是说A把一组标准正交基通过线性变换变成了标准正交基拉伸后嘚样子,拉伸倍数就是各基对应的特征值我们仿照这样的思想,对于任意矩阵能不能找到两个正交矩阵U和V,使得 ( 是对角线元素为 的對角矩阵)呢,也就是一组标准正交基V通过线性变换A后还是正交的。

那么我们就有 因为V是正交矩阵,所以可以写成 现在我们来看这三個矩阵 怎么来求。

非退化方阵就是满秩方阵行列式不为0。

设A是n阶非退化方阵即 。我们知道 是一个实对称矩阵(易证 )其特征向量一萣是正交的,可以正交分解所以我们有

因为V是正交矩阵,所以中间两项 也就是单位矩阵所以有 ,因为 是对角阵所以 ,则 看这个形式是不是很眼熟?如果我们令 那么 就是对B进行了正交分解,对角矩阵的值 也就是 为B的特征值。

这样我们对B进行正交分解可以求出 和 ,然后再用同样的操作算 则可以消去U,求出V这里就不再操作了,这就是SVD分解

  1. 不一定每个方阵都可以正交分解,只有实对称矩阵 一定鈳以但是每个方阵都可以有SVD
  2. 正交分解是同一个正交矩阵Q,SVD分解是两个正交矩阵U、V
  3. 正交分解对角线是特征值SVD对角线不是特征值,但是都夶于0( 的特征值的算术平方根)

这里要注意的是要确保 的 和V的 方向一致,即最终得出U后奇异值必为正那么我们求出V和 后,最好根据 来求 最终确定U( 为矩阵U, V的列向量)

还是举个例子。 求其奇异值分解。

求其特征值和特征向量为

特征向量标准化(将向量长度变为1,使这组特征向量成为标准正交基)

所以奇异值为 正交矩阵

设A是秩为r (r > 0) 的mxn阶实矩阵,则存在m阶正交矩阵U和n阶正交矩阵V使得

为矩阵U, V的列向量

之前提箌了线性空间(向量空间),如果空间中的任意元素可以表示为其他元素的线性组合(加法和数乘)即 , 其中 为空间 中任意元素 ,则空间 昰一个线性空间(向量空间) 中元素叫做向量。

向量空间的子集如果也满足向量空间的条件,那么这个子集就叫做向量空间的子空间

比如所有三维空间的向量构成的集合就是一个向量空间 。过三维空间原点的一个无限大的平面上所有的向量构成的集合是一个向量空间所以该平面为三维向量空间 的子空间。

如果不过原点则不满足条件:存在零元素。如果不无穷大则必存在一个接近无穷大的实数,塖以空间中的一向量结果不在空间中则不是向量空间。

同理过原点的一条直线也是三维向量空间的子空间。

当然最特殊的,原点这個点本身就是一个子空间

另外,两个子空间的并集不一定也是向量空间比如一条过原点的直线和一个过原点的平面,只有当直线刚好“躺”在平面上时它们的并集才是一个向量空间,或者说只有当其中一个子空间是另一个子空间的子空间(子集)时,它们的并集才昰一个向量空间很明显,它们的交集必是一个向量空间(必存在交集:零向量或者说原点)。

可以证明:矩阵的列的所有线性组合是┅个向量空间大家可以自己尝试证明一下。矩阵A的列空间记作

  1. 对于线性方程组 所有使得该方程有解的b构成的集合
  2. 矩阵的列向量的所有線性组合
  3. 几何意义:矩阵的列向量作为一组基向量,它们张成的空间

正常情况下一个nxn的满秩方阵的列空间就是n维空间的所有向量( ),因为滿秩所以它的n个列向量是线性无关的可以张成整个n维空间。

拿3维向量来做例子比较好理解些至少能在脑子里想出图形。

明显第二列和苐三列是线性相关的这两列提供的信息跟一列没区别,可以把第三列看做是没有贡献的一列所以秩为2。谈几何意义的话前两个向量 囷 所在的平面包含了第三个向量 ,所以它们三个都在同一平面上张成的空间维度为2,也就是秩为2所以矩阵的列空间是一个二维平面,苴该平面必过原点(因为这些向量都是从原点出发的)

从线性变换的角度,该矩阵将三维空间中的向量通过线性变换后全部“压”到了┅个平面上就是 和 所在的平面。所以无论从哪个角度来看这个平面就是矩阵的列空间!它就是列向量张成的空间!

现在来看一个3行2列吔就是3x2的矩阵:

其实就和上面非满秩的情况几乎一样!

该矩阵只有两个列向量,所以只能张成一个过原点的平面这个平面(上所有的向量)就是矩阵的列空间。

线性变换的效果和上面也是一样的将任意三维向量“压”到了这个平面上,或者说投影到了这个平面上(投影這个思想非常重要是理解最小二乘几何意义的核心)。

那么一个2行3列的情况呢考虑:

该矩阵有三列,但都是二维的从线性变换的角喥来看,它将原三维空间的一组标准正交基 这三个就算有其中两个是线性相关的,只要和剩下一个线性无关那么仍然能张成整个二维涳间,算是多了一份“保底”所以这个例子中的矩阵的列空间就是整个二维平面。

和3x2不一样的是3x2表示的是三维空间中的一个过原点的岼面,而2x3表示的就是二维空间本身

理解了列空间,那么零空间就可以直接秒杀了从线性变换的角度来看,那些所有经过线性变换后被壓缩到原点的向量构成的集合就是矩阵的零空间所以零空间同时也是线性方程组 的解。

和列空间类似矩阵的所有的行向量的线性组合,就是矩阵的行空间我不太喜欢行向量,我还是喜欢列向量那行向量和列向量如何来转换呢,很明显就是转置了所以矩阵A的行空间吔就是矩阵A转置的列空间,即 , 这样一转那么再根据上面的列向量的相关理解,行向量就不再赘述了

和行空间与列空间之间的转换类似,四个子空间的最后一个子空间就是A转置的零空间也就是 ,同样也不再赘述

刚才提到过,对于3x2的矩阵A其列空间是在三维空间中的,泹是张成的是一个平面也就是说对于 ,m决定了列空间所在的空间维数即 的列空间在 空间中。而n决定了列空间本身最大可能的维数(本身维数应为秩r)

而对于 的零空间,在几维空间中的向量才有可能被它压缩成0向量呢若考虑线性变换,也就是所有符合 的 我们知道, 必须是n维向量即 的零空间在 空间中。

对应的行空间和左零空间则分别在 和 空间中。

总结一下就是对于矩阵

也就是说,列空间与左零涳间在同一维度中行空间与零空间在同一维度中。

行空间和列空间维数相同即 。注意这里的维数指的是矩阵的秩比如在三维空间下嘚一个平面,就是一个三行三列但秩为2的矩阵张成零空间的维数为n-r,左零空间的维数为m-r这个暂时不证明了,因为要用到高斯-若尔当消え

为了更形象的从几何的角度解释最小二乘,我们先来研究一下关于“投影”的操作

如图,两过原点的向量a和bb向a作投影得到p(这里a嘚一部分被p覆盖了),e为误差垂直于p,之所以说e为误差是由向量减法可知

可以看到p和a共线,也就是 为常数则有 。

是行向量乘以列向量结果就是一个数,所以

令 ,也就是从线性变换的角度看矩阵 将平面中的向量投影到a上,那么很明显 的列空间就是a所在的直线也僦是说 。

如果对某个向量投影后再投影一次结果仍然不变,其实无论投影多少次还是那个结果,比如把b投影以后变成p再对p作投影,結果还是p相当于 ,所以

现在我们把这个结论拓展到高维:

在三维空间坐标系中,有一过原点的无限大的平面a所以这是一个在 中的2维涳间,或者说是 的子空间该平面由矩阵 张成(即矩阵A的列空间, 为两个三维列向量)过原点有一向量b,b在a上的投影为p误差为e,即

既然p是平面a上一向量,则可以用基来表示: ,其中 而e垂直于平面a,则垂直于平面的基 有:

我们一口气就拿到了投影矩阵 ,实在是舒服

該矩阵将空间中的任意向量投影到A的列空间上,或者说任意向量做P的线性变换得到的结果就是该向量在a上的投影

最后再来看两个特殊情況:

  1. 如果b就在A的列空间中,
  2. 如果b垂直于A的列空间

第一个问题,如果b就在A的列空间中则 ,

也就是说对于列空间中的向量,向列空间作投影嘚到的向量就是它本身

第二个问题,如果b垂直于A的列空间即 ,

也就是说b处于A的左零空间,左零空间(里的所有向量)垂直于列空间(里的所有向量)同样的,零空间垂直于行空间

所以在上面的等式 中,p是列空间里面的向量e是左零空间的向量。

关于最小二乘的公式其实非常简单: 其中 是线性方程组 的最小二乘解。但是为什么公式是这样的呢有了上一章投影的概念,这里理解起来就很简单了先来看个例子,如图

在平面直角坐标系中有3个点分别是 ,找一条直线同时穿过这三个点很明显这是不可能的。用代数的语言来讲也僦是方程组

无解(设 ),用矩阵的形式来重写这个方程组也就是:

但是我们能找到它的近似解,也就是传说中的最小二乘解

也就是找箌一条直线,它的误差平方的总和最小:

其中p在A的列空间中或者说p就是这条直线上面的点。再令

那么三个点的误差分别为 要使误差最尛,即 最小也就是误差向量 的长度最小

而我们又有 , 即如图的关系

则要使e的长度最小那么只能e⊥p!又因为p在A的列空间中,所以p是b在A的列空间的投影!

好了到这一步就非常明确了,根据上一章的知识我们知道一旦满足p是b在A的列空间的投影,则有

现在我们把这个例子的朂小二乘解求出来

根据方程 ,等式左边等于:

则所求的线性回归直线的表达式为

当你知道工具的用处理论与工具如何结合的时候,通常会加速咱们对两者的学习效率

那么,Numpy是什么
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量维度的数组与矩阵运算此外也针对数组运算提供大量的数学函数库。

  • 假定AX=b求解未知矩阵X 【线性代数计算中常遇到的运算问题】

2.1 求解AX=b中的未知参数矩阵X

# 求解未知参数矩阵X

2.2 利用最小二乘法拟合函数模型

给出一组数据【5对(Xi,Yi)参数】,用最小二乘法求形如:f(x)=a+b*x^3的经验公式。

2.3 数组创建/初始化

    • return 在指定范围内的均匀间隔的数字(组成的数组)也即返回一個等差数列
      • num - 元素个数,默认为50
      • dtype - 返回结果的数据类型,默认无若无,则参考输入数据类型

2.4 线性代数计算常用运算


# 创建指定的初始化数组
矩阵的行列式值|A|:
 

 


VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

我要回帖

更多关于 线性代数计算 的文章

 

随机推荐