线性代数 --- QR分解,A=QR

news2024/10/6 4:07:19

矩阵的QR分解,格拉姆施密特过程的矩阵表示

        首先先简单的回顾一下Gram-Schmidt正交化过程的核心思想,如何把一组线性无关的向量构造成一组标准正交向量,即,如何把矩阵A变成矩阵Q的过程。

        给定一组线性无关的向量a,b,c,我们希望构造出一组相互垂直的单位向量。

A=\begin{bmatrix} | & |& |\\ a& b&c \\ | & |& | \end{bmatrix}

第一步:

\mathbf{A=a}

得到一组正交向量中的第一个向量A,这就是说,我们令新的正交向量中的第一个向量A与向量a的方向相同,且大小相同。(这里我们用到了向量a)

第二步:

\mathbf{B=b-\frac{A^{T}b}{A^{T}A}A}

A的已经确定了,第二个向量B必须垂直于A。我们令b减去b在A上的投影Pb,得到我们想要的第二个向量B。a,b与A,B不同,但都在同一个平面内。注意:向量B一定不等于0,否则的话就与a,b线性无关这一事实相左。(这里我们用到了向量b)

第三步:

\mathbf{C=c-\frac{A^{T}c}{A^{T}A}A-\frac{B^{T}c}{B^{T}B}B}

现在我们基于c去找第三个向量C,C必须垂直于A,B所张成的平面,即A,B所在的子空间。我们令c减去c在这个平面上的投影Pc,得到向量C。

如果还有第四个,第五个向量d,e,f,g......的话,我们只需把在这个基础上重复上述过程就能找到新的正交向量D,E,F,G......。

第四步:

\mathbf{q_{1}=\frac{A}{\left \| A \right \|},q_{2}=\frac{B}{\left \| B \right \|},q_{3}=\frac{C}{\left \| C \right \|}}

当我们把前面的正交向量A,B,C全部找完以后,让他们分别除以各自的长度,最终得到一组标准正交向量q1,q2,q3。这最后一步被称为向量的归一化。


例:

        已知一组线性无关的向量a,b,c:

a=\begin{bmatrix} 1\\ -1\\ 0 \end{bmatrix} \; b=\begin{bmatrix} 2\\ 0\\ -2\end{bmatrix} \; b=\begin{bmatrix} 3\\ -3\\ 3 \end{bmatrix}

第一步:令A=a得到

A=\begin{bmatrix} 1\\ -1\\ 0 \end{bmatrix}

第二步:从b中减去b在A上的投影得到

B=b-\frac{A^{T}b}{A^{T}A}A=b-\frac{2}{2}A=\begin{bmatrix} 1\\ 1\\ -2 \end{bmatrix}

第三步:从c中减去c在AB平面上的投影得到

C=c-\frac{A^{T}c}{A^{T}A}A-\frac{B^{T}c}{B^{T}B}B=c-\frac{6}{2}A+\frac{6}{6}B=\begin{bmatrix} 1\\ 1\\ 1 \end{bmatrix}

第四步:归一化

\left \| A \right \|=\sqrt{A^{T}A}=\sqrt{2}, \; \left \| B \right \|=\sqrt{B^{T}B}=\sqrt{6}, \; \left \| C \right \|=\sqrt{C^{T}C}=\sqrt{3}

q_{1}=\frac{A}{\left \| A \right \|}=\frac{1}{\sqrt{2}}\begin{bmatrix} 1\\ -1\\ 0 \end{bmatrix}\; q_{2}=\frac{B}{\left \| B \right \|}=\frac{1}{\sqrt{6}}\begin{bmatrix} 1\\ 1\\ -2 \end{bmatrix}\; q_{3}=\frac{C}{\left \| C \right \|}=\frac{1}{\sqrt{3}}\begin{bmatrix} 1\\ 1\\ 1 \end{bmatrix}\;

一般而言,A,B,C往往会含有分数。而几乎所有的q1,q2,q3都会包含根号。

参考文献(鸣谢):

1,Introduction to Linear Algebra,Fifth Edition - Gilbert Strang

2,线性代数及其应用,候自新,南开大学出版社 1990

3,Linear Algebra and Its Applications, Second Edition, Gilbert Strang, 1980

4,Linear Algebra and Its Applications, Fourth Edition, Gilbert Strang, 2005

(配图与本文无关)

版权声明:文中的部分图片,文字或者其他素材,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27

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

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

相关文章

【深度学习】Chinese-CLIP 使用教程,图文检索,跨模态检索,零样本图片分类

代码:https://github.com/OFA-Sys/Chinese-CLIP/blob/master/deployment.md 文章目录 安装环境和onnx推理转换所有模型为onnx测试所有onnx模型的脚本onnx cpu方式执行docker镜像 安装环境和onnx推理 安装环境,下载权重放置到指定目录,进行on…

基于Java+SpringBoot+Vue线上医院挂号系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

Swagger-go学习笔记

目录 Swagger的作用背景Swagger介绍 Swagger的基本使用1. 使用步骤2. 添加注释3. 生成接口文档数据4. 引入gin-swagger5. 测试结果6. 使用Token Swagger-go的中文文档通用API信息API操作MIME类型参数类型数据类型 Swagger的作用 背景 在传统的前端端分离的项目中,…

JAXB 使用记录 bean转xml xml转bean 数组 继承

JAXB 使用记录 部分内容引自 https://blog.csdn.net/gengzhy/article/details/127564536 基础介绍 JAXBContext类:是应用的入口,用于管理XML/Java绑定信息 Marshaller接口:将Java对象序列化为XML数据 Unmarshaller接口:将XML数…

数字孪生和数据分析:数字化时代的力量结合

在当今数字化时代,数据是无处不在的。企业、政府和个人不仅生成了大量数据,还寻求从中获取有价值的信息以进行更好的决策。在这个背景下,数字孪生和数据分析成为了迎合这一需求的两个关键概念。本文带大家一起探讨二者之间相辅相成的关系。 一…

黑马店评-04缓存更新策略,保证MySQL数据库中的数据和Redis中缓存的数据一致性

缓存更新策略(数据一致) 更新策略 缓存更新是Redis为了节约内存而设计出来的机制,当我们向Redis插入太多数据时就会导致缓存中的数据过多,所以Redis会对部分数据进行更新即淘汰 低一致性需求(数据长久不发生变化): 使用内存淘汰机制,例如店铺类型信息的查询缓存,因为这部分…

day02_运算符_if

零、今日内容 1.运算符 2.scanner 3.if,ifelse,elseif 复习 学习方法: 睡觉前过电影(1jdk,配置环境变量2idea使用3HelloWorld程序解释 4变量5数据类型6String) 主方法是每次都要写的,因为代码要执行(psvm) 输出语句每次都要写的,因为要看结果(sout) 1.声明变量的语法格式 数据类…

网络安全(黑客)—0基础学习手册

目录梗概 一、自学网络安全学习的误区和陷阱 二、学习网络安全的一些前期准备 三、网络安全学习路线 四、学习资料的推荐 想自学网络安全(黑客技术)首先你得了解什么是网络安全!什么是黑客! 网络安全可以基于攻击和防御视角来…

Git【入门】从安装到会用(千字总结●超详细)

我的个人主页:☆光之梦☆_C语言基础语法(超详细),【java入门】语法总结-CSDN博客 创作不易,如果能帮到你就好 注:你的 👍点赞 ⭐收藏 📝评论 是对博主最大的支持与鼓励喔 认真看完这篇文章&am…

极智AI | 能够轻松构建大模型端到端应用的LangChain 到底是什么

欢迎关注我的公众号 [极智视界],获取我的更多经验分享 大家好,我是极智视界,本文来介绍一下 能够轻松构建大模型端到端应用的 LangChain,到底是什么。 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码下载,链接:https://t.zsxq.com/0aiNxERDq 先上官…

Cesium热力图

二、代码 <!doctype html> <html><head><meta charset"utf-8"><link rel"stylesheet" href"./css/common.css"><title>热力图</title><script src"./js/config.js"></script>…

手动实现SpringMVC底层机制

手动实现SpringMVC底层机制 &#x1f41f;准备工作&#x1f34d;搭建SpringMVC底层机制开发环境 实现任务阶段一&#x1f34d;开发ZzwDispatcherServlet&#x1f966;说明: 编写ZzwDispatcherServlet充当原生的DispatcherServlet(即核心控制器)&#x1f966;分析代码实现&#…

基于点标签的目标检测与计数深度学习框架盘点

(1)P2PNet <1>P2PNet提出 论文出处&#xff1a;Rethinking Counting and Localization in Crowds: A Purely Point-Based Framework 论文链接&#xff1a;https://arxiv.org/abs/2107.12746 开源代码&#xff1a;https://github.com/TencentYoutuResearch/CrowdCount…

物联网AI MicroPython传感器学习 之 MQ136硫化氢传感器

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; 一、产品简介 MQ136 是一种硫化氢检测传感器&#xff0c;感应范围为 1 - 200ppm。传感元件是 SnO2&#xff0c;它在清洁空气中的电导率较低。当存在 H₂S 气体时&#xff0c;传感器的电导率随着气体浓度的升…

Gralloc ION DMABUF in Camera Display

目录 Background knowledge Introduction ia pa va and memory addressing Memory Addressing Page Frame Management Memory area management DMA IOVA and IOMMU Introduce DMABUF What is DMABUF DMABUF 关键概念 DMABUF APIS –The Exporter DMABUF APIS –The…

PyTorch模型的多种导出方式提供给其他程序使用

PyTorch模型的多种导出方式提供给其他程序使用 flyfish PyTorch模型的多种导出方式 PyTorch模型的多种导出方式提供给其他程序使用1 模型可视化2 预训练模型3 ONNX模型导出有输入有输出TRAINING导出方式EVAL导出方式 4 自定义输入输出的名字&#xff0c;并可批量推理5 导出JI…

PyG两个data Datsaset v.s. InMemoryDataset

可以看到InMemoryDataset 对CPU更加友好 https://pytorch-geometric.readthedocs.io/en/latest/modules/data.html#pytorch-lightning-wrappers

Linux下C++编程-进度条

引言&#xff1a;本篇主要在linux下的C实现进度条的功能。按照多文件编程&#xff0c;同时使用Makefile文件完成多文件的编译、连接。 首先创建头文件&#xff1a; 1. progress.h #pragma once #include <iostream> #include <cstring> #include <iomanip>…

Navicat定时任务

Navicat定时任务 1、启动Navicat for MySQL工具&#xff0c;连接数据库。 2、查询定时任务选项是否开启 查询命令&#xff1a;SHOW VARIABLES LIKE ‘%event_scheduler%’; ON表示打开&#xff0c;OFF表示关闭。 打开定时任务命令 SET GLOBAL event_scheduler 0; 或者 SET G…

elasticsearch 8.5.3问题记录

一&#xff1a;解决 elasticsearch 高版本 warning: ignoring JAVA_HOMEC:\Program Files\Java\jdk-11&#xff1b; using bundled JDK if defined JAVA_HOME (set JAVA_HOME%JAVA_HOME%; )示例版本Elasticsearch 8.5.3 可以与 JDK 11 兼容&#xff0c;但不支持 JDK 17。确保选…