矩阵分析:QR分解

news2024/11/20 4:18:46

Householder变换

在这里插入图片描述
Householder变换是一种简洁而有意思的线性变换,也可称为镜面反射变换,Householder变换矩阵为 H = I − w T w H=I-w^Tw H=IwTw
考虑向量 α \alpha α和一个单位向量 w : w T w = 1 w:w^{T}w=1 w:wTw=1
α \alpha α w w w 方向上的分量是
α w / / = ( w T α ) w = w w T α \alpha _{w_{//}}=\left( w^{T}\alpha \right) w=ww^{T}\alpha αw//=(wTα)w=wwTα
α \alpha α关于以 w w w为法向量的平面的镜面反射为
α − 2 α w / / = α − 2 w w T α = ( I − 2 w w T ) α = H α \alpha -2\alpha _{w_{//}}=\alpha -2ww^{T}\alpha =\left( I-2ww^{T}\right) \alpha =H\alpha α2αw//=α2wwTα=(I2wwT)α=Hα
考虑以下两个特殊向量
H w = ( I − 2 w w T ) w = w − 2 w ( w T w ) = − w v : w T v = 0 , H v = ( I − 2 w w T ) v = v − 2 w ( w T v ) = v \begin{aligned} &Hw=\left( I-2ww^{T}\right) w=w-2w\left( w^{T}w\right) =-w\\ &v:w^{T}v=0,Hv=( I -2ww^{T}) v=v-2w\left( w^{T}v\right) =v \end{aligned} Hw=(I2wwT)w=w2w(wTw)=wv:wTv=0,Hv=(I2wwT)v=v2w(wTv)=v
对于向量 w w w,Householder矩阵的作用是将其反向,对于垂直于向量 w w w的向量 v v v ,Householder矩阵对其不产生改变。那么对于一般的向量 α \alpha α,经过Householder矩阵作用后,平行于 w w w的分量反向,垂直于 w w w的分量保持不变。其整体作用是将向量关于法向量为 w w w的平面做镜面对称。

于是也可以得到,Householder变换不改变向量模长,是一种正交变换。两次镜面变换后将反射为自身,同时也是一种对合变换。即
H H T = I , H 2 = I HH^{T}=I,H^{2}=I HHT=I,H2=I
下面从代数层面考虑,上式表明 -1,1为Householder矩阵的特征值。对于向量 w w w,可以找到n-1个向量构成n维欧式空间的一组标准正交基。记 Q = [ w , v 1 , v 2 , … , v n − 1 ] Q=\left[ w,v_{1},v_{2},\ldots ,v_{n-1}\right] Q=[w,v1,v2,,vn1] ,有:
I = Q Q T = w w T + ∑ i = 1 n − 1 v i v i T H = I − 2 w w T = − w w T + ∑ i = 1 n − 1 v i v i T = Q ( − 1 1 ⋱ 1 ) Q T \begin{aligned} I&=QQ^{T}=ww^{T}+\sum ^{n-1}_{i=1}v_{i}v_{i}^{T}\\ H&=I-2ww^{T}=-ww^{T}+\sum ^{n-1}_{i=1}v_{i}v_i^{T}=Q\begin{pmatrix} -1 & & & \\ & 1 & & \\ & & \ddots & \\ & & & 1 \end{pmatrix}Q^{T} \end{aligned} IH=QQT=wwT+i=1n1viviT=I2wwT=wwT+i=1n1viviT=Q 111 QT
上式给出了Householder的对角化过程,可以看出其更本质的特征。通过秩为1的矩阵 w w T ww^T wwT改变了单位矩阵的一个特征值,进而改变其一个特征向量上的缩放变换。

Householder变换用于QR分解

可以通过Householder变换可以将向量 x x x变换为任意相同模长的向量 y y y
H x = y H x = y Hx=y
其中 H = I − w T w H=I-w^Tw H=IwTw,由Householder变换的本质是法向量为 w w w的平面的镜像对称可知
x − y = ∥ x − y ∥ w    ⟹    w = x − y ∥ x − y ∥ x-y=\lVert x-y \rVert w\\ \implies w=\dfrac{x-y}{\lVert x-y \rVert} xy=xyww=xyxy

而利用Householder变换的上述性质可以进行QR分解:
对于任意非奇异矩阵 A = [ a 1 a 2 ⋯ a n ] A=\begin{bmatrix}a_1&a_2&\cdots & a_n\end{bmatrix} A=[a1a2an],首先利用Householder变换将 A A A矩阵的第一列除第一个元素外全部变成0
H 1 a 1 = β e 1 H_1 a_1 = \beta e_1 H1a1=βe1
e i e_i ei是第i个元素为1的单位向量。
H 1 A = [ H 1 a 1 H 1 A ′ ] = [ ∗ ∗ 0 A ^ 1 ] H_1 A = \begin{bmatrix}H_1 a_1& H_1A'\end{bmatrix}=\begin{bmatrix}*&*\\0&\hat{A}_1\end{bmatrix} H1A=[H1a1H1A]=[0A^1]
从而我们可以迭代地对维度减一的矩阵 A ^ 1 \hat{A}_1 A^1进行上述求解,得到 H ^ 2 \hat H_2 H^2 ,则令 H 2 = ( 1 0 0 H ^ 2 ) H_2=\left(\begin{matrix}1 &0 \\0 &\hat H_2\end{matrix}\right) H2=(100H^2) ,则:
H ^ 2 A ^ 1 = [ ∗ ∗ 0 A ^ 2 ] \hat{H}_2 \hat{A}_1=\begin{bmatrix}*&*\\0&\hat{A}_2\end{bmatrix} H^2A^1=[0A^2]
以此类推接着对 A ^ 2 \hat{A}_2 A^2 做Householder变换将其第一列除第一元素外变为0。
最终迭代可以得到
H n − 1 ⋯ H 2 H 1 A = R H_{n-1}\cdots H_2H_1 A=R Hn1H2H1A=R

Q T = H n − 1 ⋯ H 2 H 1 Q^T=H_{n-1}\cdots H_2H_1 QT=Hn1H2H1

Givens变换

参考链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/148778.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python快速制作自动填写脚本:100%准确率

嗨害大家好鸭!我是小熊猫~ 环境使用 Python 3.8Pycharm 模块使用 import requests —> 数据请求模块 pip install requestsimport parsel —> 数据解析模块 pip install parselfrom selenium import webdriver —> 自动测试模块 pip install selenium3.…

#H. Linear Approximation

Description给你一个数列A&#xff0c;希望你找出一个数字B。使得下面这个式子的值最小Abs(A1-(B1))Abs(A2-(B2))Abs(A3-(B3))..........Abs(An-(Bn))FormatInput第一行给出输入n第二行给出数列A,数字的值在[1,1e9]N<2e5Output如题Samples输入数据 152 2 3 5 5输出数据 12思…

WQS二分

本博客以一种较为少见的方式来解释WQS二分。 题目 首先&#xff0c;WQS二分用于解决什么问题&#xff1f; 我们先看一个伞兵题目&#xff1a; 有一个 nnn 个数的数组 aaa。 求在 aaa 中恰好选择 mmm 个数的情况下&#xff0c;选择的数的和的最大值。 你现在看到了这个题目&a…

Jenkins基于Blue Ocean UI构建流水线

目录 一、Blue Ocean 简介 二、Blue Ocean 安装 2.1 安装 Blue Ocean 插件 2.2 安装 Blue Ocean 版本的 Jenkins 3. 构建流水线 4. 创建流水线 5. 选择代码仓库 6. 连接Git仓库 7. 创建流水线 详细信息可以参考官网&#xff1a;Blue Ocean 入门 一、Blue Ocean 简介…

牛客竞赛每日俩题 - Day13

目录 洪泛法BFS 26进制计数字符串 洪泛法BFS 红与黑__牛客网 循环接收每组用例&#xff0c;对于每组用例进行如下操作&#xff1a; 找到‘’所在的位置&#xff0c;即起始搜索的点 使用DFS搜索地板中的每块瓷砖&#xff0c;如果是黑色&#xff0c;给计数1&#xff0c;然后像…

JavaSE学习day2_01, 数据类型

1. 数据类型 1.1 Java中数据类型的分类,重点 基本数据类型 引用数据类型 1.2 基本数据类型的四类八种 整数类型&#xff1a;byte、short、int、long 浮点类型&#xff1a;float、double 字符类型&#xff1a;char 布尔类型&#xff1a;boolean,只有两个取值,true和false…

HW13 Network Compression网络压缩

文章目录一、任务描述1、介绍知识蒸馏2、介绍架构设计二、实验1、simple baselineconfigs结构设计训练2、medium baselineconfigs3、strong baselineconfigsReLu和leakyRelu知识蒸馏一、任务描述 ●网络压缩&#xff1a;使您的模型更小而不损失性能。 ●在这个任务中&#xff…

初级算法之深度搜索

目录 ​编辑 概述&#xff1a; 个人对深搜的理解&#xff1a; 深搜模板&#xff1a; 例题&#xff1a; 题目描述 输入格式 输出格式 输入输出样例 说明/提示 代码图示&#xff1a; 概述&#xff1a; 在我们刷算法的过程中肯定会想到暴力通过&#xff0c;暴力是不需要…

分类预测 | MATLAB实现超参数优化朴素贝叶斯(Naive Bayesian)多特征分类预测

分类预测 | MATLAB实现超参数优化朴素贝叶斯(Naive Bayesian)多特征分类预测 目录 分类预测 | MATLAB实现超参数优化朴素贝叶斯(Naive Bayesian)多特征分类预测分类效果基本介绍程序设计学习小结参考资料分类效果 基本介绍 MATLAB实现超参数优化朴素贝叶斯(Naive Bayesian)多特…

行为型-策略模式

策略模式简介 策略模式&#xff08;Strategy Pattern&#xff09;属于对象的行为模式。其用意是针对一组算法&#xff0c;将每一个算法封装到具有共同接口的独立的类中&#xff0c;从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。其主要目…

【Kotlin】空安全 ⑤ ( 异常处理 | 捕获并处理异常 | 抛出自定义异常 )

文章目录一、Kotlin 中的异常处理1、捕获并处理异常2、抛出自定义异常一、Kotlin 中的异常处理 在 Kotlin 程序中 , 处理异常 的方式有 : 抛出默认异常抛出自定义异常捕获并处理异常 1、捕获并处理异常 捕获异常代码示例 : 在下面的代码中 , name 变量是可空类型变量 , 其初始…

C语言入门(三)——简单函数

数学函数在数学中我们用过sin和ln这样的函数&#xff0c;例如Vin(ʌ &#xff0c;ln10等等&#xff0c;在C语言中也可以使用这些函数&#xff08;ln函数在C标准库中叫做log&#xff09;&#xff1a;在C语言中使用数字函数#include <math.h> #include <stdio.h> int…

生物化学 SY003地西泮(三大经典药物的老三)

历史 1864年 巴比妥酸 2,4,6-三羟基嘧啶, 丙二酰脲 “芭芭拉的尿酸” 巴比妥酸是一种有机化合物&#xff0c;化学式为C4H4N2O3&#xff0c;它由德国化学家阿道夫冯拜尔在研究尿酸时发现。巴比妥酸的德语名称“Barbitursure”衍生自拜尔的爱人芭芭拉&#xff08;Babara&#xf…

本周大新闻|CES 2023 AR/VR最全汇总

本周正值CES 2023举办期间&#xff0c;大新闻正好结合大会上的AR/VR新闻进行汇总。AR方面&#xff0c;The Information爆料更多苹果AR/VR头显信息&#xff1b;郭明錤表示苹果MR或再次推迟至Q3或年底&#xff1b;Mojo Vision裁员75%&#xff0c;专注Micro LED技术&#xff1b;消…

数据结构之二叉树的相关概念

今天我们来了解一下二叉树是什么。 二叉树介绍 要想明白二叉树&#xff0c;还得先了解一下树的定义。 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树&#xff…

图机器学习时间简史

自监督学习是大的算法研究方向。 图结构图特征是图神经网络的两个创新方面&#xff1b; 2022图神经网络的突破&#xff1a; 1.一些范式的突破&#xff1a;常常借鉴CV和NLP 2.很多新的自然界的应用场景上应用创新&#xff1a;天气预报&#xff0c;蛋白质&#xff0c;小分子&am…

linux(07)之内核系统调用

Linux(07)之内核系统调用 Author&#xff1a;Once Day Date&#xff1a;2023年1月7日 漫漫长路&#xff0c;才刚刚开始… 文章目录Linux(07)之内核系统调用1.概述2. 系统调用2.1 无参数的系统调用定义2.2 带参数的系统调用定义2.2.1 __diag诊断宏2.2.2 __MAP参数映射处理宏2.…

go的安装、gin安装以及GoLand的配置

一.go的安装以及Goland配置go的安装&#xff1a;https://www.runoob.com/go/go-environment.htmlMAC 系统下你可以使用 .pkg 结尾的安装包直接双击来完成安装&#xff0c;安装目录在 /usr/local/go/ 下。mac中按 ⌘shift. 即可显示隐藏文件夹&#xff0c;再按一次&#xff0c;即…

Spring4 全细节回顾

spring细节回顾 1、IOC/DI ApplicationContext接口是BeanFactory接口的子接口&#xff0c;Spring所有的东西都扔到了这里边。 1、Beans&#xff1a;Spring负责创建类对象并管理对象&#xff1b; 2、Core&#xff1a;核心类&#xff1b; 3、Context&#xff1a;上下文参数&a…

机器学习(4)——周志华

归纳偏好 若非必要&#xff0c;勿增实体 若多个算法都能解决同一个问题&#xff0c;则选取最简单的算法 当前什么样的偏好与问题更匹配&#xff0c;必须对问题有一个清楚的认识