浅谈矩阵分解以及应用(1)

来源:互联网 发布:mac pc 区别 编辑:程序博客网 时间:2024/05/02 00:07

矩阵分解 (matrix decomposition, factorization)是将矩阵拆解为数个矩阵的乘积,可分为三角分解、满秩分解、Jordan分解和SVD(奇异值)分解等,常见的有三种:1)三角分解法 (Triangular Factorization),2)QR 分解法 (QR Factorization),3)奇异值分解法 (Singular Value Decompostion)-------摘自‘百度百科’;

至于为什么矩阵分解,理论上说是为了简化计算,或者是为了深化理论。举几个例子:计算一个矩阵的高次幂,利用矩阵分解就可以实现快速甚至手算出结果。此外,求解线性方程组,数据拟合,矩阵求逆等等,很多数学问题需要矩阵分解。当然,应用到实际学术生活中,最常见的数据压缩与解耦合,特别是PCA降维,KL变换,一系列学术的东东都来源于此。此外,卫星获得高分辨率遥感图像在回传到地面的时候,需要用到图像压缩与解压缩技术,这个就需要矩阵分解。

说了不少闲话,开始正题。记得一位数学老师说过,谈数学问题先说明是在什么数域。这里,咱们只谈实数域,不扩展到复数域了。

先说说三角分解吧,学习《数值分析》课的同学都对LU三角分解记忆深刻,其实LU分解是三角分解的一种,这里从LU分解开始。LU分解,L代表单位下三角矩阵(对角线元素为1),U代表上三角矩阵。数值分析课由高斯消元法求解线性方程组引出了LU分解,这个当然是LU分解的一种应用。LU分解的具体计算步骤可以参考任何一本数值分析的课本,上面一定有详细的计算过程。LU分解适用于顺序主子式不为0的矩阵,当然必须是方阵。

LU分解的用途很多,上面已经提过求解线性方程组,当然还可以引申出高斯约当消去法来求解矩阵的逆,实际上matlab就是利用这个原理来求解大部分矩阵的逆的。

第二种三角分解是QR分解,也叫正交三角分解(这个是我自己个人认为的)。因为Q是正交阵,R为上三角矩阵。QR分解的具体实现过程是这样的,取待分解矩阵A的线性无关的列向量,利用Gram-Schmidt正交化方法加标准化获得新的正交阵Q。然后再计算R阵,R阵的计算稍微复杂,主对角元素是前面Gram-Schmidt正交化方法获得列向量的模值,其他上三角元素是行位置的Q的对应列向量与列位置的A的对应线性无关列的内积。表述比较麻烦,感兴趣的可以自己参考《矩阵理论》课本。

QR分解要求矩阵只要是列满秩的就行。

QR分解用途很多,大家对于“最小二乘法”应该很熟悉了,其实“最小二乘法”的解就是QR分解得到的解。最小二乘法广泛应用于数据拟合当中,特别是搞实验物理,化学,生物的,获得一大组数据,如果想要得到近似线性的关系时候就需要对这些数据进行线性拟合。我们刚开始学习数理统计时,我们说为了求解一条方差最小的直线。实际上,从矩阵理论上讲,是为了获得在矩阵A的列空间(range domain)上最佳近似。其次,在数值分析中,我们都学过计算矩阵特征值的方法----QR算法,它是QR三角分解的变形,采用迭代的方式求解出矩阵的所有特征值。目前计算机计算中小型矩阵的特征值一般都是采用这个原理来的。毕竟,我们人工手算的话计算4阶矩阵的特征值就不错了,实际上1825年阿贝尔等人就证明了5次及以上代数方程无公式解。

此外,QR方法还可以求解矩阵的广义逆,用途还是蛮广的。

未完待续……


原创粉丝点击