参考书籍和图片来源:《矩阵分析与计算》李继根 张新发编著  第三章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分解相关推荐

  1. 利用队列解密QQ号码(三种方法)-->改编自《啊哈!算法》

    [问题描述] 新学期开始了,小哈是小哼的新同桌.小哼向小哈询问 QQ号,小哈当然不会直接告诉小哼啦,原因嘛你懂的.所以小哈给了小哼一串加密过的数字,同时小哈也告诉了小哼解密规则.规则是这样的:首先将第 ...

  2. android启动其他app的服务器,Android中通过外部程序启动App的三种方法

    这篇文章主要介绍了Android中通过外部程序启动App的三种方法, 本文讲解了直接通过包名. 通过自定义的Action. 通过Scheme三种方法,并分别给出操作代码,需要的朋友可以参考下 ==== ...

  3. MySQL(一):分别基于mysqldump、lvm2、xtrabackup三种方式实现备份恢复

    分别基于mysqldump.lvm2.xtrabackup三种方式实现MySQL备份恢复 一.利用mysqldump实施逻辑备份操作 1.在/etc/my.cnf中添加如下,开启二进制日志 innod ...

  4. c access mysql数据库_基于C#的Access MsSQL MySQL 三种数据库访问演示(含源文件Demo)...

    基于C#的Access MsSQL MySQL 三种数据库访问演示(含源文件Demo) 一.三种数据库的主要对比 数据库类型 特点 Microsoft Access 桌面数据库.数据库载体是单个文件 ...

  5. 【雷达】基于RD、RMA、CS三种算法实现雷达成像附matlab代码

    1 简介 基于RD.RMA.CS三种算法实现雷达成像matlab代码​ 2 完整代码 %Chirp Scaling二维成像仿真. %抛物面聚焦,条带测绘,正侧视工作方式. 匹配滤波.%目标为3个散射点 ...

  6. 基于Python实现中文文本关键词抽取的三种方法 课程报告+项目源码及数据

    资源下载地址:https://download.csdn.net/download/sheziqiong/85737856 资源下载地址:https://download.csdn.net/downl ...

  7. 圆锥药型罩采用2D、3D单层和3D三种方法侵彻结果对比(基于LS-DYNA软件平台)

    本次模拟旨在研究采用3种数值模拟方法(2D.3D单层和3D)对圆锥药型罩所形成聚能射流对45#钢靶的侵彻结果对比,软件采用LS-DYNA,对比内容包括侵彻形态.射流速度变化.侵彻孔径和侵彻深度,三种方 ...

  8. 在JavaScript中重复字符串的三种方法

    In this article, I'll explain how to solve freeCodeCamp's "Repeat a string repeat a string" ...

  9. 在JavaScript中反转字符串的三种方法

    This article is based on Free Code Camp Basic Algorithm Scripting "Reverse a String" 本文基于F ...

最新文章

  1. Android Service
  2. ARM 位置无关代码(PIC)的分析理解
  3. PlaneTR:一种用于提取场景中3D平面特征的Transformer(ICCV 2021)
  4. 02 oracle 创建用户和授权
  5. 团队开发-----电子秘书(便签+闹钟+音视频)
  6. 当同时使用bootstrap-datepicker.js和jquery.validate.js这两款插件,至少要选择两次时间,才能验证成功的问题...
  7. P4309 [TJOI2013]最长上升子序列 平衡树 + dp
  8. mysql批量用trim限定_如何使用trim()并更新mysql中的所有行[复制]
  9. document.createelement如何绑定点击事件_番外篇-EXCEL如何使用宏(VBA)
  10. 中兴路西藏北路到浦东国际机场路线(ddmap20100114)
  11. Azkaban的Web Server源码探究系列22: 一次性执行execute的提交准备
  12. 专利与论文-4:专利申请流程与生命周期及费用
  13. ai图像处理软件集大成者:Leawo PhotoIns Pro中文版介绍
  14. Android之USB打印
  15. 【中软杯国二开源】基于PaddleOCR和深度学习的企业实体识别
  16. 互联网金融数据分析应用
  17. matlab不支持复数输入,高版本MATLAB中medfilt1函数不支持复数问题
  18. 发那科2021参数_FANUC常用参数说明
  19. 推特雪花算法,分布式id生成器
  20. 《太阁立志传4》 所有武将卡的取得

热门文章

  1. QQ堂3.3可用外挂
  2. 第三周-项目4——长方柱类
  3. 炫界 (587) -(牛一邓丽君音)_[MIUI玩机技巧37]MIUI11通知音新增宿鸟流萤
  4. 不用拍摄,简单易学!熬夜制作绘画视频,一个月赚2万多
  5. FPGA实现基于时间内插法的TDC测量----第一章
  6. Excel打开十字定位
  7. 若依在导出导入excel的时候通过@Excel对字典表进行翻译
  8. 【计算机网络知识扫盲】02、计算机网络的概念(转)
  9. WinCE手写输入法
  10. 字节跳动java后端实习生面试总结