当前位置: 首页 > 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 主要用于编…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)

macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 &#x1f37a; 最新版brew安装慢到怀疑人生&#xff1f;别怕&#xff0c;教你轻松起飞&#xff01; 最近Homebrew更新至最新版&#xff0c;每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

Vue3中的computer和watch

computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...

ArcGIS Pro+ArcGIS给你的地图加上北回归线!

今天来看ArcGIS Pro和ArcGIS中如何给制作的中国地图或者其他大范围地图加上北回归线。 我们将在ArcGIS Pro和ArcGIS中一同介绍。 1 ArcGIS Pro中设置北回归线 1、在ArcGIS Pro中初步设置好经纬格网等&#xff0c;设置经线、纬线都以10间隔显示。 2、需要插入背会归线&#xf…...