线性代数笔记19——格拉姆-施密特正交化

标准正交矩阵

标准正交向量

  有一堆向量,q1,q2……qn,它们两两正交,这意味着这些向量满足:

  一个向量没法和自己正交,在i = j时,让qiTqi = 1,这相当于qi模长等于1:

  向量的转置乘以自身等于1,意味着这个向量是单位向量,所以我们称这堆向量q1,q2……qn是标准正交向量。

标准正交矩阵

  现在把这些标准正交向量放入矩阵中:

  QTQ最终得到了一个单位矩阵,但Q本身未必是方阵。Q的列是标准正交的,Q因此被称为标准正交矩阵;当Q是方阵时,简称为正交矩阵,此时说明Q和QT互为逆矩阵:

  下面的Q就是一个正交矩阵:

  可以将Q的三个列看作直角坐标系的三个轴,它们两两垂直。

  再举个例子:

  一个方阵的列是正交的并不意味着方阵是正交矩阵,比如下面这个:

  虽然这个矩阵不是正交矩阵,QTQ的结果却与单位矩阵神似,我们可以对Q做点处理让它变成正交矩阵。当Q是正交矩阵时,Q的每一个列的模长都应该是1,因此可以这样处理:

  这样就变成正交矩阵了。类似的还有下面这个:

正交矩阵与投影矩阵

  如果Q是标准正交矩阵,那么Q在列空间上的投影矩阵将得到简化:

  更进一步,如果Q是方阵:

  如果对QQT再次投影(这里并未强调Q是方阵):

  其中:

  在求解Ax = b时,如果A是标准正交矩阵,它的好处就是不需要计算逆矩阵:

  这也意味着x帽的一个分量等于QT一行(或Q的一列的转置)与b的点积:

  这也是很重要的一个式子:如果已知标准正交基,在第i个基方向上的投影就等于qiTb

格拉姆-施密特正交化

  既然正交化这么好,有没有什么方法能使矩阵标准正交化呢?当然有,这就是格拉姆-施密特(Gram-Schmidt)正交化。

  假设有两个线性无关的向量a和b,现在标准正交化这两个向量,让它们变成q1和q2。首先保持a不变让向量A = a,接下来要寻找到另一个向量B,使得A⊥B。p是b在a上的投影,B就相当于b的误差向量:

  根据上一章的知识,p相当于a放缩了x倍,在一维空间内,x是一个标量:

  这相当于B是b减去b在a上的投影,B是b和A的线性组合。

  最后将A变成指向A方向的单位向量,B变成指向B方向的单位向量:

  这就是格拉姆-施密特正交化方法。

  如果还有一个向量c,由c到q3的转换:

  代入几个数值看看:

  验证:

  这个标准正交矩阵Q是通过下面的原始矩阵得到的:

  A的列空间和B的列空间相同,能够张成一个二维空间的平面。a和b是A的列空间的一组基,但这组基“不够好”,我们还想进一步让这组基的向量两两正交,并且都是单位向量,这就得到了q1和q2

格拉姆-施密特表达

  如同A = LU一样,A可以分解成一个正交矩阵和一个上三角矩阵的乘积,A = QR,这里A是原始矩阵,各列线性无关,Q是标准正交矩阵,R是上三角矩阵。

  假设原始矩阵A有三个列向量:

  按照格拉姆-施密特正交化方法转换后,得到q1,q2,q3

  q和a本身也是列向量,得出结果并不那么直观,可以展开表达:

  由于q1Tq2 = 0,q1只是a1的单位化,所以a1T与q2也正交,a1Tq2 = 0;同理,a1Tq3 = 0。q2是a2和q1的线性组合,转置后,q2T是a2T和q1T的线性组合,这相当于:

  如果t1 = 0,相当于q1和q2是线性相关的,这就不符合标准正交向量的前提,所以一定有t1 ≠ 0:

  a2Tq2和a3Tq3不为0,如果是0,就没必要正交化了。q3是a3和q1、q2的线性组合,转置后,q3T是a3T和q1T、q2T的线性组合,这相当于:

示例

  求矩阵A的QR分解。

  


   作者:我是8位的

  出处:http://www.cnblogs.com/bigmonkey

  本文以学习、研究和分享为主,如需转载,请联系本人,标明作者和出处,非商业用途! 

  扫描二维码关注公众号“我是8位的”

posted on 2018-11-20 13:58  我是8位的  阅读(21225)  评论(0编辑  收藏  举报

导航