病态矩阵
测量是人类对居住的这个世界获取空间认识的一种手段,也是认识世界的一种活动。因此,在参与测量活动中,自然会遇到认识活动中的三种情况:a.很容易就发现了不同之处而将甲乙两事物区分开来;b.很容易就发现了相同之处而将甲乙两事物归于一类;c.难于将甲乙两事物区分开来,从而造成认识上的混淆,产生错误的结果。前两者比较易于处理,后者处理起来比较困难。例如,在实地上测量一个点的位置时,至少需要两个要素:或者两个角度,或者两条边长,或者一个角度和一条边长。把已知点视为观察点,将待定点视为目标点,从一个观察点出发,对于目标点形成一个视野。当仅从一个视野或者从两个很接近的视野观察目标时,所获得的关于目标的知识是极其不可靠的,且极为有限的。要获得可靠的知识,必须从至少两个明显不同的视野进行观察。同时,目标点与观察点之间则构成了一个认识系统。这个系统用数学语言表示出来,反应为矩阵。
但是,有时候在现实中的作业条件不允许我们有足够多的观察点供选择,使我们处于不利的位置,或者只能从很短的基线来观测很远的目标。此时,得到的认识系统则不够坚强,亦即该矩阵不能够将观测数据映射为可靠的结果。我们称此类矩阵为病态的。从几何意义上来说,相当于用于交会定点的直线之间的夹角太小。从向量线性关系的角度来看,相当于用于交会定点的向量之间接近于线性相关。这就是矩阵病态的本质。
另一方面,大家知道,任何观测数据都包含有误差,那是因为观测设备的分辨率与制造误差、观测者、观测环境等因素造成的。因此,这些误差也要通过矩阵来影响我们希望获得的结果。由于浮点数所引入的微小的量化误差,也会导致求逆结果的非常大误差。
当系统反应为病态矩阵时,微小的误差对结果将产生较大的影响。另一方面,当系统反应为良态矩阵时,同样大小的误差对结果产生的影响却比病态矩阵小很多。这表明,认识系统的特性是决定认识结果的可靠性的根本因素。
因此,要解决矩阵病态的问题,必须从改善认识系统的结构方面入手。从这个思路出发,可以先将认识系统中的相互间夹角较小的向量找出来,然后以其中一个向量为对称轴,旋转其余向量到某个合适的位置,得到一个良态的认识系统,再行求解。这样做的优点在于不涉及求点的具体位置。
例如,最小二乘法所产生的病态矩阵问题主要是由于矩阵求逆所造成的,我们使用QR分解方法来解决。
QR分解
矩阵分解是指将一个矩阵表示为结构简单或具有特殊性质的若干矩阵之积或之和,大体可以分为满秩分解、QR分解和奇异值分解。矩阵分解在矩阵分析中占有很重要的地位,常用来解决各种复杂的问题。而QR分解是工程应用中最为广泛的一类矩阵分解。
QR分解也称为正交三角分解,矩阵QR分解是一种特殊的三角分解,在解决矩阵特征值的计算、最小二乘法等问题中起到重要作用。
QR分解定理:任意一个满秩矩阵A,都可以唯一的分解为A=QR,其中Q为正交矩阵,R为正对角元上的三角矩阵。
标准正交基:
向量
是标准正交的,如果它们满足如下条件
如果一个矩阵的列是标准正交的,我们称之为Q,很容易可以得到
当Q是方阵的时候,我们可以得到
,也即转置等于逆
投影矩阵:以二维空间为例
向量p是b在a上的投影,也称为b在a上的分量,可以用b乘以a方向的单位向量来计算,现在,我们打算尝试用更贴近线性代数的方式表达。
因为p在a上,所以p实际上是a的一个子空间,可以将它看做a缩放x倍,因此向量p可以用p=xa来表示,只要找出x即可,因为,所以二者的点积为0:
和
都是点积运算,最后将得到一个标量数字:
b在a上的投影p,表明当b缩放时,p也缩放相同的倍数,当a缩放时,p保持不变。
由于向量点积
是一个数字,p可以进一步写成:
在二维空间中,分子是一个2×2矩阵,这说明向量b在a上的投影p是一个矩阵作用在b上得到的,这个矩阵就称为投影矩阵,用大写的P表达:
扩展到n维空间,a是n维向量,投影矩阵就是n×n的方阵,观察投影矩阵发现,它是由一个列向量乘以一个行向量得到的:
可以看出
的列向量是线性相关的,所以它的列空间和行空间的维度都是1,表明它的秩为1,
是一个秩为1的矩阵,并且是一个对称矩阵,由于
是一个标量,所以
决定了投影矩阵的性质:
投影矩阵还有另外一个性质:
它的几何意义是,对一个向量投影两次和投影一次相同,b在a上的投影是p,再投影一次仍是p。
投影的意义:
从方程Ax=b说起,对于ax=b来说,并不是任何时候都有解,实际上大多数这种类型的方程都无解。A的列空间的含义是方程组有解时b的取值空间,当b不在A的列空间时,方程无解。
虽然方程无解,但我们还是希望能够运算下去,这就需要换个思路,不追求可解,转而寻找最接近可解问题的解。对于无解方程Ax=b,Ax总是在列空间里(因为列空间是由Ax确定的,和b无关),而b就不一定了,所以需要微调b,将b变成列空间中最接近它的一个,Ax=b变成了:。
P就是A的列空间的投影,b-p产生最小的误差向量:
求解不等式方程Ax=b,需要将b微调成它在A的列空间上的投影(列空间上的向量很多,b在列空间上的投影是唯一的),这就是投影的意义。
推广到多维投影矩阵使用如下公式表示:
Gram-Schmidt正交化和A的QR分解:
假设有三个不相关的向量a,b,c,如果能够构造出正交的三个向量A,B,C,那么再除以它们的长度就得到了标准正交向量。
首先,选取A=a,那么B必须垂直于A。我们用b减去其在A的投影,就得到了垂直于A的部分,这也就是要找的B。
接着再用c减去其在A和B的投影,就得到要找的C
如果有更多的向量,就用新的向量减去它在已经设定好的所有向量上的投影即可,最后,再除以它们各自的长度就得到了标准正交向量。
标准正交向量
A垂直于B证明:
此处的||A||表示向量的模
A=QR,R是上三角阵,Q是单位正交阵
已知
由上述可知
,所以
,即左下角元素为零
最小二乘法的正规方程由QR分解的结果来重新生成参数计算公式:
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/166842.html原文链接:https://javaforall.cn