太久没更新主要是在忙开发和测试,这几个月被很多同学提问,同时接触了一些实习生。普遍发现动手能力不错,数学基础却差异很大。从我身边电子,CV或者SLAM做得比较杰出的朋友来看,大家普遍有个共性,具备优秀或者杰出的数学基础。今天接着著名的18.06课程,总结和分享一下线性代数部分。全文字多,基本没涉及到具体开发或者具体算法。

     在中文网没有搜索到18.06的课程总结,干脆自己写一下,这是一篇18.06线性代数课程总结,涉及线性代数的关键工程要点。其实就是怼大家如果基础差(看字都看不懂就是基础差,这都不懂。。。别说自己哪怕是了解机器人状态估计或SLAM,说熟悉和精通一定diss惨你),一定要多去认真看看18.06。现存世界所有工程中的非线性优化,绝大部分以建立假设后,以线性优化来近似或逼近。

     VIO-VSLAM中,会涉及线代,概率,高数,李群李代数等等,线代占了一大半。国内线代的教育整体比较零碎(现在学的和我20年前学的东西差不多。。。),没有全面强调其重要性,18.06课程在B站浏览量不算太高(这个课程我在过去的工作和学习过程中来回看过10遍以上),同时认真推荐下我永远的偶像Gilbert Strang老师86岁时在2020年发布的新课,这个是必须精通18.06之后了。

      实际上并不仅止于VIO-VSLAM,过去19年我的主要工作中,包括信号处理,图像压缩与转换,包括所有机器视觉相关的工作,都紧密地和线性代数结合。如何与矩阵处理工具结合,开发自己的算法,或硬化成电路。这一门课程都属于本质学科(工程本质是数理)。如果今天写的你有看不懂的,就一定要去弄懂它。

矩阵即方程组的几何解释。后续A'代表A的转置矩阵,A*代表A矩阵的逆,A"代表A矩阵的共轭。(我懒。。。实在不想敲公式)

矩阵消元,乘法和逆的基础解释,LU分解就不说了。重点是掌握高斯消元。

(一)从矩阵A的置换和转置,子空间,可解性开始:

1.置换矩阵:行重新排列了的单位矩阵I,可逆,可对矩阵进行行变换 

2.向量空间由所有空间中的向量构成,缺一不可。

加法,数乘和其他线性组合后仍然在向量空间,它对这些运算封闭

R2直线子空间:R2整体,零向量,任何穿过原点的直线

R3子空间:R3整体,零向量,任何穿过原点的直线,任何穿过原点的平面

所有线性组合构成了列空间。

这个列空间必然过原点,但是三维空间的P平面与L直线(不在P平面)的并集不是子空间,因为加法不封闭。交集是:0,在子空间

这个法则对任意2个子空间生效。向量空间必须满足的条件:加法和乘法封闭

首先需要注意的是:方程组并不总是有解。0向量是解,同时每一列也是解。

正规方程Ax=b中,只有b是各列线性组合(即属于A的列空间)时,才有解。除了0零向量,Ax中还包含了系数C/权重

主列:列之间线性无关,没有互为线性组合的列,主元所在的列

零空间: Ax=0中所有的解,它们构成一个子空间。

Ax=b,如果b仅是在列空间中,x无法组成向量空间,因为没有零向量,是一个不穿过原点的直线或者平面或者其他什么的(高维)~。

自由变量所在的自由列可以随意取值(一般是0和1),解出主元,得到特解,每一个自由变量对应一个特解,特解个数就是自由变量个数,然后所有特解的线性组合为Ax=0的解。

简化后的主列矩阵是单位阵,主列个数为秩的个数r。

将b放在矩阵A最后一列,生成增广矩阵。

如果行的线性组合后对应的结果为0行,对应的b一定为0。全部自由变量为0就可以很容易找到一个特解。对于方程组的某个解,它与零空间内任意向量之和仍然为方程组的解。

如果考虑秩r的mxn矩阵A,

R矩阵:矩阵的行最简形式矩阵

r≤m r≤n

列满秩 r=n,此时自由变量为0,零空间只有0

如果有解,只有一个特解,只有0或1个解

行满秩 r=m,此时有m个主元,自由变量n-r或n-m个

r=m=n情况必定是可逆矩阵,

r=n<m, R=I,0或唯一解

r=m<n, 1个或无穷解

r<m, r<n,0或无穷解

(二)线性相关,基和维数:

向量组线性无关:表示任何C1X1+C2X2+...CnXn结果都不为零,除非所有C为0

向量组线性无关不能有零向量,平面内多个向量一定相关

线性无关的条件是零空间里面只有零向量 ,秩RANK=n,无自由变量,

反之相关 秩RANK<n,有自由变量

一堆向量v生成了一个向量空间(列空间),代表这个空间包含了这个向量组的所有线性组合

列空间内的向量不一定线性无关,列空间中的一组基<=向量个数

维数属于空间,同样空间没有秩,只有矩阵才有秩

基:一组向量,足够但是不多,1.正好生成整个空间,2.同时线性无关

n x n 矩阵以这类向量构建则可逆

所有基向量的数量相等,基向量数量等于空间维数

秩为r的m x n矩阵,零空间向量数:n-r,基的数量等于r

四个子空间: 列空间C(A)在m中,零空间在n中,行空间(行向量生成行空间,基性质一样)在n中,行空间的零空间(A转置)在m中,或者叫做左零空间

列空间的维数是r

行空间的维数也是r

零空间的维数:n-r,自由变量个数

左零空间的维数:m-r

行变换不会对行空间产生影响,但是影响了列空间

行空间的基,是矩阵行最简形式R的前r(秩数)

A和R的行空间与基是一样的

一个可逆方阵的行最简形式,其实是一个单位矩阵(高斯-若尔当形)

但是如果是m x n矩阵,需要对单位阵I进行对应的行变换

自由变量对应的E中的行向量就是我们需要的组合(对应左零空间)

矩阵其实也就是向量空间

比如所有的3x3矩阵构成一个矩阵空间,上三角矩阵/所有的对称矩阵/对角矩阵都是他们的子空间

这个时候空间仍然对加法和数乘封闭

(三)矩阵空间,秩1,小世界,图论与网络:

这块会讲到关键的因子图和矩阵间的简单关联

3x3矩阵空间M的基和维数是9

对称矩阵S 的维数是6

上三角矩阵U的维数是6

S+U  这种情况只能用S中的任意元素加上U中的任意元素,这样可以得到所有的3 x 3矩阵

维数:S维数+U维数=他们之间交与和的维数的和

二阶微分方程解的维数是2

秩1矩阵就和积木一样,比如一个秩4的矩阵可以由4个秩1矩阵组合

秩4加秩4矩阵的秩不会大于8,但是不等于4,同样秩1矩阵的和的秩不等于1

求子空间的一组基,需要将线性无关向量列出来,然后再在各个主元上赋值把基求出来。

图/因子图:一般由顶点和边构成。

转换为m x n矩阵形式:顶点对应m,边对应n。VIO-VSLAM中是大量应用因子图优化的,再以卡尔曼滤波或BA完成。

小世界:比如全球人际关系,6步法关联任何2个人之间。

图中的回路,意味着“相关”,通过矩阵A可以算出各个边上的差值。

图通过转置调节回了m>n(正常方程组m>n)的情况,变成了更加好解的情况,在4个子空间间进行转换。没有回路的图就是树,表示A的各行线性无关(各个边线性无关)

重要的欧拉公式:环路loop数量=边edge的数量-(顶点Nodes数量-1)

应用数学通式之一:A'CAx=f

(四)投影矩阵与最小二乘:

行空间与零空间,列空间与左零空间的交角是90°

矩阵和向量点乘能迅速判断是否正交。如果x'x=x1²+x2²+...xn²的条件是正交

两个正交向量点乘为0,零向量与任何向量都正交

两个子空间正交,意味着2个子空间所有的向量之间都正交

零空间和行空间正好将整个空间一分为二并相互正交,因为点乘为0

行空间包含了所有的行和其线性组合,此时这称为n维空间中的正交补。

如果b不在A的列空间中时,Ax=b无解,同时当方程组特别多时,右侧难免有坏数据,比如SLAM中的离散时间测量。

任何A'A是对称矩阵,相对A,它变成了更小的n x n方阵,A'A也是一个性质非常好的矩阵,这个矩阵至关重要。

此矩阵可逆(当零空间只有零向量时,各列线性无关),和原矩阵秩相等

假设向量b在向量a上的投影是p,则误差e=b-p (几个关系式就不写了。。很基础)

这个式子,给a加系数投影不变,给b加系数投影随之改变

一个投影矩阵随便作用于某个向量,最后投影P矩阵如下:

你用任何b乘这个矩阵,总是在这个矩阵的列空间中,P矩阵是一个秩1矩阵

投影是因为Ax=b可能会无解,Ax总在列空间中,而b未必

此时问题被转换为了Ax^=p,因为p在列空间中,可以用来逼近目标

转换到3维,b投影到平面,首先要有平面的一组基(线性无关),比如a1和a2

e=b-p,垂直于平面,p是基向量的组合

b-Ax^其实就是e,它也垂直于平面。此时e在左零空间N(AT)中,又垂直于列空间C(A)

这时推导出投影矩阵主公式,A通常不可逆,非方阵

如果A可逆,则投影矩阵P投影到了整个列空间(也是整个空间),是单位阵I

投影矩阵P转置=P,且对称,同时P²=P

最小二乘法:b垂直于列空间是因为P在A转置的零空间

如果P是个投影,那么I-P也是,所有误差e的平方和为最小二乘法

最小化这个||Ax-b||²=||e||²,并剔除离群值outliers

这是应用数学最重要的公式

A'A即可逆也对称(A中列线性无关,互相垂直的各列必然线性无关)

然后对这个二次函数求偏导得出结果,e垂直于列空间

(五)正交矩阵,QR分解和正交性质

垂直即正交,q代表正交向量,Q代表正交矩阵

如果i=j则qi'qj=1,如果i不等于j,则qi'qj=0

P=Q(Q'Q)*Q'=(QQ')(QQ')=QQ'=I

Q'Q如上,最后生成单位阵I,求的都是矩阵点积

Q为方阵时,是正交矩阵并且可逆,其转置等于逆。

Q也可以是长方形的,投影矩阵和A形式类似,当Q是方阵时,其投影矩阵P投影到整个列空间,为单位阵I

A'Ax^=A'b,现在A变成方阵Q,则Q'Qx^=Q'b,简化成x^=Qb

Gram Schmidt法:

将线性无关的向量组变为正交。a,b变为A,B

从b当中求一个向量,使其垂直于a/A

这个B=e,用b减去其投影:B=b-(A'b/A'A)A,最后再除以自身长度

因为互相垂直正交,然后再找出C正交于A和B

写一个减号,减去A和B方向上的分量。最后结果不是单位向量,再除以自身长度||C||

Q和A有同一个列空间,A=LU(消元),将A转为Q称为QR分解,A=QR

下标i不等于j则为0,因为垂直和正交QR的R为右上三角矩阵

(六)行列式主要性质

现代数学行列式的重要度发生了变化,关键是其核心性质

性质1:单位阵I行列式为1

性质2:交换行,则行列式正负转换

性质3a:行列式某行乘t,相当于t乘整个行列式

性质3b:行列式某行a,b加上A,B(如二维),行列式变为a,b和A,B各自对应c,d的行列式之和。

性质4:如果两行相等,则行列式为零

性质5:消元行列式不变,并化为右上三角矩阵,如果对角线有零,则行列式为0

性质6:如果行列式有1行是0,则整个行列式为0

性质7:消元后的上三角阵U,其行列式为主元的乘积(核心性质)

性质8:行列式非零则可逆,为零则矩阵奇异

性质9:detAB=(detA)(detB), detA*=1/detA,detA*A=I(detA*)(detA)=1

性质10:detA'=detA

(七)特征值与特征向量

特征值和特征向量在现代工程中是核心

有特定的向量能使得Ax平行于x

满足Ax=λx,此时x是特征向量,λ是特征值

零空间向量Ax=0,矩阵奇异,则行列式为0,特征值为0

投影矩阵P的特性:特征值为1(在投影矩阵平面)或0(2个垂直关系)

特征值的和等于对角线元素(迹trace)的和

特征值与特征向量解法:先解出一组λ,det(A-λI)=0,寻找零空间null space,利用消元法,找出主列,给自由变量赋值,找出其他的x(因式分解)。

特征值不满足线性关系,或乘积关系。

(八)对角线与A的幂

假设A有n个线性无关的特征向量,按列组成矩阵S,称为特征向量矩阵

通过矩阵乘法操作,A=SΛS*,其中Λ是由所有特征值λ构成的单位矩阵(这一点非常关键)。

A²的特征值是λ²,特征向量也一样(推导:A²=(SΛS*)(SΛS*)=SΛ²S*=λ²)

同样A的K次方的特征值是A特征值的K次方,特征值是计算矩阵幂的一种方法,如果K趋向于无穷,如果这些值都小于1,则A的K次方趋于零。(注意,矩阵幂级数展开广泛应用于机器人及SLAM学科落地)

一个多维单位矩阵I,只有一个特征值重复n次,但是其特征向量均线性无关。

如果特征值各不相同,则可以进行对角化

uk+1=Auk,从一个已知向量u0开始

进行幂数展开:u1=Au0, u2=A²u0......uk=A(k次方)u0

u0=c1x1+c2x2....+cnxn=Sc   (c是系数向量)

A(k次方)u0=c1λ1(k次方)x1+c2λ2(k次方)x2+...cnλn(k次方)xn=Λ(k次方)Sc

将矩阵A进行k次方,则高幂数项影响消除,剩下的只有特征向量。

关键在于确定A的特征值和特征向量,接着的展开式把u0展开成特征向量的线性组合。

离散时间t估计,微分方程都可以加以应用,此时当0个特征值时我们就得到了稳态。

微分方程通解可以以这种形式得到,系数c可以从初值得到。

我们需要λ的实数部分为负,虚数部分不产生影响,如果λ的实数部分为正,则解无法收敛。

需要确定特征值,特征向量与其系数

v(t)=e(Λt次方)v(0)

u(t)=Se(Λt次方)S*u(0)--->指数函数形式 e(At次方)=Se(Λt次方)S*--->含有矩阵的指数

U=SV

展开成幂级数的形式,是一种定义指数函数的方式。

形成了一个漂亮的泰勒级数展开。

幂级数也是一种求逆矩阵的好方法,t很小就可以去掉若干项,当各项特征值都小于1,则矩阵求逆成立。换言之,通过S和Λ最终得到e(At次方),如果所有特征值实部为负,则对角线指数收敛为0.

微分方程:du/dt=Au,常系数线性方程的解是指数形式的,找到指数和系数,即可以通过线性代数求解完成。微分方程是指数形式。

马尔科夫矩阵定义:

1.每个元素大于等于0

2.每一列加起来都等于1,即使矩阵平方,此性质仍满足

所有矩阵的幂,都是马尔科夫矩阵。

如果某个矩阵A存在特征值1,则其他项会随K增大而消失,剩下x1部分

A-I是奇异的,因为行线性无关,如果是一个方阵,则A和A'的特征值一样。

(九)对称矩阵与正定性

对称矩阵:A=A'

特征值都是实数,特征向量互相垂直(能被选择)

列都标准正交了,用Q来表示

对称矩阵定理:A=QΛQ*=QΛQ'

Ax=λx则 A"x"=λ"x",实矩阵,特征值有λ和λ''

对共轭: 对于a+ib取共轭为a-ib,一个数乘以其共轭只剩下实部

如果一个向量为复向量,那么x''转置x就是其长度平方

当矩阵是实矩阵,共轭就不起作用,当它对称,转置不起作用,最终直接得到A

性质好的矩阵:λ为实数,x互相垂直。

针对复数矩阵的情况:

每一个对称矩阵都是一些互相垂直的投影矩阵的组合

当给定对称矩阵,我们知道特征值的实数

计算高阶对称矩阵的特征值有极高的计算量,特征值分解和SVD分解是很好的方法

对于实矩阵,可以通过主元数进行计算,并判断其正负,这样能控制在更好的计算量

正主元数等于正特征值个数

主元的乘积等于特征值的乘积,等于其行列式的值

正定矩阵:首先对称,特征值为正,主元都是正,子行列式也是正的

只要一条性质满足,其他两条自然满足

复数矩阵与快速傅里叶变换:

当特征值为负数时,特征向量也变复数了,傅里叶矩阵是标准的复数矩阵。

通常n阶方阵乘法要算n²次,加上傅里叶矩阵FFT后复杂度降低为logn, 底数等于次方数。计算复杂度急剧降低。

如果用复数向量,如何求模长:z'z是不对的,因为模长平方为正数

z''z可以得到模长的平方|z|²,复数的共轭,比如i会变成-i,相乘为1(正数),向量的长度为正

z'''z用这个形式表达更好,Hermitian表达了共轭加转置,同时也是向量内积的求法。

假设有互相垂直的向量q1,q2....到qn,同时满足转置和共轭,称之为Unitary矩阵,酉矩阵

傅里叶矩阵(这部分是常识就不说太细了)中的向量w,在原点半径为I的单位圆上做6分,是1的6个六次方根。

-i乘i还是等于1,逆等于它的转置,复矩阵的逆等于其共轭转置。

傅里叶矩阵中F3和F6,F8和F4,F64和F32间存在着联系,如(w64)²=(w32)

此时进行快速傅里叶变换能极大简化运算并不断向下分块。其中对角阵D由W的幂构成

快速傅里叶变换可以一直进行,但是双侧的修正矩阵会变得繁杂,右侧是置换矩阵,左侧由I和D组成。复杂度logn其实就是修正开销加最后那一丢丢。

其核心是一个特殊的标准正交矩阵。

(十)正定矩阵与最小值

正定矩阵:特征值全部为正,行列式和子行列式全部为正,主元a为正,第二个主元是行列式除a,主元的乘积等于行列式值。

最关键的性质是:x'Ax>0

因为这个算法不管系数,全部变成了二次型

鞍点:函数在某一个点上,某一个方向向下,某一个方向向上

函数的最佳观测方向实际是在沿着特征向量的方向上

要注意x'Ax>0仅在极小值上除外,当矩阵正定时,不再有鞍点。

矩阵本质告诉我们的,是一个二阶导数,如果二阶导数为正,则有极小值

针对x1,x2....xn,需要二阶导数矩阵为正定,则有极小值

空间中的流形也取决于维数

2x2的情况:对一个普通x,y函数取二次型配平方(高斯消元),假设取结果为1,则代表以1为长度取此函数的椭圆切面。

如果此时在鞍点切割,得到双曲线。

一个简单的LU分解即消元,消元就是配平方,配完之后外部的就是主元。

n x n矩阵是同一个逻辑

举例:3x3时,就变成了椭球了(机器人状态估计里整天说的不确定度椭球就是这个)

此时3个轴的长度就是特征向量的方向,轴的长度由特征值决定,因为其本质是特征向量与特征值矩阵的结合。

(十一)相似矩阵,若尔当形与奇异值分解

逆矩阵特征值等于原矩阵特征值的倒数

正定矩阵逆矩阵也是正定矩阵

如果要使用最小二乘,需要证明A'A是正定矩阵

通常我们应用数学中的矩阵m x n是长方形,但是其A'A是方阵加对称

这个矩阵的特性是正定/半正定

假设11x5矩阵,各列线性无关,零空间中无其他向量,秩为n=5,则A'A正定

如果A'A可逆,则最小二乘有解

对于正定矩阵,你不需要进行行交换,也不必担心主元过小或者等于0

A和B是2个n x n矩阵,是相似矩阵,意味存在着某个可逆矩阵M

满足B=M*AM, 如同A和Λ是相似矩阵,S*AS=Λ, 而Λ也是A的相似矩阵中性质最好的。

所有相似矩阵有共同的特征值。特征向量是不同的

但是当特征值相等时,特征向量可能就不再是线性无关了,矩阵无法对角化。这种情况下对角阵的相似矩阵就是自己。其他的都是非对角阵,其中一个最简洁的是:若尔当(jordan)标准形(注意在当代,若尔当标准型的使用变少了,因为有更好的方法,但是得基本了解),比如A=[4,0   1,4]

这些矩阵间的特征向量数量相等,如果进行分块,则命名为若尔当块J。每一个若尔当块对应一个特征向量。形态是对角线由λ,上半三角有1有0,下半三角全0的形式。

J每一个都是可以对角化的块,就是对角矩阵

奇异值分解(SVD分解,至今科学工程界最好和最终的分解之一,差不多算线代最重要的部分了,当然当代科学家和工程师们结合幂级数展开/更好的基变换,有了更多更好的处理方法,那都是后话了。)A=UΣV'

通常对正定矩阵的分解:A=QΛQ'  A=SΛS*

因为一般情况下,特征向量矩阵不是正交矩阵,所以需要使用SVD分解

我们在行空间中找一个典型向量v1,然后变换到列空间中的某向量,记为u1,所以u1=Av1,我们需要找到的是列空间的一组正交基,变换到行空间的一组正交基。

当A作用到这组基向量上,这边就得到一组正交向量。

这里通过Gram schmidt法找到A的一组基,也需要考虑到零空间,困难在于找到基向量。

Av1相当于u1的一个倍数,这个倍数不再叫做λ,一般用σ表示:伸缩因子,等于λ开根。

类似的,进行变换,求解AV=UΣ, Σ是由σ构成的对角单位矩阵。

我们需要寻找行空间的一组标准正交基,对称正定矩阵只是其中特例:AQ=QΣ,此时U和V都等于Q

如果有零空间,那这里就有了零空间的基vr+1到vm,把这组完善成整个Rm空间的标准正交基。

A=UΣV'=UΣV*,想办法消掉U变成A'A=VΣ'U'UΣV‘’,U'U被消,变为A'A=VΣ'ΣV,其中Σ'Σ为对角矩阵,结果直接变为了特征值和特征向量形式:QΛQ' ,A并不特别,但是A'A很特别,因为它是对称正定矩阵。

V是A'A的特征向量,U是AA'的特征向量,这是不同的。

反过来同样可以用AA'来消掉V,记得要做标准化,知道模长,并除去(列向量各个分量平方和)

但是A'A和AA'特征值相等。

针对奇异矩阵,奇异矩阵秩为1,行空间列空间都是1维,有零空间,如果r=1,则其中一个特征值为0,求出另一个特征值并开根,最后UΣV'这个矩阵中间的对角元素不够,因为奇异。

u1,u2....ur::正交基 行空间

v1,v2....vr:正交基 列空间

vr+1....vn:正交基 零空间

ur+1....um:正交基 左零空间

Avi=σui

(十二)线性变换,对应矩阵,基变换与图像转换压缩等

这部分直接涉及机器视觉基本操作

线性变换:另一个线性代数的起点

每一个线性变换都对应一个矩阵

判断线性变换的2个条件:

1.加法 2.数乘

零向量通过线性变换一定等于0,但比如计算向量长度,不是线性变换(涉及平方),零向量运算结果不再是0

机器人状态估计中的旋转就是一个标准的线性变换。

理解线性变换的核心在于确定背后的矩阵,只要确定矩阵对于基向量的影响,就理解了整体

这里的T代表变换矩阵,因为v是基向量的线性组合cv1+....cnvn

基最终生成整个空间,矩阵源于坐标系,坐标的存在决定了基的确立,一旦选定了一组基,坐标也随之确定,线性组合中的系数就是坐标值。这些数字表示v由多少个基向量组成。

T: Rn-->Rm,输入空间的一组基来描述输入变量,输出的一组基用来确定输出向量的坐标,共需要两组基: v1,v2...vn  w1,w2....wm

选择一个向量v,通过基把它表示出来,于是得到它的坐标。然后把这些坐标值乘以某个矩阵A,得到输出向量的坐标值,通过输出空间的基表示。随便选一组标准基也能出结果,但是明显不如用特征向量。

比如第一列:T(v1)=a11w1+a21w2....am1wm  这里a是系数,然后类推。

求导也是标准的线性变换。输入是一些幂函数,输出是导数

从三维空间到二维空间,目标是求导

矩阵的逆相当于线性变换的逆。

基变换:比如信号压缩,图像变换,图像压缩本质就是基变换。

如512x512图像,一共512²像素,其中假设YUV表示,每个像素0-255,即2的8次方

一个图像就是一个向量,彩色图像3倍,RGB。但是我们得到的大量像素和其相邻像素是相似的

选定一个基相当于8维,我们一般给一个全1向量,这种向量能解决很多问题

归根结底是线性代数的问题,基的选择问题。

可以将512x512分解为8x8=64的块,然后再64维空间中,用傅里叶向量做基变换,输入64个像素得到64个系数(无损压缩),再设定一个阈值丢弃不想要的值确定压缩程度。

全1的信号系数较大,交替的信号系数较小,可能会被丢弃,阈值决定。系数小的交替信号更有可能是噪声或抖动。视频是连续画面,每一帧间很接近,还需要使用预估和修正。

常用的基:傅里叶基,wavelet

关于线性代数的核心问题是,找出系数:c1乘第1个基加到c8乘第8个基。

求解P=Wc, c=W*P

很好的基就能快速求逆:

首先计算要快,因为涉及到逆,比如FFT,FWT

比如傅里叶基,有快速傅里叶变换可以做,降低了复杂度

一些好的性质:二进制计算非常快,小波基正交,基向量正交操作会变得简单很多。

列向量标准正交,则逆等于转置。

其次少量基向量就能接近信号

这个T是变换本身,A和B是相似矩阵,做他们之间的变换,如果我们知道了作用在那8个基向量上的变换是什么,那我们就知道了关于T的一切。因为每一个x都是这些基向量的组合。

其中最好的是特征向量基(完美基),但是因为开销太高,一般不用。

(十三)左右逆与伪逆

针对秩为r的mxn矩阵, m<n

首先要熟悉4个子空间图

AA*=I=A*A,两边都满足的逆是我们通常意义上的逆

列满秩有左逆,列向量线性无关,r=n,零空间只有零向量,Ax=b只有0解或1个解

对于A来说:(A'A)*A':这个是左逆,(A'A)*A'A=I,这是最小二乘中非常重要的情况

一个长方形矩阵没有两边都成立的逆

行满秩有右逆,行向量线性无关,r=m,左零空间只有零向量,但这个情况Ax=b有无穷多个解,有n个主元,n-m个自由变量

对应的:A'(AA')*=I,这个是右逆。

A乘左逆是投影矩阵,投影到列空间。A右逆乘A也是投影矩阵,投影到行空间

伪逆:Ax是列向量的一个组合,我们可以取行空间中所有向量。

我们认为在行空间中的一个向量x,和列空间中向量Ax的关系是一一对应的。因为都是r维空间

变换将零空间的分量消除,如果向量x和y在行空间中 那么Ax和Ay不会相等

但是Ax和Ay都在列空间中,前提是x不等于y

列空间任意向量到行空间某向量的映射,将其相反方向上的映射,称为伪逆。

伪逆将左零空间:A'的零空间中的m-r部分变没了,结果是0

矩阵本身又消除了零空间的结果。只有零向量可以同时属于零空间和行空间

矩阵A是一个很好的,可逆的映射,从行空间映射到列空间,如果没有零空间的干扰,逆就成立。

如果用最小二乘,伪逆就变得非常重要

如果列不满秩,就有列向量线性相关,此时ATA矩阵奇异

如何找出伪逆:首先从SVD分解开始,mxn矩阵:UΣV',对角阵的伪逆是nxm矩阵,这时ΣΣ+中的σ,变成了1/σ。 其他范式不变。

按照这个方式,每一个矩阵都有伪逆。

SVD的奇妙之处在于,把所有的问题归于对角阵。

伪逆就像是最小的矩阵,得到最好的矩阵ΣΣ+,得到r个1。

找出能快速求解伪逆的因子,就能快速的解决我们的工程问题。

      一气呵成写完。。。不知不觉发现已经1万多字。。。感谢杰出的Gilbert Strang老师,祝您身体健康长青,科研与工程路漫且长,但也经营中重要的一个部分。