《机器学习数学基础》补充资料:矩阵的LU分解
本文是对《机器学习数学基础》第2章2.3.3节矩阵LU分解的拓展。

判断是否可LU分解
并非所有矩阵都可以实现LU分解。
定理1: 若 n n n 阶可逆矩阵 A \pmb{A} A 可以进行LU分解,则 A \pmb{A} A 的 k k k 阶顺序主子阵(leading principal submatrix) A k \pmb{A}_k Ak 都是可逆的 [ 1 ] ^{[1]} [1]。
证明
将 A = L U \pmb{A}=\pmb{LU} A=LU 用分块矩阵表示:
A = L U = [ L 11 0 L 21 L 22 ] [ U 11 U 12 0 U 22 ] = [ L 11 U 11 L 11 U 12 L 21 U 11 L 21 U 12 + L 22 U 22 ] \pmb{A}=\pmb{LU}=\begin{bmatrix}\pmb{L}_{11}&0\\\pmb{L}_{21}&\pmb{L}_{22}\end{bmatrix}\begin{bmatrix}\pmb{U}_{11}&\pmb{U}_{12}\\0&\pmb{U}_{22}\end{bmatrix}=\begin{bmatrix}\pmb{L}_{11}\pmb{U}_{11}&\pmb{L}_{11}\pmb{U}_{12}\\\pmb{L}_{21}\pmb{U}_{11}&\pmb{L}_{21}\pmb{U}_{12}+\pmb{L}_{22}\pmb{U}_{22}\end{bmatrix} A=LU=[L11L210L22][U110U12U22]=[L11U11L21U11L11U12L21U12+L22U22]
其中 L 11 、 U 11 \pmb{L}_{11}、\pmb{U}_{11} L11、U11 是 k × k k\times k k×k 分块矩阵。
因为 L \pmb{L} L 是单位下三角矩阵,且主对角线元素都是 1 1 1 ,则其分块矩阵 L 11 \pmb{L}_{11} L11 亦为三角矩阵,且主对角线元素非零。同理, U 11 \pmb{U}_{11} U11 亦然。
所以 L 11 \pmb{L}_{11} L11 和 U 11 \pmb{U}_{11} U11 可逆,则 A k = L 11 U 11 \pmb{A}_k=\pmb{L}_{11}\pmb{U}_{11} Ak=L11U11 可以。
证毕。
例: A = [ 3 − 1 2 6 − 1 5 − 9 7 3 ] \pmb{A}=\begin{bmatrix}3&-1&2\\6&-1&5\\-9&7&3\end{bmatrix} A= 36−9−1−17253 的顺序主子阵依次为:
A 1 = [ 3 ] = [ 1 ] [ 3 ] A 2 = [ 3 − 1 6 − 1 ] = [ 1 0 2 1 ] [ 3 − 1 0 1 ] A 3 = A = L U \begin{split}\pmb{A}_1&=[3]=[1][3]\\\pmb{A}_2&=\begin{bmatrix}3&-1\\6&-1\end{bmatrix}=\begin{bmatrix}1&0\\2&1\end{bmatrix}\begin{bmatrix}3&-1\\0&1\end{bmatrix}\\\pmb{A}_3&=\pmb{A}=\pmb{LU}\end{split} A1A2A3=[3]=[1][3]=[36−1−1]=[1201][30−11]=A=LU
定理2:(定理1的逆定理)若矩阵 A \pmb{A} A 的所有顺序主子阵 A k \pmb{A}_k Ak 都可逆,则该矩阵存在LU分解。
证明(用归纳法)
k = 1 k=1 k=1 , A 1 = [ a 11 ] \pmb{A}_1=[a_{11}] A1=[a11] 可逆,则 a 11 ≠ 0 a_{11}\ne 0 a11=0 ,所以有: A 1 = [ 1 ] [ a 11 ] \pmb{A}_1=[1][a_{11}] A1=[1][a11] ,即为LU分解。
设 k k k 阶顺序主子阵 A k \pmb{A}_k Ak 可逆,且可LU分解, A k = L k U k \pmb{A}_k=\pmb{L}_k\pmb{U}_k Ak=LkUk 。
k + 1 k+1 k+1 阶顺序主子阵 A k + 1 \pmb{A}_{k+1} Ak+1 可以表示为:
A k + 1 = [ A k b c T d ] \pmb{A}_{k+1}=\begin{bmatrix}\pmb{A}_k&\pmb{b}\\\pmb{c}^T&d\end{bmatrix} Ak+1=[AkcTbd]
其中 b 、 c \pmb{b}、\pmb{c} b、c 是 k k k 维向量, d d d 是标量。则上式可以进一步写成:
A k + 1 = [ A k b c T d ] = [ L k 0 x T 1 ] [ U k y 0 T z ] \pmb{A}_{k+1}=\begin{bmatrix}\pmb{A}_k&\pmb{b}\\\pmb{c}^T&d\end{bmatrix}=\begin{bmatrix}\pmb{L}_k&\pmb{0}\\\pmb{x}^T&1\end{bmatrix}\begin{bmatrix}\pmb{U}_k&\pmb{y}\\\pmb{0}^T&z\end{bmatrix} Ak+1=[AkcTbd]=[LkxT01][Uk0Tyz]
通过对应关系,可知:
b = L k y , c T = x T U k , d = x T y + z \pmb{b}=\pmb{L}_k\pmb{y},\pmb{c}^T=\pmb{x}^T\pmb{U}_k,d=\pmb{x}^T\pmb{y}+z b=Lky,cT=xTUk,d=xTy+z
解得:
y = L k − 1 b , x T = c T U k − 1 , z = d − x T y = d − c T ( U k − 1 L k − 1 ) b = d − c T A − 1 b \pmb{y}=\pmb{L}_k^{-1}\pmb{b},\pmb{x}^T=\pmb{c}^T\pmb{U}_k^{-1},z=d-\pmb{x}^T\pmb{y}=d-\pmb{c}^T(\pmb{U}_k^{-1}\pmb{L}_k^{-1})\pmb{b}=d-\pmb{c}^T\pmb{A}^{-1}\pmb{b} y=Lk−1b,xT=cTUk−1,z=d−xTy=d−cT(Uk−1Lk−1)b=d−cTA−1b
所以: A k + 1 = L k + 1 U k + 1 \pmb{A}_{k+1}=\pmb{L}_{k+1}\pmb{U}_{k+1} Ak+1=Lk+1Uk+1
其中 L k + 1 = [ L k 0 c T U k − 1 1 ] , U k + 1 = [ U k y 0 T d − c T A − 1 b ] \pmb{L}_{k+1}=\begin{bmatrix}\pmb{L}_k&\pmb{0}\\\pmb{c}^T\pmb{U}_k^{-1}&1\end{bmatrix},\pmb{U}_{k+1}=\begin{bmatrix}\pmb{U}_k&\pmb{y}\\\pmb{0}^T&d-\pmb{c}^T\pmb{A}^{-1}\pmb{b}\end{bmatrix} Lk+1=[LkcTUk−101],Uk+1=[Uk0Tyd−cTA−1b]
因为 A k + 1 \pmb{A}_{k+1} Ak+1 和 L k + 1 \pmb{L}_{k+1} Lk+1 可逆,所以 U k + 1 \pmb{U}_{k+1} Uk+1 可逆,则 d − c T A − 1 b ≠ 0 d-\pmb{c}^T\pmb{A}^{-1}\pmb{b}\ne0 d−cTA−1b=0 。即 A k + 1 \pmb{A}_{k+1} Ak+1 可以分解为 L k + 1 U k + 1 \pmb{L}_{k+1}\pmb{U}_{k+1} Lk+1Uk+1 。
综上,定理得证。
LU分解的唯一性
对于 A = L U \pmb{A}=\pmb{LU} A=LU 而言, L \pmb{L} L 是单位下三角矩阵,主对角线元素为 1 1 1 。对于 U \pmb{U} U ,以 3 × 3 3\times 3 3×3 为例,可以转化为:
U = [ u 11 u 12 u 13 0 u 22 u 23 0 0 u 33 ] = [ u 11 0 0 0 u 22 0 0 0 u 33 ] [ 1 u 12 u 11 u 13 u 11 0 1 u 23 u 22 0 0 1 ] = D U ′ \pmb{U}=\begin{bmatrix}u_{11}&u_{12}&u_{13}\\0&u_{22}&u_{23}\\0&0&u_{33}\end{bmatrix}=\begin{bmatrix}u_{11}&0&0\\0&u_{22}&0\\0&0&u_{33}\end{bmatrix}\begin{bmatrix}1&\frac{u_{12}}{u_{11}}&\frac{u_{13}}{u_{11}}\\0&1&\frac{u_{23}}{u_{22}}\\0&0&1\end{bmatrix}=\pmb{D}\pmb{U}' U= u1100u12u220u13u23u33 = u11000u22000u33 100u11u1210u11u13u22u231 =DU′
所以: A = L D U ′ \pmb{A}=\pmb{LDU}' A=LDU′
假设 A = L 1 D 1 U 1 ′ \pmb{A}=\pmb{L}_1\pmb{D}_1\pmb{U}_1' A=L1D1U1′ , A = L 2 D 2 U 2 ′ \pmb{A}=\pmb{L}_2\pmb{D}_2\pmb{U}_2' A=L2D2U2′ ,则:
L 1 D 1 U 1 ′ = L 2 D 2 U 2 ′ \pmb{L}_1\pmb{D}_1\pmb{U}_1'=\pmb{L}_2\pmb{D}_2\pmb{U}_2' L1D1U1′=L2D2U2′
由因为 L i \pmb{L}_i Li 和 U i ′ \pmb{U}'_i Ui′ 都可逆,所以:
L 1 − 1 L 1 D 1 U 1 ′ U 2 ′ − 1 = L 1 − 1 L 2 D 2 U 2 ′ U 2 ′ − 1 D 1 U 1 ′ U 2 ′ − 1 = L 1 − 1 L 2 D 2 \begin{split}\pmb{L}_1^{-1}\pmb{L}_1\pmb{D}_1\pmb{U}_1'\pmb{U}_2'^{-1}&=\pmb{L}_1^{-1}\pmb{L}_2\pmb{D}_2\pmb{U}_2'\pmb{U}_2'^{-1}\\\pmb{D}_1\pmb{U}'_1\pmb{U}_2'^{-1}&=\pmb{L}_1^{-1}\pmb{L}_2\pmb{D}_2\end{split} L1−1L1D1U1′U2′−1D1U1′U2′−1=L1−1L2D2U2′U2′−1=L1−1L2D2
继续以 3 3 3 阶方阵为例,将上式等号左右分别用矩阵方式展开,得:
[ ( D 1 ) 11 ∗ ∗ 0 ( D 1 ) 22 ∗ 0 0 ( D 1 ) 33 ] = [ ( D 2 ) 11 0 0 ∗ ( D 2 ) 22 0 ∗ ∗ ( D 2 ) 33 ] \begin{bmatrix}(\pmb{D}_1)_{11}&*&*\\0&(\pmb{D}_1)_{22}&*\\0&0&(\pmb{D}_1)_{33}\end{bmatrix}=\begin{bmatrix}(\pmb{D}_2)_{11}&0&0\\*&(\pmb{D}_2)_{22}&0\\*&*&(\pmb{D}_2)_{33}\end{bmatrix} (D1)1100∗(D1)220∗∗(D1)33 = (D2)11∗∗0(D2)22∗00(D2)33
所以: D 1 = D 2 \pmb{D}_1=\pmb{D}_2 D1=D2 ,非主元的值 ∗ = 0 * = 0 ∗=0 ,故 U 1 ′ U 2 ′ − 1 = I , L 1 − 1 L 2 = I \pmb{U}_1'\pmb{U}_2'^{-1}=\pmb{I}, \pmb{L}_1^{-1}\pmb{L}_2=\pmb{I} U1′U2′−1=I,L1−1L2=I
所以: U 1 ′ = U 2 ′ , L 1 = L 2 \pmb{U}_1'=\pmb{U}_2',\pmb{L}_1=\pmb{L}_2 U1′=U2′,L1=L2 ,即 LU 分解具有唯一性。
证毕。
LU分解的应用
求解线性方程组
此应用在《机器学习数学基础》第2章2.3.3节中有详细介绍,请参阅。
计算行列式
利用LU分解可以手工计算 n n n 阶行列式。
∣ A ∣ = ∣ L U ∣ = ∣ L ∣ ∣ U ∣ |\pmb{A}|=|\pmb{LU}|=|\pmb{L}||\pmb{U}| ∣A∣=∣LU∣=∣L∣∣U∣
三角矩阵的行列式等于主对角元乘积。
所以: ∣ L ∣ = 1 |\pmb{L}|=1 ∣L∣=1 ,则:
∣ A ∣ = ∣ U ∣ = ∏ i = 1 n u i i |\pmb{A}|=|\pmb{U}|=\prod_{i=1}^nu_{ii} ∣A∣=∣U∣=i=1∏nuii
参考文献
[1]. https://ccjou.wordpress.com/2010/09/01/lu-分解/
相关文章:

《机器学习数学基础》补充资料:矩阵的LU分解
本文是对《机器学习数学基础》第2章2.3.3节矩阵LU分解的拓展。 判断是否可LU分解 并非所有矩阵都可以实现LU分解。 定理1: 若 n n n 阶可逆矩阵 A \pmb{A} A 可以进行LU分解,则 A \pmb{A} A 的 k k k 阶顺序主子阵(leading principal s…...
[笔记.AI]AI知识科普提纲
仅供参考 1.AI基础认知 1.1什么是什么AI 1.2核心概念 1.2.1机器学习、深度学习、神经网络 1.2.2模型:模型、大模型、模型参数 1.2.3多模态 1.2.4生成式AI & 判别式AI 1.3发展与现状 2.大模型 2.1主流大模型 2.1.1分类 2.1.2各…...

Spring Security 如何防止 CSRF 攻击?
目录 一、CSRF 攻击简介二、Spring Security 防止 CSRF 攻击的机制1. 默认启用 CSRF 保护2. CSRF 令牌的生成与验证3. 配置与自定义4. 在请求中包含 CSRF 令牌 三、最佳实践四、总结 一、CSRF 攻击简介 CSRF(Cross-Site Request Forgery)攻击࿰…...

使用 Kubeflow 和 Ray 构建机器学习平台
使用 Kubeflow 和 Ray 构建一个稳健的 ML 平台。我们将深入讨论 Kubeflow 和 Ray 的独特功能,以及它们如何互补,共同创建一个强大的 ML 生态系统 集中化 ML 平台的需求 随着企业在 ML 旅程中的成熟,初始 ML 项目的临时性质逐渐让位于对更结构化和可扩展方法的需求。集中化…...
SEO炼金术(4)| Next.js SEO 全攻略
在上一篇文章 SEO炼金术(3)| 深入解析 SEO 关键要素 中,我们深入解析了 SEO 关键要素,包括 meta 标签、robots.txt、canonical、sitemap.xml 和 hreflang,并探讨了它们在搜索引擎优化(SEO)中的作…...
每日十个计算机专有名词 (7)
Metasploit 词源:Meta(超越,超出) exploit(漏洞利用) Metasploit 是一个安全测试框架,用来帮助安全专家(也叫渗透测试人员)发现和利用计算机系统中的漏洞。你可以把它想…...

StarRocks 在爱奇艺大数据场景的实践
作者:林豪,爱奇艺大数据 OLAP 服务负责人 小编导读: 本文整理自爱奇艺工程师在 StarRocks 年度峰会的分享,介绍了爱奇艺 OLAP 引擎演化及引入 StarRocks 后的效果。 在广告业务中,StarRocks 替换 ImpalaKudu 后&#x…...

蓝桥杯好题推荐----高精度乘法
🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” 题目链接 P1303 A*B Problem - 洛谷https://www.luogu.com.cn/problem/P1303 解题思路 这道题的思路,其实和前面差不多,我们主要说一下最为关键的部分&…...

Linux网络 数据链路层
在Linux网络中,数据链路层位于物理层之上,网络层之下,其主要职责是将网络层的IP数据包封装成帧,并通过物理链路发送到目标设备。同时,它还负责接收来自物理层的帧,并将其解封装为数据包,传递给网…...

量子计算可能改变世界的四种方式
世界各地的组织和政府正将数十亿美元投入到量子研究与开发中,谷歌、微软和英特尔等公司都在竞相实现量子霸权。 这其中的利害关系重大,有这么多重要的参与者,量子计算机的问世可能指日可待。 为做好准备,,我们必须了…...

React 组件基础介绍
基本概念:一个组件就是用户界面的一部分,可以有自己的逻辑和外观,组件之间可以互相嵌套、复用多次。每个组件就是一个首字母大写的函数,内部存放了组件的逻辑和试图UI,渲染组件只需要把组件 当成 标签 书写。App 可以视…...
ETL系列-数据抽取(Extract)
ETL的过程 1、数据抽取:确定数据源,定义数据接口,选择数据抽取方法(主动抽取或由源系统推送)。 2、数据清洗:处理不完整数据、错误数据、重复数据等,确保数据的准确性和一致性。(是…...
java八股文之框架
1.Spring框架中的Bean是否线程安全的 Spring框架中的Bean默认是单例的,不是线程安全的。因为一般在Spring的bean的中都是注入无状态的对象,没有线程安全问题,如果在bean中定义了可修改的成员变量,是要考虑线程安全问题的…...

【大模型】Ubuntu下 fastgpt 的部署和使用
前言 本次安装的版本为 fastgpt:v4.8.8-fix2。 最新版本fastgpt:v4.8.20-fix2 问答时报错,本着跑通先使用起来,就没有死磕下去,后面bug解了再进行记录。 github连接:https://github.com/labring/FastGPT fastgpt 安装说明&…...
小程序中头像昵称填写
官方文档 参考小程序用户头像昵称获取规则调整公告 新的小程序版本不能通过wx.getUserProfile和wx.getUserInfo获取用户信息 <van-field label"{{Avatar}}" label-class"field-label" right-icon-class"field-right-icon-class"input-class&…...

卷积神经网络(cnn,类似lenet-1,八)
我们第一层用卷积核,前面已经成功,现在我们用两层卷积核: 结构如下,是不是很想lenet-1,其实我们24年就实现了sigmoid版本的: cnn突破九(我们的五层卷积核bpnet网络就是lenet-1)-CS…...

【NLP 27、文本分类任务 —— 传统机器学习算法】
不要抓着枯叶哭泣,你要等待初春的新芽 —— 25.1.23 一、文本分类任务 定义:预先设定好一个文本类别集合,对于一篇文本,预测其所属的类别 例如: 情感分析: 这家饭店太难吃了 —> 正类 …...

Go红队开发—并发编程
文章目录 并发编程go协程chan通道无缓冲通道有缓冲通道创建⽆缓冲和缓冲通道 等协程sync.WaitGroup同步Runtime包Gosched()Goexit() 区别 同步变量sync.Mutex互斥锁atomic原子变量 SelectTicker定时器控制并发数量核心机制 并发编程阶段练习重要的细节端口扫描股票监控 并发编程…...
Oracle 导出所有表索引的创建语句
在Oracle数据库中,导出所有表的索引创建语句通常涉及到使用数据字典视图来查询索引的定义,然后生成对应的SQL语句。你可以通过查询DBA_INDEXES或USER_INDEXES视图(取决于你的权限和需求)来获取这些信息。 使用DBA_INDEXES视图 如…...
使用Docker方式一键部署MySQL和Redis数据库详解
一、前言 数据库是现代应用开发中不可或缺的一部分,MySQL和Redis作为两种广泛使用的数据库系统,分别用于关系型数据库和键值存储。本文旨在通过Docker和Docker Compose的方式,提供一个简洁明了的一键部署方案,确保数据库服务的稳…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...