特征值分解与奇异值分解原理与计算

2023-10-31

(一)特征值

如果一个非零向量v是方阵A的特征向量,将一定可以表示成下面形式,而λ是特征向量v对应的特征值:

特征值分解是将一个矩阵分解成下面的形式:

其中Q是这个矩阵A的特征向量组成的矩阵,Σ是一个对角阵,每一个对角线上的元素就是一个特征值。一个矩阵的一组特征向量是一组正交向量。

【练习题】求解矩阵A的特征值与特征向量。

方阵的特征值表示什么含义呢,我们通过一组向量图表示。初始状态下,i(红色)和j(蓝色)表示二维坐标平面下的两个单位向量,v是空间上任意一条向量(绿色)

用方阵A左乘向量v之后,得到一个新的向量Av(紫色)

接下来,在二维空间上,手动移动向量v,移动到某一时刻,向量v(绿色)与向量Av(紫色)发生了重合,且Av的向量摸大于v的模(下图左),再继续移动v,又会发现在v与Av的另一个重合时刻,但此时|Av|<|v|(下图右)

这两个时刻,v与Av发生了重合,即两个向量方向一致,大小差了一个lambda倍,也就是上面所提到的

这里的lambda就是特征值(两个特征值,一个大于1,一个小于1),这两个时刻对应的v向量,就是矩阵A的特征向量

特征值存在以下几个性质:

设n阶矩阵A=(aij) 的特征值为λ1,λ2,...λn
(1)λ1+λ2+...+λn = a11+ a22+…+ann,trail(A)=特征值的和。
(2)λ1λ2… λn =|A|,特征值的乘积=A的行列式

若λ是方阵A的特征值
(1)λ^2是A^2的特征值
(2)A可逆时,λ^(-1)是A^(-1)的特征值
(3)kλ是kA的特征值,k∈R。
 

设方阵A的m个特征值λ1,λ2 ,...,λm,与之对应的特征向量是p1,p2,...,pm,若λ1,λ2 ,...,λm各不相等,则p1,p2 ,...,pm线性无关。(不同特征值对应的特征向量线性无关),实对称矩阵不同特征值的特征向量相互正交。

(二)特征值分解

【注】因为矩阵M是对称的,所以这个变换是一个对x,y轴的方向一个拉伸变换

当M非对称时,在平面上对一个轴进行的拉伸变换(蓝色箭头所示)。如果要描述好一个变换M,那就描述好这个变换主要的变化方向。

分解得到的Σ矩阵是一个对角阵,若Σ里面的特征值是由大到小排列的,这些特征值所对应的特征向量就是描述这个矩阵变化方向(从主要变化到次要变化排列)

当矩阵是高维的情况下,那么这个矩阵A就是高维空间下的一个线性变换,这个变换也同样有很多的变换方向,通过特征值分解得到的前N个特征向量,对应了矩阵最主要的N个变化方向。我们利用这前N个变化方向,就可以近似这个矩阵(变换)。

也就是说:提取这个矩阵最重要的特征。

特征值分解的局限:变换的矩阵必须是方阵!!

(三)奇异值与奇异值分解

在现实的世界中,遇到的大部分矩阵都不是方阵,比如说有N个学生,每个学生有M科成绩;有N个用户,每个用户购买了M件商品,这样形成的一个N * M的长方形矩阵。

怎样描述这样普通的矩阵的重要特征?

可以使用奇异值分解来解决

A是一个N * M的矩阵,那么得到的U是一个N * N的方阵(里面的向量是正交的,称为左奇异向量),Σ是一个N * M的矩阵(除了对角线的元素都是0,对角线上的元素称为奇异值),VT是一个N * N的矩阵(里面的向量也是正交的,称为右奇异向量)

               

右奇异向量求解:矩阵A左乘转置AT,将会得到一个方阵(m*m),我们用这个方阵求特征值和特征向量,得到的vi就是右奇异向量

根据上面得到的特征值λ,计算奇异值σ,以及左奇异向量u。

【练习题】 求解A的奇异值

可以使用Python编程实现,numpy包中存有直接计算奇异值的方法np.linalg.svd(matrix),实例如下:

奇异值σ与特征值类似,矩阵Σ中也是从大到小排列,而且σ的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上了。也就是说,我们也可以用前r大的奇异值来近似描述矩阵,这里定义一下部分奇异值分解,这里r是一个远小于m、n的数。

右边的三个矩阵相乘的结果将会是一个接近于A的矩阵。而这三个矩阵的“面积”之和要远小于原始的矩阵A,可以压缩空间来表示原矩阵A,只存储三个矩阵U、Σ、V即可。


作者:白衣非少年
链接:https://www.imooc.com/article/details/id/31164
来源:慕课网

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

特征值分解与奇异值分解原理与计算 的相关文章

  • 空域图像增强-图像灰度变换

    1 图像灰度变换 自选一张图片 完成以下图像处理 显示图像的灰度直方图 直方图均衡化 对比变化前后的图像和灰度直方图 对图像进行线性灰度变换 对某部分灰度值进行扩展 压缩其它灰度值区域 对比变化前后的图像和灰度直方图 图像增强 图像不清晰
  • CentOS7下安装helm

    1 先下载2 11 0版本 记住就下这个版本 其他版本要确认你有相应的镜像源 否则装不上 wget https get helm sh helm v2 11 0 linux amd64 tar gz tar xf helm v2 15 2
  • mybatis以及mybatisplus批量插入问题

    1 思路分析 批量插入是我们日常开放经常会使用到的场景 一般情况下我们也会有两种方案进行实施 如下所示 方案一 就是用 for 循环循环插入 优点 JDBC 中的 PreparedStatement 有预编译功能 预编译之后会缓存起来 后面

随机推荐

  • 嵌入式驱动那年的笔试面试-有干货

    面试简述 从9月份开始即吹响了找工作的号角 众说纷纭 有老师说9月份的没有必要 因为面向学历招聘 很抱歉啊 博主第一学历太渣了 研究生学历还可以把 有学生也因为数次的碰壁而退居幕后 准备这十月份的再次重来 但是残酷的现实证明 没有经过9月分
  • nms-python和C

    代码 import numpy as np def nms bboxes iou threshold x1 bboxes 0 y1 bboxes 1 x2 bboxes 2 y2 bboxes 3 score bboxes 4 area x
  • 【PHP小皮】下载高版本php8.1.0

    博主介绍 爱打csgo 有空来go一把 目录 前言 一 到官网下载PHP8 1 0版本 二 到小皮下载PHP 前言 提示 今天的内容是php小皮下载高版本 来兼容laravel框架 一 到官网下载PHP8 1 0版本 官网下载链接 PHP
  • Python:要求编写函数fn(a,n) 求a+aa+aaa++⋯+aa⋯aa(n个a)之和

    题目 使用函数求特殊a串数列和 给定两个均不超过9的正整数a和n 要求编写函数fn a n 求a aa aaa aa aa n个a 之和 fn须返回的是数列和 思路 1 先输入a n的值 2 编写函数 使用for循环再 0 n 之间遍历 构
  • List (单链表17个函数讲解)

    链表时一种常用的数据结构 是通过 链 来建立起数据元素之间的逻辑关系 这种用链接方式储存的线性表简称链表 Link List 一 链表与顺序表的对比 在接触链表之前大家想必已经了解过了顺序表的储存结构方式 顺序表与链表的不同之处如下 1 顺
  • js下手机号隐藏中间四位

    var phone d phone var myphone phone substr 3 4 var lphone phone replace myphone alert lphone
  • linux中每次启动后mysql中的mysql表就消失了 (mysql没有mysql表)

    1 这可能是因为mysql数据库的user表里 存在用户名为空的账户即匿名账户 导致登录的时候是虽然用的是root 但实际是匿名登录的 2 解决方案一 2 1 关闭mysql service mysqld stop 2 2 屏蔽权限 mys
  • 局域网内共享文件夹

    1 首先新建一个文件夹 2 右键 gt 属性 gt 共享 3 添加项加everyone gt 设置 权限级别 为 读取 写入 gt 共享 4 文件属性设置完毕 然后在网络中设置 右下角网络右键 5 选择 gt 网络和Internet gt
  • 算法训练营第四十天(9.1)

    Leecode 300 最长递增子序列 题目地址 力扣 LeetCode 官网 全球极客挚爱的技术成长平台 题目类型 最长子序列 class Solution public int lengthOfLIS vector
  • 是什么引起数据库响应超时?

    一 问题背景 一个核心业务数据库部署在AWS的EC2实例上 在业务活动期间发生了性能抖动导致业务超时 下面记录一下问题排查的流程 二 问题分析 1 监控指标分析 发生问题后 第一时间肯定要看监控 首先分析服务器基础监控 服务器的Load1使
  • [工业互联-9]:EtherCAT(以太网控制自动化技术)+TwinCAT 在生产自动化控制中的应用 、

    前言 EtherCAT 以太网控制自动化技术 是一个开放架构 以以太网为基础的现场总线系统 其名称的CAT为控制自动化技术 Control Automation Technology 字首的缩写 EtherCAT是确定性的工业以太网 最早是
  • 基于身高与体重数据集与Auto数据集分别进行线性回归和Lasso回归(代码逐行讲解,超细节)

    身高体重 还是先导入要用的包 没下载的要先去下载依赖包 import pandas as pd import statsmodels api as sm from plotly offline import init notebook mo
  • (3)原神角色数据分析-3

    绘图类 在名为 WRITEPHOT py 的文件中 定义如下绘图方式 则在主页面 app py 文件中 可通过如下方式调用 from WRITEPHOTO import WriteScatter WriteFunnel WriteBarDa
  • SpringAop_2通知(新手)和无法找到元素 'aop:aspectj-autoproxy' 的声明

    AspectJ java社区里最完善最流行的AOP框架 在spring2 0以上的版本中 可以使用基于AspectJ注解或基于XML配置的AOP 其实Spring本身提供了aop框架 但是AspectJ更方便 在Spring中启用Aspec
  • UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xac in position 14: illegal multibyte sequence 解决

    这个错误是因为Python默认使用的编码方式 GBK 无法正确解码包含非ASCII字符的文件 可以尝试以下解决方案 1 修改文件编码 将文件的编码方式改为UTF 8或者其他支持中文的编码方式 2 修改代码 在打开文件时指定文件的编码方式 例
  • 云原生之部署wordpress博客及设置圣诞主题风格

    2022年圣诞节到来啦 很高兴这次我们又能一起度过 CSDN诚邀各位技术er分享关于圣诞节的各种技术创意 展现你与众不同的精彩 参与本次投稿即可获得 话题达人 勋章 圣诞快乐 定制勋章 1年1次 错过要等下一年喔 云原生之部署wordpre
  • MongoDB中空间数据的存储和操作

    本文使用官方C Driver 实现在MongoDB中存储 查询空间数据 矢量 空间数据的存储 本例中 从一个矢量文件 shapefile格式 中读取矢量要素空间信息以及属性表 并写入到MongoDB中去 其中读取shapefile文件以及将
  • DeepFake——实际操作

    文章目录 文件结构 执行步骤 效果优化 总结 切图层面 extract层面 select 层面 原始数据优化 执行过程优化 convert 其他优化idea 辅助知识 实验记录 环境配置 环境配置 数据 环境配置 第三方库 环境配置 操作工
  • UE5 C++ Rider 编程指南 0.安装和配置

    目录 0 前言 1 Rider特性 1 1 快速跨平台C 支持 1 2 连接代码和UE编辑器 1 3 协助反射机制和RPC 1 4 代码分析和命名风格 1 5 调试器 1 6 单元测试 2 安装 3 插件 3 1 Dysh Unreal S
  • 特征值分解与奇异值分解原理与计算

    一 特征值 如果一个非零向量v是方阵A的特征向量 将一定可以表示成下面形式 而 是特征向量v对应的特征值 特征值分解是将一个矩阵分解成下面的形式 其中Q是这个矩阵A的特征向量组成的矩阵 是一个对角阵 每一个对角线上的元素就是一个特征值 一个