基于一道例题进行QR分解三种方法的讲解:CGS算法,MGS算法,以及Householder算法的QR分解
参考书籍和图片来源:《矩阵分析与计算》李继根 张新发编著 第三章QR分解部分
QR分解的3种方法:
方法一:经典的Gram-Schmidt(CGS)算法(就是基于施密特正交化)
方法二:对CGS算法进行改进后的MGS(Modified Gram-Schmidt)算法(就是对施密特正交化算法进行了一点优化)
方法三:利用Householder变换法求QR分解
先复习一下施密特正交化:
公式如上,我稍微用言语解释一下,不懂的话参考其他资料,很简单的。
β 是一个正交的基,α 是在这个基张成的空间里的j个不相关的向量,施密特正交化的作用就是将j个α 变换为j个β 这个正交基。变换方法主要是向量分解,将α 分解为β 这个基下的n个分量,然后减去分量只留下一个方向的分量。
可以参考知乎文章怎么巧记施密特正交公式?如图。? - 知乎
好了我们知道施密特正交化后,我们直接来个一题三解,题目如下
我们先写方法一和方法二,因为它俩本质上都是施密特正交化,方法二只是在方法一的基础上的改良!
你仔细看一下步骤,就会发现,方法一和方法二的区别就在我在图片中圈出来的地方步骤的区别。
方法一(CGS算法)在求β 时,会不断迭代,不断减去和它正交的方向的分量,就像图中的第一个方框,β3需要减去β1和β2方向上的分量,那么是不是意味着随着向量的增多β 需要减去的分量会越来越多!所以CGS迭代算法在数值上是不稳定的!
而方法二(MGS算法)的想法是每当产生一个新的正交向量β 后,就重新计算后续所有向量α ,消去其中包含已产生的β 成分,从而使这些改变后的后续向量都与以及计算出来的β 正交。
你看图中的后面两个框,在求β2去掉β1方向上的分量的时候,是不是就把β3 在β1 上面的分量部分减掉了,所以后面求β3 的时候就只需要减去β2 方向上的分量就行了,这样就不会产生减法的累计,避免了数值上的不稳定!
也许你会说这根本不是QR分解好吧,其实我们将上面的运算写出来后,QR分解答案也就出来了。 A=QR,上面求出来的正交单位矩阵就是Q矩阵,我们又知道A矩阵,所以R= A,R求出来后QR分解不就出来了嘛。
下面介绍解法3,基于Householder变化的QR分解(我之前的笔记有讲Householder变换,忘记了可以去看看):
第一步:
用方程表示就是
至于H1的求法,就是把α1 这个向量投影到A这个空间对应的X轴上的Householder变换(不理解可以看后面的实例再回来理解一下这句话)
第二步:
就是对第一步求出来的 中的A1进行同样的操作,把A1的第一列投影到A1空间对应的X轴上(说白了就是要让Householder变换让A1的第一列只有第一个元素!!!),求得的Householder矩阵是为H2。用公式表示就是
步骤说完了:我们直接来做题!做题才能更好的理解步骤!
答:
这里插入一个例题:(我之前介绍Householder矩阵时用过)如下图:
看见这个例题你能想到什么?
题干中的 不就对应上面例题里反射前的的X向量, 不就对应着上面例题里反射后的Y向量嘛,那是不是意味着可以直接用这个公式
求解H1了?!
所以利用公式求得H1为
基于一道例题进行QR分解三种方法的讲解:CGS算法,MGS算法,以及Householder算法的QR分解相关推荐
- 利用队列解密QQ号码(三种方法)-->改编自《啊哈!算法》
[问题描述] 新学期开始了,小哈是小哼的新同桌.小哼向小哈询问 QQ号,小哈当然不会直接告诉小哼啦,原因嘛你懂的.所以小哈给了小哼一串加密过的数字,同时小哈也告诉了小哼解密规则.规则是这样的:首先将第 ...
- android启动其他app的服务器,Android中通过外部程序启动App的三种方法
这篇文章主要介绍了Android中通过外部程序启动App的三种方法, 本文讲解了直接通过包名. 通过自定义的Action. 通过Scheme三种方法,并分别给出操作代码,需要的朋友可以参考下 ==== ...
- MySQL(一):分别基于mysqldump、lvm2、xtrabackup三种方式实现备份恢复
分别基于mysqldump.lvm2.xtrabackup三种方式实现MySQL备份恢复 一.利用mysqldump实施逻辑备份操作 1.在/etc/my.cnf中添加如下,开启二进制日志 innod ...
- c access mysql数据库_基于C#的Access MsSQL MySQL 三种数据库访问演示(含源文件Demo)...
基于C#的Access MsSQL MySQL 三种数据库访问演示(含源文件Demo) 一.三种数据库的主要对比 数据库类型 特点 Microsoft Access 桌面数据库.数据库载体是单个文件 ...
- 【雷达】基于RD、RMA、CS三种算法实现雷达成像附matlab代码
1 简介 基于RD.RMA.CS三种算法实现雷达成像matlab代码 2 完整代码 %Chirp Scaling二维成像仿真. %抛物面聚焦,条带测绘,正侧视工作方式. 匹配滤波.%目标为3个散射点 ...
- 基于Python实现中文文本关键词抽取的三种方法 课程报告+项目源码及数据
资源下载地址:https://download.csdn.net/download/sheziqiong/85737856 资源下载地址:https://download.csdn.net/downl ...
- 圆锥药型罩采用2D、3D单层和3D三种方法侵彻结果对比(基于LS-DYNA软件平台)
本次模拟旨在研究采用3种数值模拟方法(2D.3D单层和3D)对圆锥药型罩所形成聚能射流对45#钢靶的侵彻结果对比,软件采用LS-DYNA,对比内容包括侵彻形态.射流速度变化.侵彻孔径和侵彻深度,三种方 ...
- 在JavaScript中重复字符串的三种方法
In this article, I'll explain how to solve freeCodeCamp's "Repeat a string repeat a string" ...
- 在JavaScript中反转字符串的三种方法
This article is based on Free Code Camp Basic Algorithm Scripting "Reverse a String" 本文基于F ...
最新文章
- Android Service
- ARM 位置无关代码(PIC)的分析理解
- PlaneTR:一种用于提取场景中3D平面特征的Transformer(ICCV 2021)
- 02 oracle 创建用户和授权
- 团队开发-----电子秘书(便签+闹钟+音视频)
- 当同时使用bootstrap-datepicker.js和jquery.validate.js这两款插件,至少要选择两次时间,才能验证成功的问题...
- P4309 [TJOI2013]最长上升子序列 平衡树 + dp
- mysql批量用trim限定_如何使用trim()并更新mysql中的所有行[复制]
- document.createelement如何绑定点击事件_番外篇-EXCEL如何使用宏(VBA)
- 中兴路西藏北路到浦东国际机场路线(ddmap20100114)
- Azkaban的Web Server源码探究系列22: 一次性执行execute的提交准备
- 专利与论文-4:专利申请流程与生命周期及费用
- ai图像处理软件集大成者:Leawo PhotoIns Pro中文版介绍
- Android之USB打印
- 【中软杯国二开源】基于PaddleOCR和深度学习的企业实体识别
- 互联网金融数据分析应用
- matlab不支持复数输入,高版本MATLAB中medfilt1函数不支持复数问题
- 发那科2021参数_FANUC常用参数说明
- 推特雪花算法,分布式id生成器
- 《太阁立志传4》 所有武将卡的取得