矩阵QR分解
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分解的更多相关文章
- 机器学习中的矩阵方法03:QR 分解
1. QR 分解的形式 QR 分解是把矩阵分解成一个正交矩阵与一个上三角矩阵的积.QR 分解经常用来解线性最小二乘法问题.QR 分解也是特定特征值算法即QR算法的基础.用图可以将分解形象地表示成: 其 ...
- 矩阵的QR分解
#include <cstdio> #include <cstdlib> #include <algorithm> #include <cmath> # ...
- QR分解
从矩阵分解的角度来看,LU和Cholesky分解目标在于将矩阵转化为三角矩阵的乘积,所以在LAPACK种对应的名称是trf(Triangular Factorization).QR分解的目的在 ...
- QR分解与最小二乘
主要内容: 1.QR分解定义 2.QR分解求法 3.QR分解与最小二乘 4.Matlab实现 一.QR分解 R分解法是三种将矩阵分解的方式之一.这种方式,把矩阵分解成一个正交矩阵与一个上三角矩阵的 ...
- QR分解与最小二乘(转载自AndyJee)
转载网址:http://www.cnblogs.com/AndyJee/p/3846455.html 主要内容: 1.QR分解定义 2.QR分解求法 3.QR分解与最小二乘 4.Matlab实现 一. ...
- QR 分解
将学习到什么 介绍了平面旋转矩阵,Householder 矩阵和 QR 分解以入相关性质. 预备知识 平面旋转与 Householder 矩阵是特殊的酉矩阵,它们在建立某些基本的矩阵分解过程中起着 ...
- QR分解迭代求特征值——原生python实现(不使用numpy)
QR分解: 有很多方法可以进行QR迭代,本文使用的是Schmidt正交化方法 具体证明请参考链接 https://wenku.baidu.com/view/c2e34678168884868762d6 ...
- 矩阵LU分解的MATLAB与C++实现
一:矩阵LU分解 矩阵的LU分解目的是将一个非奇异矩阵\(A\)分解成\(A=LU\)的形式,其中\(L\)是一个主对角线为\(1\)的下三角矩阵:\(U\)是一个上三角矩阵. 比如\(A= \beg ...
- 【矩阵】RQ/QR 分解
Multiple View Geometry in Computer Vision A.4.1.1 (page 579) 将一个 3x3 矩阵 $ A $ 进行 RQ 分解是将其分解成为一个上三角阵 ...
随机推荐
- spring boot -- 配置文件application.properties 换成 application.yml
1.前言 其实两种配置文件在spring boot 的作用一样,只是写法不同 ,yml 可以写的内容更少 ,以树结构 书写内容,看起来很清晰, 但是 如果 项目配置文件设置为 既有properties ...
- Java读写XML代码示例
采用技术:dom4j 需要jar包:dom4j-1.6.1.jar 主类如下---- public class dom4jTestXML { /** * * 方法描述:读取XML文件示例 备 注 ...
- 编写java程序压缩Linux本地目录
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6809285459722633736/ 创建工程 使用maven工程 勾选,然后下一步 填写基本信息 注意改一下编码 ...
- C# 10分钟完成百度翻译(机器翻译)——入门篇
我们之前基于百度ai开发平台实现了人脸识别 [1].文字识别 [2].语音识别 [3] 与合成的入门和进阶,今天我们来实现百度翻译的实现. 随着"一带一路"政策的开展,各种项目迎接 ...
- Chrome插件:提醒你正在摸鱼,摸鱼的时候知道自己在摸鱼,减少摸鱼的时间和频率。
stop-mess-around 项目介绍 减少摸鱼的时间和频率的Chrome插件:在上班/学习期间很容易下意识的打开摸鱼网站,插件帮助我们减少摸鱼的时间和频率,提高我们上班和学习的效率,节省时间用于 ...
- 基础概念(2):怎么用cc来编译?
怎么用cc来编译? 总结卡片: cc的使用可以很简单,指定要转换的程序文件就可以了,比如:cc hello.c. 按cc的规则(我这里是clang-llvm),程序文件以.c或.cpp为后缀. cc有 ...
- Docker安装配置mysql
Docker安装mysql踩坑日记 拉取镜像 sudo docker pull mysql:5.7 运行镜像 docker run -p 3306:3306 --name mysql -v /myda ...
- 实习之bii--关于虚拟机桥接无线网卡
安装完VMware workstation之后,网络连接里会多出两个虚拟网卡: VMware Network Adapter VMnet1和VMware Network Adapter VMnet8. ...
- TeXstudio在右边显示预览
打开预览界面后: 点击查看(View) 选择最后一个:窗口/内嵌(Windowed/Embedded) 就可以了
- 【自写信息搜集工具】ThunderSearch开发原理解析
前段时间结合zoomeye的开发文档做了个简易的信息搜集工具ThunderSearch[项目地址 / 博客地址],这次来讲讲具体的实现原理和开发思路 首先要能看懂开发文档,https://www.zo ...