1 orthonormal 向量与 Orthogonal 矩阵

orthonormal 向量定义为 ,任意向量  相互垂直,且模长为1;

如果将  orthonormal 向量按列组织成矩阵,矩阵为 Orthogonal 矩阵,满足如下性质:

为方阵时,为其逆矩阵;当  为长方形矩阵时,为其左逆;

当矩阵 Q 为正交矩阵时,对向量变换变换前后点积不发生改变,,证明如下:

,当 x = y 时,有 

对任意向量 b ,可以分解为一组正交向量的线性组合,,要求解系数x,可先写成矩阵形式:

因此,向量 b 可分解为 

2 Gram-Schmidt 与 QR 分解

对矩阵 ,可以将其转换为正交矩阵 ,方法如下:

1)向量  方向保持不变,将其长度归一化, 

2)向量  可分解为向量  投影分量与垂直于向量   的两分量,剔除投影分量得

3)同理,剔除向量  在  ,  上投影分量得 

4)依照如上方法,可以对所有向量完成正交化。

以上处理可以使用矩阵表示,矩阵 Q 为矩阵 A 的列进行线性变换结果,故可写为 A=QR 。

1)向量   与向量 具有相同方向,故可表示为 

2)向量  被分解为  方向向量,可表示为

3)向量  被分解为  方向向量,可表示为 

4)综上表示为矩阵形式 

3 求解 Ax=b

使用 Gram-Schmidt 可将矩阵 A 转换为正交矩阵 Q,正交矩阵 Q 可简化 Ax=b 运算:

1)最小二乘法求解

2)带入  得 ,化简得 

3)不管长方形矩阵还是方阵,都有 ,故上式可化简为 

4)由于 R 为上三角矩阵,使用回代法即可求解。

4 函数空间

向量 QR 分解可以推广到函数,向量内积表示各分量乘积之和,对于连续函数可表示为 

函数长度可表示为 ,使用函数内积与函数长度定义,可以对函数按向量投影方法进行类似分解。

1)最小二乘法求解近似函数

给定函数 ,求解在区间 上的二阶近似函数 

a. 令 ,表示在区间  上,对于任意  都有 

b. 使用最小二乘法得

c. 转换为积分得 ,可求解 k, b 。

2)Legendre polynomials

以上方程   使用高斯消元法求解,但随着多项式次数增加,消元法会产生很大的截断误差。

使用 Gram-Schmidt 方法,将各个多项式基转换为正交函数,可以简化运算。

设原始多项式基为 ,可做如下变换:

a. 保持第一个函数方向不变,对长度进行归一化处理,

b. 函数 x 与函数 1 在区间  上正交,故仅需对长度归一化,

c. 函数  与函数 x 和 1 在区间   上均不正交,减去投影分量使其正交,

带入求解得 

d. 使用同样方式求得 

通过以上函数基,任意多项式可以改写为以上函数基的线性组合。当仅使用几个低阶函数基表示时,类似线性代数投影近似。

对给定函数 ,求解在区间 上的二阶近似函数  使用多项式函数基求解如下:

函数  在  上投影为:

整理得 

3)傅里叶级数

函数的傅里叶级数使用三角函数为基线性展开,三角函数是互相正交的,当进一步对其归一化后构成一组函数基。任意函数被三角函数分解为:

,对应系数为函数与归一化三角函数内积

参考资料 Linear Algebra And Its Applications   Gilbert Strang

Gram-Schmidt for functions: Legendre polynomials  S. G. Johnson, MIT course 18.06

矩阵QR分解的更多相关文章

  1. 机器学习中的矩阵方法03:QR 分解

    1. QR 分解的形式 QR 分解是把矩阵分解成一个正交矩阵与一个上三角矩阵的积.QR 分解经常用来解线性最小二乘法问题.QR 分解也是特定特征值算法即QR算法的基础.用图可以将分解形象地表示成: 其 ...

  2. 矩阵的QR分解

    #include <cstdio> #include <cstdlib> #include <algorithm> #include <cmath> # ...

  3. QR分解

        从矩阵分解的角度来看,LU和Cholesky分解目标在于将矩阵转化为三角矩阵的乘积,所以在LAPACK种对应的名称是trf(Triangular Factorization).QR分解的目的在 ...

  4. QR分解与最小二乘

    主要内容: 1.QR分解定义 2.QR分解求法 3.QR分解与最小二乘 4.Matlab实现   一.QR分解 R分解法是三种将矩阵分解的方式之一.这种方式,把矩阵分解成一个正交矩阵与一个上三角矩阵的 ...

  5. QR分解与最小二乘(转载自AndyJee)

    转载网址:http://www.cnblogs.com/AndyJee/p/3846455.html 主要内容: 1.QR分解定义 2.QR分解求法 3.QR分解与最小二乘 4.Matlab实现 一. ...

  6. QR 分解

    将学习到什么 介绍了平面旋转矩阵,Householder 矩阵和 QR 分解以入相关性质.   预备知识 平面旋转与 Householder 矩阵是特殊的酉矩阵,它们在建立某些基本的矩阵分解过程中起着 ...

  7. QR分解迭代求特征值——原生python实现(不使用numpy)

    QR分解: 有很多方法可以进行QR迭代,本文使用的是Schmidt正交化方法 具体证明请参考链接 https://wenku.baidu.com/view/c2e34678168884868762d6 ...

  8. 矩阵LU分解的MATLAB与C++实现

    一:矩阵LU分解 矩阵的LU分解目的是将一个非奇异矩阵\(A\)分解成\(A=LU\)的形式,其中\(L\)是一个主对角线为\(1\)的下三角矩阵:\(U\)是一个上三角矩阵. 比如\(A= \beg ...

  9. 【矩阵】RQ/QR 分解

    Multiple View Geometry in Computer Vision A.4.1.1 (page 579) 将一个 3x3 矩阵 $ A $ 进行 RQ 分解是将其分解成为一个上三角阵 ...

随机推荐

  1. minio实现文件上传下载和删除功能

    https://blog.csdn.net/tc979907461/article/details/106673570?utm_medium=distribute.pc_relevant_t0.non ...

  2. Scrapy的Item_loader机制详解

    一.ItemLoader与Item的区别 ItemLoader是负责数据的收集.处理.填充,item仅仅是承载了数据本身 数据的收集.处理.填充归功于item loader中两个重要组件: 输入处理i ...

  3. LINUX学习-Mysql集群-一主多从

    新建一台服务器 192.168.88.40 yum -y install mysql mysql-server 编辑etc下的配置文件 vim /etc/my.cnf 输入 bin-log=mysql ...

  4. hyperf 如何对AMQP消息进行手动消费?

    转发自白狼栈:查看原文 在使用 hyperf 官方自带的 AMQP 队列时你会发现,不需要我们再额外启动进程对消息进行消费.这是因为默认情况下,使用 @Consumer 注解时,hyperf 会为我们 ...

  5. 信息收集&Fuzz

    本文译自https://0xjoyghosh.medium.com/information-gathering-scanning-for-sensitive-information-reloaded- ...

  6. [javaweb]strut2-001漏洞分析

    Strut2-001 漏洞描述 框架解析JSP页面标签时会对用户输入的Value值获取,在获取对应的Value值中递归解析%{.}造成了二次解析,最终触发表达式注入漏洞,执行任意代码 影响版本 2.0 ...

  7. 【记录一个问题】铁威马NAS存储,当使用time machine备份的时候,如果再使用手机备份,会导致time machine备份中断

    如题 傻机器,无法做到并行备份!

  8. 【视频解码性能对比】opencv + cuvid + gpu vs. ffmpeg + cpu

    视频大小:1168856 字节画面尺寸:480*848帧数:275opencv + cuvid + tesla P4, 解码性能:1426.84 fps ffmpeg 4.0 API + [Intel ...

  9. ArrayList实现类

    特点 数组结构实现,查询快,增删慢 运行效率高,线程不安全 可重复 常用方法 Modifier and Type Method and Description boolean add(E e) 将指定 ...

  10. Java 实现订单未支付超时自动取消

    在电商上购买商品后,如果在下单而又没有支付的情况下,一般提示30分钟完成支付,否则订单自动.比如在京东下单为完成支付: 超过24小时,就会自动取消订单,下面使用 Java 定时器实现超时取消订单功能. ...