矩阵的奇异值是矩阵分析中一个非常重要的概念,尤其是在数值线性代数、数据降维(如PCA)、图像处理等领域有着广泛应用。奇异值分解(SVD, Singular Value Decomposition)是一种强大的工具,可以将任意形状的矩阵分解成三个特定矩阵的乘积,并从中提取出矩阵的奇异值。


📌 奇异值分解(SVD)

对于任意 m × n m \times n m×n 的实矩阵 A A A,其奇异值分解形式为:

A = U Σ V T A = U \Sigma V^T A=UΣVT

其中:

  • U U U 是一个 m × m m \times m m×m 的正交矩阵(列向量是 A A T A A^T AAT 的特征向量)
  • Σ \Sigma Σ 是一个 m × n m \times n m×n 的对角矩阵,对角线上的元素称为奇异值(singular values),记作 σ 1 , σ 2 , . . . , σ r \sigma_1, \sigma_2, ..., \sigma_r σ1,σ2,...,σr,它们按照从大到小排列( r r r 是矩阵 A A A 的秩)
  • V V V 是一个 n × n n \times n n×n 的正交矩阵(列向量是 A T A A^T A ATA 的特征向量)

🔍 奇异值的定义与性质

✅ 定义

奇异值实际上是矩阵 A T A A^T A ATA 或者 A A T A A^T AAT 的特征值的平方根。具体来说,如果 λ i \lambda_i λi A T A A^T A ATA 的第 i i i 个特征值,则对应的奇异值 σ i = λ i \sigma_i = \sqrt{\lambda_i} σi=λi

✅ 性质

  1. 非负性:所有奇异值都是非负的。
  2. 排序:通常我们将奇异值按从大到小排列。
  3. 数量:最多有 min ⁡ ( m , n ) \min(m,n) min(m,n) 个奇异值。
  4. 几何意义:在几何上,奇异值可以理解为矩阵变换后空间被拉伸的最大程度。最大的奇异值表示主方向上的最大拉伸比例。

🧮 计算步骤

给定一个矩阵 A A A,计算其奇异值的一般步骤如下:

  1. 计算 A T A A^T A ATA A A T A A^T AAT
  2. 求解 A T A A^T A ATA 的特征值和特征向量(这些特征向量构成 V V V
  3. 求解 A A T A A^T AAT 的特征值和特征向量(这些特征向量构成 U U U
  4. 奇异值就是 A T A A^T A ATA 特征值的平方根

然而,在实际应用中,我们通常直接使用数值计算库来完成这一过程,例如 Python 中的 NumPy 库提供了 np.linalg.svd() 函数可以直接进行奇异值分解。


💻 Python 示例

import numpy as np# 创建一个示例矩阵
A = np.array([[1, 2], [3, 4]])# 进行奇异值分解
U, S, VT = np.linalg.svd(A)print("U matrix:\n", U)
print("Singular values:", S)
print("VT matrix:\n", VT)

输出可能类似于:

U matrix:[[-0.40455358 -0.9145143 ][-0.9145143   0.40455358]]
Singular values: [5.4649857  0.36596619]
VT matrix:[[-0.57604844 -0.81741556][-0.81741556  0.57604844]]

在这个例子中,S 数组包含了矩阵 A A A 的奇异值 [5.4649857, 0.36596619]


📈 奇异值的应用

✅ 数据压缩与降维

通过保留前 k k k 个最大的奇异值及其对应的奇异向量,我们可以近似原矩阵,从而实现数据压缩或降维。这种方法常用于图像压缩、主成分分析(PCA)等场景。

✅ 矩阵近似

利用奇异值分解,我们可以构建原矩阵的最佳低秩逼近。例如,选择前 k k k 个奇异值及相应的奇异向量来重构矩阵,这样可以在减少存储空间的同时保持大部分信息。

✅ 条件数计算

条件数可以通过最大奇异值除以最小奇异值来计算,用于评估矩阵求逆时的稳定性。

✅ 解决线性方程组

在某些情况下,SVD 可以用来解决病态线性方程组的问题,特别是当矩阵接近奇异时。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构复习4

第四章 串 一些面试题 12. 介绍一下KMP算法。★★★ KMP算法是一种高效的字符串匹配算法,用于在一个文本串中查找一个模式串的出现位置。KMP算法通过利用模式串自身的信息,在匹配过程中避免不必要的回溯,从而提高匹配效率。 KMP算法的核心思…

【八股消消乐】消息队列优化—消息有序

😊你好,我是小航,一个正在变秃、变强的文艺倾年。 🔔本专栏《八股消消乐》旨在记录个人所背的八股文,包括Java/Go开发、Vue开发、系统架构、大模型开发、具身智能、机器学习、深度学习、力扣算法等相关知识点&#xff…

2D写实交互数字人如何重塑服务体验?

在数字化浪潮席卷全球的当下,人机交互模式正经历着前所未有的变革。从早期的文本命令行界面,到图形用户界面(GUI)的普及,再到如今语音交互、手势识别等多模态交互技术的兴起,我们与机器之间的沟通方式愈发自…

CI/CD GitHub Actions配置流程

腾讯云服务器宝塔FinalShellgithup 1.在云服务器上创建SSH秘钥对,下载秘钥到本地 2.在服务器中绑定秘钥对(绑定后,服务器不能将不允许密码登录)绑定前先关机服务器,绑定后再开启服务器 3.FinalShell改为公钥登录&am…

液态交互效果网页开发--源自鸿蒙5以及iOS26的灵感

首先先来看看最终展示效果 当鼠标靠近“开始探索”的按钮的时候,按钮放大并有微弱光效 鼠标靠近之前会给视窗添加一层接近背景的朦胧感,当鼠标放在视窗上朦胧感消失 技术不复杂,这个网页主要是使用了以下关键技术: HTML5 语义化标…

PYTHON从入门到实践9-类和实例

# 【1】面向对象编程 class Student(object):# 可以帮属性值绑定到对象上,self相当于JAVA的thisdef __init__(self, name, age):self.name nameself.age agedef speak(self):print(self.name, 说:老师好)if __name__ __main__:new_student1 Student(…

matplotlib 绘制极坐标图

1、功能介绍: 使用了 matplotlib 库来创建一个极坐标图 2、代码部分: import matplotlib.pyplot as plt import numpy as np# 设置中文字体 plt.rcParams[font.sans-serif] [SimHei] # 选择黑体字体,支持中文 plt.rcParams[axes.unicode…

Dask心得与笔记【2】

文章目录 计算参考文献 计算 数组切片如下 import numpy as np import dask.array as dadata np.arange(1000).reshape(10, 100) a da.from_array(data, chunks(5, 20)) print(a[:,0:3])切片结果是前3列 dask.array<getitem, shape(10, 3), dtypeint64, chunksize(5, 3…

数据采集合规安全是品牌控价基石

在品牌控价与数据分析工作中&#xff0c;数据采集是不可或缺的前置环节。当前主流的数据采集方式为爬虫采集&#xff0c;这种依托机器自动化操作的模式&#xff0c;取代了传统人工逐一浏览、复制数据的繁琐流程&#xff0c;大幅提升了效率。采集后的原始数据&#xff0c;会由系…

llm推理赋能action policy的探索

兄弟&#xff0c;你这个问题非常到位&#xff0c;咱分两个问题详细讲透&#xff1a; &#x1f680; (1) HybridVLA怎么引入更好的推理能力赋能Diffusion Action&#xff1f; HybridVLA 目前设计的亮点&#xff1a; Diffusion Token 与 LLM 自回归结合 但推理能力没有被显式结…

spring04-管理bean(创建、注入):基于注解

一、什么是注解&#xff1f; &#xff08;1&#xff09;注解的定义 注解&#xff08;Annotation&#xff09;是 Java 代码中的一种特殊标记&#xff0c;用于在程序运行或编译时提供元信息。 格式&#xff1a; 注解名(属性名属性值, 属性名属性值...)&#xff08;2&#xff…

docker安装elasticsearch和kibana

elasticsearch版本和kibana版本需保持一致。这里我使用的都是8.18.2 安装elasticsearch docker-compose.yml networks:es-net: external: true services:elasticsearch:container_name: es01deploy:resources:limits:cpus: 0memory: 0environment:- discovery.typesingle-no…

Python爬虫实战:研究sanitize库相关技术

1. 引言 1.1 研究背景与意义 在当今数字化时代,互联网已成为人们获取信息、交流互动的重要平台。随着 Web 2.0 技术的发展,用户生成内容 (UGC)、社交媒体嵌入、第三方插件等功能极大丰富了网页的内容和交互性,但也带来了严峻的安全挑战。根据 Web 应用安全联盟 (WAS) 的统…

c++ 学习(二、结构体)

目录 一、结构体与const 二、结构体与class的区别 参考链接&#xff1a;69 结构体-结构体中const使用场景_哔哩哔哩_bilibili 一、结构体与const 调用函数的时候&#xff0c;希望这个结构体是可读而不可写的时候&#xff0c;传指针&#xff0c;使用const修饰&#xff0c;方式…

机器学习开篇:算法分类与开发流程

种一棵树最好的时间是十年前&#xff0c;其次是现在。 一、机器学习算法分类 机器学习&#xff08;ML&#xff0c;Meachine Learning&#xff09;是人工智能的核心领域&#xff0c;让计算机从数据中学习规律并做出预测&#xff0c;本文简单介绍机器学习的算法分类和开发流程。…

使用pyflink编写demo并将任务提交到yarn集群

目录 背景 一、pyflink安装 二、编写demo程序 三、提交yarn前准备 四、提交任务 五、踩坑记录 1、提交任务时客户端出现语法错误 2、提交任务时客户端出现lzma包找不到 3、提交任务时客户端出现“org.apache.flink.streaming.api.utils.PythonTypeUtils.getCollectionIn…

Vue 3 最基础核心知识详解

Vue3作为现代前端主流框架&#xff0c;是前后端开发者都应当掌握的核心技能。本篇文章将带你了解vue3的基础核心知识&#xff0c;适合学习与复习 一、Vue 3 应用创建 1.1 创建Vue应用的基本步骤 // main.js import { createApp } from vue // 1. 导入createApp函数 import …

Bootstrap 5学习教程,从入门到精通,Bootstrap 5 Flex 布局语法知识点及案例(27)

Bootstrap 5 Flex 布局语法知识点及案例 Bootstrap 5 提供了强大的 Flexbox 工具集&#xff0c;让布局变得更加简单灵活。以下是 Bootstrap 5 Flex 布局的完整知识点和详细案例代码。 一、Flex 布局基础语法 1. 启用 Flex 布局 <div class"d-flex">我是一个…

HarmonyOS 5智能单词应用开发:记忆卡(附:源码

一、应用概述与核心价值 在语言学习过程中&#xff0c;单词记忆是基础也是难点。本文介绍的智能单词记忆卡应用通过创新的交互设计和科学的学习模式&#xff0c;帮助用户高效记忆单词。应用采用ArkUI框架开发&#xff0c;主要特点包括&#xff1a; 双模式学习系统&#xff1a…

LeetCode--38.外观数列

前言&#xff1a;之前我不是说&#xff0c;我后续可能会讲一下递归吗&#xff0c;现在它来了&#xff0c;这道题会用到回溯的方法&#xff0c;并且比较纯粹哦 解题思路&#xff1a; 1.获取信息&#xff1a;&#xff08;下面这些信息差不多是力扣上面的题目信息了&#xff0c;所…