当前位置: 首页 > news >正文

线性代数之QR分解和SVD分解

文章目录

    • 1.QR分解
      • Schmidt正交化
      • Householder变换
      • QR分解的应用
    • 2. 求矩阵特征值、特征向量的基本方法
    • 3.SVD分解
      • SVD分解的应用
    • 参考文献

1.QR分解

矩阵的正交分解又称为QR分解,是将矩阵分解为一个正交矩阵Q和一个上三角矩阵R的乘积的形式。
任意实数方阵A,都能被分解 。这里的Q为正交单位阵,即 R是一个上三角矩阵。这种分解被称为QR分解。
QR分解也有若干种算法,常见的包括Gram–Schmidt、Householder和Givens算法。 QR分解是将矩阵分解为一个正交矩阵与上三角矩阵的乘积。用一张图可以形象地表示QR分解:
在这里插入图片描述

Schmidt正交化

定理1
设A是n阶实非奇异矩阵,则存在正交矩阵Q和实非奇异上三角矩阵R使A有QR分解;且除去相差一个对角元素的绝对值(模)全等于1的对角矩阵因子外,分解是唯一的.

定理2
设A是m×n实矩阵,且其n个列向量线性无关,则A有分解A=QR,其中Q是m×n实矩阵,且满足QHTQ=E,R是n阶实非奇异上三角矩阵该分解除去相差一个对角元素的绝对值(模)全等于1的对角矩阵因子外是唯一的.用Schmidt正交化分解方法对矩阵进行QR分解时,所论矩阵必须是列满秩矩阵。

用施密特正交计算方法如下:
在这里插入图片描述
在这里插入图片描述

Householder变换

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Householder法QR分解例子:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

QR分解的应用

QR 分解经常用来解线性最小二乘法问题。

2. 求矩阵特征值、特征向量的基本方法

由于SVD分解会涉及到矩阵特征值和特征向量的求解,因此有必要简单介绍下矩阵特征值的求解方法。
在这里插入图片描述
在这里插入图片描述

3.SVD分解

奇异矩阵是指行列式值为零的方阵,它具有以下特点:

非满秩:矩阵的秩小于其阶数,意味着行向量或列向量线性相关。
不可逆:没有逆矩阵,因为逆运算要求行列式不为零。
零空间非空:存在非零向量与之相乘结果为零向量。
与线性方程组求解相关:如果系数矩阵奇异,方程组可能无解或有无穷多解。
非奇异矩阵的对比:非奇异矩阵(可逆矩阵)行列式不为零,满秩,有唯一逆矩阵和零解。

矩阵的特征值和奇异值是线性代数中重要的概念,它们之间存在一定的关系。

对于一个方阵,其特征值是该矩阵在空间中的特殊向量方向上的缩放因子。特征值可以通过解矩阵的特征值问题得到,即找到满足方程 Ax = λx 的非零向量 x 和标量 λ。

而对于一个非方阵的矩阵,它的奇异值则是矩阵的秩和特征向量的相对缩放因子。奇异值分解(SVD)可以将矩阵分解为三个部分:U、Σ 和 V^T,其中 U 和 V 是正交矩阵,Σ 是一个对角矩阵,对角线上的元素就是矩阵的奇异值。

有以下关系:
对于一个方阵,其特征值等于其奇异值。
对于一个非方阵的矩阵,其奇异值是其特征值的平方根。
需要注意的是,特征值和奇异值所描述的信息不完全相同,特征值更多地描述了矩阵在特定方向上的缩放,而奇异值则更多地描述了矩阵整体的缩放和旋转。它们在不同的应用领域和问题中有着不同的用途和解释。
在这里插入图片描述

例题分析:
在这里插入图片描述

SVD分解的应用

1.降维
通过上面的式子很容易看出,原来矩阵AA的特征有nn维。而经过SVD分解之后,完全可以用前rr个非零奇异值对应的奇异向量表示矩阵AA的主要特征。这样,就天然起到了降维的作用。
2.压缩
还是看上面的式子,再结合第三部分的图,也很容易看出,经过SVD分解以后,要表示原来的大矩阵AA,我们只需要存U,Σ,V三个较小的矩阵的即可。而这三个较小矩阵的规模,加起来也远远小于原有矩阵AA。这样,就天然起到了压缩的作用。

参考文献

SVD分解和QR分解—Apple的学习笔记
Math-Model(五)正交分解(QR分解)
householder进行矩阵QR分解
QR分解-givens旋转与Householder变换
特征值,特征向量和矩阵对角化
数值计算3:特征值、特征向量和对角化
超详细解释奇异值分解(SVD)【附例题和分析】
奇异值分解(SVD)
这是我见过最通俗易懂的SVD(奇异值分解)算法介绍
https://math.ecnu.edu.cn/~jypan/Teaching/NA/2021/slides_03D_LS.pdf
https://math.ecnu.edu.cn/~jypan/Teaching/NA/2021/slides_02A_LU.pdf
https://math.ecnu.edu.cn/~jypan/Teaching/NA/2021/

相关文章:

线性代数之QR分解和SVD分解

文章目录 1.QR分解Schmidt正交化Householder变换QR分解的应用 2. 求矩阵特征值、特征向量的基本方法3.SVD分解SVD分解的应用 参考文献 1.QR分解 矩阵的正交分解又称为QR分解,是将矩阵分解为一个正交矩阵Q和一个上三角矩阵R的乘积的形式。 任意实数方阵A&#xff0c…...

在虚拟机安装mysql数据库

一、安装步骤(下载包-传输软件包-安装包-启用仓库-使用yum安装服务器) 1、要在mysql官网下载yum仓库包 2、下载好rpm包后,将其通过xftp传输到root目录下 3、使用sudo yum install yum的仓库名(sudo yum install mysql-community-…...

详解QT插件机制

Qt插件机制允许将功能模块化为独立的插件,从而在运行时动态加载和卸载这些模块。这种机制对于扩展应用程序、插件架构和动态功能添加非常有用 插件机制 插件的基本概念 插件: 在Qt中,插件是实现特定接口的动态库(DLL或so文件),这些接口由Qt插件框架定义。插件可以被应用程序…...

【Hot100】LeetCode—32. 最长有效括号

目录 1- 思路题目识别动态规划 2- 实现⭐32. 最长有效括号——题解思路 3- ACM 实现 原题链接:32. 最长有效括号 1- 思路 题目识别 识别1 :给定一个字符串 s ,求解 s 中的最长有效括号 动态规划 动态规划五部曲 递推公式难如果遇到了 s.…...

力扣198-打家劫舍

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的…...

Python 入门教程(4)数据类型 | 4.1、数据类型

文章目录 一、数据类型1、弱类型与强类型2、变量没有类型,数据有类型3、不可变类型和可变类型 前言: Python 是一种高级编程语言,以其简洁的语法、丰富的内置库和动态类型系统而闻名。在 Python 中,数据类型是编程的基础&#xff…...

如何进行DAP-seq的数据挖掘,筛选验证位点

从样本准备到寄送公司,每一天都在“祈祷”有个心仪的分析结果,终于在这天随着邮件提示音的响起,收到了分析结果...... 分析前工作 爱基在进行数据分析之前,会有两次质控报告反馈给老师们。第一个,基因组DNA的提取质控…...

学习大数据DAY56 业务理解和第一次接入

作业1 1 了解行业名词 ERP CRM OA MES WMS RPA SAAS 了解每个系统的功能和应用 ERP 系统,(Enterprise Resource Planning,企业资源计划系统):ERP 系统 是一种用于管理企业各类资源的软件系统,包括生产管理…...

java线程池编程示例

程序功能 这段代码展示了如何使用 Java 线程池 来并发执行多个任务。通过创建一个固定大小为 3 的线程池,程序提交了 5 个任务,并让线程池中的线程并发处理这些任务。每个任务模拟了一个耗时操作,最后程序等待所有任务完成后关闭线程池。 …...

02 基于STM32的按键控制继电器驱动电机

本专栏所有源资料都免费获取,没有任何隐形消费。 注意事项:STM32仿真会存在各种各样BUG,且尽量按照同样仿真版本使用。本专栏所有的仿真都采用PROTEUS8.15。 本文已经配置好STM32F103C8T6系列,在PROTUES仿真里,32单片…...

网页本地存储

网页本地存储 <html> <script>//添加数据function add(){var text;textdocument.getElementById(text).value;indexlocalStorage.length1;localStorage.setItem(index,text);}//显示localStorage所有内容function showall(){storagelocalStorage;var length stor…...

SpringBoot2:web开发常用功能实现及原理解析-@ControllerAdvice实现全局异常统一处理

文章目录 前言1、工程包结构2、POM依赖3、Java代码 前言 本篇主要针对前后端分离的项目&#xff0c;做的一个统一响应包装、统一异常捕获处理。 在Spring里&#xff0c;我们可以使用ControllerAdvice来声明一些关于controller的全局性的东西&#xff0c;其用法主要有以下三点…...

DockerLinux安装DockerDocker基础

Linux软件安装 yum命令安装 通过yum命令安装软件,是直接把软件安装到Linux系统中 安装和卸载都比较麻烦,因为软件和系统是强关联的 Docker docker是一种容器技术,可以解决软件和系统强关联关系,使得软件的安装和卸载更方便,它可以将我们的应用以及依赖进行打包,制作出一个镜…...

macOS平台TensorFlow环境安装

1.安装xtarfile pip3 install xtarfile 2.安装 pip3 install matplotlib 3.安装jieba pip3 install jieba 4.安装 pip3 install tensorflow tensorflow安装成功...

全网最全 线程邮箱

线程邮箱的优缺点 优点 避免资源竞争&#xff1a;线程邮箱通过队列和互斥锁来管理线程间的通信&#xff0c;确保只有持有锁的线程可以访问和修改队列中的数据&#xff0c;从而避免了多个线程同时尝试修改同一资源时可能出现的竞争条件&#xff0c;减少了因资源竞争导致的死锁…...

Linux下rpm方式部署mysql(国产化生产环境无联网服务器部署实操)

请放心观看&#xff0c;已在正式环境部署验证&#xff0c;流程无问题&#xff01; 所用系统为国产化麒麟银河 aarch64系统&#xff0c;部署时间2024年9月份&#xff01; #查看服务器信息 #涉及生产服务器&#xff0c;所以输出信息隐藏了一部分[rootecs-xxxxx hdata]# uname -…...

【Python机器学习】NLP信息提取——正则模式

我们需要一种模式匹配算法&#xff0c;该算法可以识别与模式匹配的字符序列或词序列&#xff0c;以便从较长的文本字符串中“提取”它们。构建这种模式匹配算法的简单方法是在Python中&#xff0c;使用一系列if/else语句在字符串的逐个位置查找该符号&#xff08;单词或字符&am…...

opc服务器与opc服务器如何通讯

OPC&#xff08;OLE for Process Control&#xff0c;即过程控制对象链接&#xff09;是一种工业自动化领域常用的通讯协议&#xff0c;它提供了一种标准化的方式&#xff0c;使得不同厂家的设备可以互相通讯。OPC服务器是运行在计算机上的软件程序&#xff0c;用于接收和处理来…...

指针 (六)

OK&#xff0c;书接上回&#xff0c;咱们继续&#xff1a; 一 . 函数指针变量 &#xff08;1&#xff09;函数指针变量的创建 首先我们得明白&#xff0c;什么是函数指针变量呢&#xff1f;从我们之前学习过的整型指针&#xff0c;数组指针的相关知识当中&#xff0c;通过类…...

Linux下vscode配置C++和python编译调试环境

Visual Studio Code (简称 VSCode) 是由微软开发的一款免费、开源、跨平台的代码编辑器。它支持 Windows、macOS 和 Linux 操作系统&#xff0c;并且内置对多种编程语言的支持&#xff0c;包括但不限于 C/C、Python、JavaScript、TypeScript、Java 和 Go 等。VSCode 主要用于编…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者&#xff1a;吴岐诗&#xff0c;杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言&#xff1a;融合数据湖与数仓的创新之路 在数字金融时代&#xff0c;数据已成为金融机构的核心竞争力。杭银消费金…...

android13 app的触摸问题定位分析流程

一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...

Python网页自动化Selenium中文文档

1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API&#xff0c;让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API&#xff0c;你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...