理顺 QR 分解算法

news2025/1/18 9:48:41
咱们网站的这个公式编辑器,估计是后台生成图片后贴回来的,固定分辨率而且分辨率不高。
 还不如先离线 latex 生成 pdf 后再截图上来

1. Why QR

When A and b are known, to solver the minimization of $|| Ax - b ||_{2}$, where A \in \mathbb{R}^{m\times n}, b \in \mathbb{R}^{m}, and\,\,m \ge n.

The reduction of A to various canonical form via orthogonal transformations should use Householder reflections and Givens rotations.

2. preview on orthogonal matrix

2.1 Orthogonal matrix

\mathbf{Q} \in \mathbb{R}^{m\times m} , \,\mathbf{Q} \, is  orthogonal matrix, if:

\mathbf{Q}^{\mathbf{T}}\mathbf{Q}=\mathbf{Q}\mathbf{Q}^{\mathbf{T}}=\mathbf{I}_{m}

2.2 rotation matrix is orthogonal matrix

If

\mathbf{Q} = \left( \begin{array}{cc} \,\,\,\,\,\cos(\theta) & \sin(\theta)\\ -\sin(\theta)& \cos(\theta)\\ \end{array} \right)\\

\mathbf{Q} is orthogonal and $\mathbf{Q}$  is a rotation matrix.

If $y = \mathbf{Q}^\mathbf{T}x$ , then $y$ is obtained by rotating $x$ counterclockwise through an angle $\theta$.

2.3 reflection matrix is orthogonal matrix

If\\ \mathbf{Q} = \left( \begin{array}{cc} \cos(\theta) & \sin(\theta)\\ \sin(\theta) & -\cos(\theta)\\ \end{array} \right)

$\mathbf{Q}$ is orthogonal and $\mathbf{Q}$ is a reflection matrix.

If $y = Q^Tx = Qx$, then $y$ is obtained by reflecting the vector $x$ across the line defined by


\mathbf{S}=\mathbf{span}\left\{\left[ \begin{array}{c} \cos(\theta/2)\\ \sin(\theta/2)\\ \end{array}\right]\right\}

That means \overrightarrow{x} and \overrightarrow{y} are axial symmetry by S,

x is the preimage, y is the image, S is the mirror surface.

looks like :

%input x, ta = theta

%x = [-sqrt(2)/2.0, sqrt(2)/2.0]
x = [1; 1;]
ta = pi/5

S = [cos(ta/2.0), sin(ta/2.0)]
Q = [cos(ta), sin(ta); sin(ta), -cos(ta);]

y = Q*x

figure;
%1. draw axis
xmin = -2
xmax = 2
ymin = -2
ymax = 2

axisx = xmin:xmax;
axisy = zeros(size(axisx));
plot(axisx, axisy, 'k--', 'LineWidth', 0.7); % Plot x=0 axis
hold on;
plot(axisy, xmin:xmax, 'k--', 'LineWidth', 0.7); % Plot y=0 axis
hold on;

%2. draw surface of mirror
sx = -2*S(1):0.5:2*S(1)
sy = (S(2)/S(1))*sx
plot(sx, sy)
text(sx,sy, 'S')
hold on;

%3. draw preimage
plot(x(1), x(2), 'ro')

text(x(1)+0.1, x(2)+0.1, 'x')
hold on;

%4. draw image
plot(y(1), y(2), 'bo')
text(y(1)+0.1, y(2)+0.1, 'y')

%5. axis label
xlabel("X")
ylabel('Y')
v=[xmin, xmax, ymin, ymax]
axis(v)
%axis on

3. Householder transformation

In section 2, the reflection is introduced from the mirror surface. But, in this section, it is introduced from normal direction.

Let \vec{x} \in \mathbb{R}^m,and \,\, \vec{x} \ne \vec{0}

\beta = \frac{2}{v^Tv}\\\\ \mathbf{P} = \mathbf{I}-\beta v v^T

then \mathbf{P} is

a   Householder\,\,reflection 

or  Householder\,\, matrix 

or  Householder\,\,transformation

which are synonyms.

And v is the Householder vector.

When y = \mathbf{P}x

y is the image from x by reflecting with the hyuperplane \mathbf{span}\{v\}^\perp and the mirror surface is cross the O point.

\mathbf{3\,\, properties \,\, of\,\,\mathbf{P}:}

\mathbf{P} \,\,is\,\, symetric,\, \mathbf{H}^\mathbf{T} = \mathbf{H};

\mathbf{P}\,\, is\,\, orthogonal,\, \mathbf{H}^{-1} = \mathbf{H};

If\,\, \mathbf{A} \,\,is\,\, symetric,\, then\,\, \mathbf{A}_1 = \mathbf{P}^{-1}\mathbf{A}\mathbf{P} = \mathbf{P}\mathbf{A}\mathbf{P} \,\,is\,\, symetric.

\mathbf{Calculate\,\, the\,\, } Householder\,\, matrix:

If x \in \mathbb{R}^n\,\, and\,\, y \in \mathbb{R}^n, \parallel x\parallel _2 = \parallel y\parallel _2

let w=\frac{x-y}{\parallel x-y\parallel _2}  (this is the normal direction)

\mathbf{H} = \mathbf{I} - 2ww^\mathbf{T} = \mathbf{I} - 2\frac{(x-y)}{\parallel x-y\parallel _2^2} (x^\mathbf{T} - y^\mathbf{T})

then \mathbf{H}x = x -(x-y) = y;

约化定理

Let x=(x_1, x_2, ... ,x_n)^T \ne \mathbf{0},

then \exists \mathbf{P} st. \mathbf{H}x = -\sigma {e}_1

and:

\left\{\begin{array}{l} \mathbf{H} = \mathbf{I}-\beta^{-1}uu^T\\ \sigma=sgn(x_1) {\parallel {x} \parallel}_2;\\ u=x+\sigma e_1;\\ \beta = \frac{1}{2}\parallel u \parallel _2^2 = \sigma(\sigma+x_1) \end{array} \right.

约化定理毕;

约化定理example:

Let x = (3,5,1,1)^T then \parallel x \parallel _2 = 6 , and \sigma = 6

to calculate u:

u = x - \sigma e_1 = (9, 5, 1, 1)^T

then 

\parallel u \parallel_2^2 =108, \beta = \frac{1}{2}\parallel u \parallel_2^2 = 54

\mathbf{H} = \mathbf{I} - \beta^{-1}uu^T\\ \\=\mathbf{I} - \beta^{-1}\left[ \begin{array}{cccc} 81 & 45 & 9 & 9\\ 45 & 25 & 5 & 5\\ 9 & 5 & 1 & 1\\ 9 & 5 & 1 & 1 \\ \end{array} \right]\\ \\\\= \frac{1}{54}\left[ \begin{array}{cccc} -27 & -45 & -9 & -9\\ -45 & 29 & -5 & -5\\ -9 & -5 & 53 & -1\\ -9 & -5 &-1 & 53\\ \end{array} \right ]

y = \mathbf{H}*x \\= \left[ \begin{array}{c} -6.0000e+00\\ 1.7764e-15\\ 4.2327e-16\\ 4.4409e-16\\ \end{array} \right]

Here is the matlab code:

reduce_01.m:

x=[3;5;1;1;]
sigmaa =sign(x(1))*norm(x)
u = x+sigmaa*eye(4)(:,1)
betaa = 0.5*(norm(u))^2
H = eye(4) - (1.0/betaa)*u*u'
%debug
%h=betaa*H

y = H*x

未完待续 ... ...

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

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

相关文章

【计算机网络】概述|分层体系结构|OSI参考模型|TCP/IP参考模型|网络协议、层次、接口

目录 一、思维导图 二、计算机网络概述 1.计算机网络定义、组成、功能 2.计算机网络分类 3.计算机网络发展历史 (1)计算机网络发展历史1:ARPANET->互联网 (2)计算机网络发展历史2:三级结构因特网 …

时序预测 | MATLAB实现ICEEMDAN-SSA-GRU、ICEEMDAN-GRU、SSA-GRU、GRU时间序列预测对比

时序预测 | MATLAB实现ICEEMDAN-SSA-GRU、ICEEMDAN-GRU、SSA-GRU、GRU时间序列预测对比 目录 时序预测 | MATLAB实现ICEEMDAN-SSA-GRU、ICEEMDAN-GRU、SSA-GRU、GRU时间序列预测对比预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 时序预测 | MATLAB实现ICEEMDAN…

详解SpringCloud微服务技术栈:ElasticSearch实践2——RestClient查询并处理文档

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:详解SpringCloud微服务技术栈:ElasticSearch搜索结果处理(排序、分页、高亮) 📚订…

kali系统入侵电脑windows(win11系统)渗透测试,骇入电脑教学

本次渗透测试将使用kali虚拟机(攻击机)对本机(靶机)进行入侵并监控屏幕 声明:本篇仅仅是将本机作为靶机的一次简易渗透测试,实际情况中基本不可能出现如此简单的木马骇入(往往在上传木马时就被防…

Unity中URP下逐顶点光照

文章目录 前言一、之前额外灯逐像素光照的数据准备好后,还有最后的处理二、额外灯的逐顶点光照1、逐顶点额外灯的光照颜色2、inputData.vertexLighting3、surfaceData.albedo 前言 在上篇文章中,我们分析了Unity中URP下额外灯,逐像素光照中聚…

vue3之echarts3D环柱图

vue3之echarts3D环柱图 效果&#xff1a; 核心代码&#xff1a; <template><div class"container"><div ref"chartRef" class"charts"></div></div> </template><script lang"ts" setup&g…

通讯录小项目(上)

Start And Stick 通讯录的实现有很多种方式&#xff0c;今天我们将用结构体实现简单的通讯录项目功能。包括通讯录的增、删、查、改等功能。 思路&#xff1a; 此次代码文件分别为&#xff1a; 文件名用途sqlist.h用于函数和结构体的声明sqlist.c用于函数的实现test.c用于通讯…

【数据结构四】栈与Stack详解

目录 栈与Stack 1.实现一个自己的栈 2.Stack的基本使用 3.栈的一些oj题训练 4.栈&#xff0c;虚拟机栈&#xff0c;栈帧的区别 栈与Stack 栈 &#xff1a;一种特殊的线性表&#xff0c;其 只允许在固定的一端进行插入和删除元素操作 。进行数据插入和删除操作的一端称为栈顶…

Java集合总览

1.总览 Java中的集合分List、Set、Queue、Map 4种类型。 List&#xff1a;大多数实现元素可以为null&#xff0c;可重复&#xff0c;底层是数组或链表的结构&#xff0c;支持动态扩容 Set&#xff1a;大多数实现元素可以为null但只能是1个&#xff0c;不能重复&#xff0c; …

LeetCode(1)

目录 时间复杂度分析&#xff1a; 递归 题1&#xff1a;爬楼梯 解法1&#xff1a;递归 解法2&#xff1a;循环 题2&#xff1a;两数之和 解法1&#xff1a;暴力枚举 解法2&#xff1a; 哈希表 题3&#xff1a;合并两个有序数组 解法1&#xff1a;直接合并后排序 解法2&…

华为机考入门python3--(0)模拟题3-计算字符串重新排列数

分类&#xff1a;排列组合 知识点&#xff1a; 计算字符串中每个字符出现的次数 Counter(string) 计算列表中每个元素出现的次数 Counter(list) 阶乘 math.factorial(num) 排列去重 题目来自【华为招聘模拟考试】 先把每个字符当成唯一出现过一次&#xff0c;计算所有排列…

Linux文本三剑客---awk经典案例

awk&#xff08;是一种处理文本文件的应用程序&#xff0c;它依次处理文件的每一行&#xff0c;并读取里面的每一个字段。&#xff09; awk 包含几个特殊的内建变量&#xff08;可直接用&#xff09;如下所示&#xff1a; 1、获取根分区剩余大小 #可以使用df -h命令来查看所有…

详解顺序结构双指针处理算法

&#x1f380;个人主页&#xff1a; https://zhangxiaoshu.blog.csdn.net &#x1f4e2;欢迎大家&#xff1a;关注&#x1f50d;点赞&#x1f44d;评论&#x1f4dd;收藏⭐️&#xff0c;如有错误敬请指正! &#x1f495;未来很长&#xff0c;值得我们全力奔赴更美好的生活&…

如何在Ubuntu安装配置SVN服务端并实现无公网ip访问内网资料库

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” 文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改au…

swift - reduce简介

reduce 减少&#xff0c;降低&#xff1b;&#xff08;烹调中&#xff09;使变浓稠&#xff0c;收汁&#xff1b;<美>节食减肥&#xff1b;使沦为&#xff0c;使陷入&#xff08;不好的境地&#xff09;&#xff1b;迫使&#xff0c;使不得不&#xff08;做&#xff09;&…

【C++】输入输出、缺省参数、函数重载

目录 C的输入和输出 缺省参数 概念 缺省参数的分类 全缺省参数 半缺省参数 函数重载 概念 C支持函数重载的原理--名字修饰 C的输入和输出 #include<iostream> // std是C标准库的命名空间名&#xff0c;C将标准库的定义实现都放到这个命名空间中 using namespace …

BKP备份寄存器、RTC实时时钟

目录 1. BKP (Backup Registers)备份寄存器 2. RTC (Real Time Clock)实时时钟 1. BKP (Backup Registers)备份寄存器 BKP可用于存储用户应用程序数据。当VDD (2.0-3.6V)电源被切断,他们仍然由VBAT (1.8-3.6V)维持供电。当系统在待机模式下被唤醒&#xff0c;或系统复位或…

【大数据】Flink 架构(一):系统架构

Flink 架构&#xff08;一&#xff09;&#xff1a;系统架构 1.Flink 组件1.1 JobManager1.2 ResourceManager1.3 TaskManager1.4 Dispatcher 2.应用部署2.1 框架模式2.2 库模式 3.任务执行4.高可用设置4.1 TaskManager 故障4.2 JobManager 故障 Flink 是一个用于状态化并行流处…

BeanUtils和BeanCopier性能复制Bean工具比较

文章目录 一、前言二、实验三、原理1、BeanUtils2、BeanCopier 四、总结 一、前言 我们本篇比较的是复制Bean对象的工具&#xff0c;分别是org.springframework.beans.BeanUtils和 net.sf.cglib.beans.BeanCopier 二、实验 import net.sf.cglib.beans.BeanCopier; import org…

部署LNMP、Nginx+FastCGI、Nginx地址重写语法,地址重写应用案例

1 案例1&#xff1a;部署LNMP环境 1.1 问题 安装部署LNMP环境实现动态网站解析 静态网站 在不同环境下访问&#xff0c;网站内容不会变化 动态网站 在不同环境下访问&#xff0c;网站内容有可能发生变化 安装部署Nginx、MariaDB、PHP、PHP-FPM&#xff1b;启动Nginx、Mari…