码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 矩阵分析与应用(21)


    学习来源:《矩阵分析与应用》 张贤达 清华大学出版社

    奇异值分解

    1. 特征值分解(EVD)

            对于一个对称矩阵来说,它能相似对角化,且对称矩阵的不同特征值对应的特征向量两两正交。设矩阵 A_{m\times m} 为满秩对称矩阵,有 m 个不同的特征值,为 \lambda_i,\quad i=1,2,\cdots ,m ,特征值对应的特征向量为 x_i ,\quad i=1,2,\cdots ,m ,则

    Ax_1=\lambda_1x_1

    Ax_2=\lambda_2x_2

    \cdots

    Ax_m=\lambda_mx_m

    所以有

    AU=U\Lambda

    其中,

    U=[x_1,x_2,\cdots ,x_m]

    \Lambda =\begin{bmatrix} \lambda_1 & \cdots & 0\\ \vdots & \ddots &\vdots \\ 0& \cdots & \lambda_m \end{bmatrix}

    由于 A 为对称矩阵,所以 A 的特征向量两两正交,即 U 为正交矩阵,因此 U^{-1}=U^T 。

    所以可以得到矩阵 A 的特征值分解:

    A=U\Lambda U^{-1}=U\Lambda U^T

    2. 奇异值分解

    回顾一下矩阵奇异值分解的定义:

            设 A\in R_r^{m\times n} ,则存在 m 阶正交矩阵 U 和 n  阶正交矩阵 V 使得

    A=U\Sigma V^T,\quad \Sigma=\begin{bmatrix} \Sigma_1 &O \\ O& O \end{bmatrix}

    其中,\Sigma_1=diag(\sigma_1,\sigma_2,\cdots ,\sigma_r) ,而 \sigma_i(i=1,2,\cdots ,r) 为 A 的非零奇异值。

    1)U 矩阵求解

            由 A=U\Sigma V^T , A^T=V\Sigma U^T 可得 AA^T=U\Sigma^2 U^T 。

            因为 AA^T 是一个 m\times m 方阵,可以进行特征值分解,因此 \sigma_i=\sqrt{\lambda_i} ,U 由 AA^T 的特征值对应的特征向量组成。

    2)V 矩阵求解

            由 A=U\Sigma V^T , A^T=V\Sigma U^T 可得 A^TA=V\Sigma^2 V^T 。

            A^TA 是 n\times n 方阵,可由特征值分解知道 V 由 A^TA 的特征值对应的特征向量组成。

    3. 例

            求解矩阵 A=\begin{bmatrix} 2 &0 \\ 0 & 2\\ 1 & 1 \end{bmatrix} 的奇异值分解。

    1)AA^T=\begin{bmatrix} 2 & 0\\ 0 &2 \\ 1 &1 \end{bmatrix}\begin{bmatrix} 2 & 0&1 \\ 0& 2 & 1 \end{bmatrix}=\begin{bmatrix} 4 &0 &2 \\ 0& 4&2 \\ 2 & 2 & 2 \end{bmatrix} 

            特征值为 \lambda_1=6,\quad \lambda_2=4 。

            \lambda_1 对应的特征向量为 x_1=[\frac{1}{\sqrt{3}},\frac{1}{\sqrt{3}},\frac{1}{\sqrt{3}}]^T ,\lambda_2 对应的特征向量为 x_2=[\frac{1}{\sqrt{2}},-\frac{1}{\sqrt{2}},0]^T

    因此 U=\begin{bmatrix}\frac{1}{\sqrt{3}} &\frac{1}{\sqrt{2}} \\\frac{1}{\sqrt{3}} &-\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{3}}& 0\end{bmatrix} ,且 \Sigma=\begin{bmatrix} \sqrt{6} &0 \\ 0 & 2 \end{bmatrix} 。

    2)A^TA=\begin{bmatrix} 2 & 0 &1 \\ 0 &2 & 1 \end{bmatrix}\begin{bmatrix} 2 &0 \\ 0 &2 \\ 1 & 1 \end{bmatrix}=\begin{bmatrix} 5 &1 \\ 1 & 5 \end{bmatrix}

            \lambda_1 对应的特征向量为 y_1=[\frac{1}{\sqrt{2}},\frac{1}{\sqrt{2}}]^T ,\lambda_2 对应的特征向量为 y_2=[-\frac{1}{\sqrt{2}},\frac{1}{\sqrt{2}}]^T

    因此

     V=\begin{bmatrix} \frac{1}{\sqrt{2}} &\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{bmatrix} 。

    3)矩阵 A 的奇异值分解为

    A=U\Sigma V^T=\begin{bmatrix} \frac{1}{\sqrt{3}} &\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{3}} &-\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{3}}& 0 \end{bmatrix}\begin{bmatrix} \sqrt{6} &0 \\ 0 & 2 \end{bmatrix}\begin{bmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}}\\ \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{bmatrix}

  • 相关阅读:
    通付盾Web3专题 | KYT/AML:Web3合规展业的必要条件
    创建一个基本的win32窗口
    rm -rf 真是删库跑路的一把好手
    Synchronized
    MCE | HIV 衣壳蛋白有望成为 HIV 治疗新靶标
    构造函数可以调用虚函数吗,析构函数可以调用虚函数吗(1)
    【NLP】LSTM 唐诗生成器 pytorch 版
    LeetCode: 2. 两数相加
    SpringBoot 实体参数(用于请求参数比较多时使用)
    linux 部署elasticsearch 权限不足 报错问题
  • 原文地址:https://blog.csdn.net/qq_40206924/article/details/126233861
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号