三角分解(LU分解)

作者:HDU-STEA_banjiu

时间:2021/1/11

1.LU分解的意义

在线性代数中, LU分解(LU Decomposition)是矩阵分解的一种,可以将一个矩阵分解为一个单位下三角矩阵和一个上三角矩阵的乘积(有时是它们和一个置换矩阵的乘积)。LU分解主要应用在数值分析中,用来解线性方程、求反矩阵或计算行列式。

使用LU分解可以提高计算效率。

2.LU分解的过程

**最终结果:**需要将矩阵A分解为
A=L⋅UA=L\cdot U A=L⋅U
其中矩阵L为对角线为1的下三角矩阵,U为上三角矩阵。具体如下:
A=[101aaabba],L=[100i110i2i31],U=[u11u12u130u22u2300u33]A=\begin{bmatrix} 1&0&1\\ a&a&a\\ b&b&a\\ \end{bmatrix}, L=\begin{bmatrix} 1&0&0\\ i_1&1&0\\ i_2&i_3&1\\ \end{bmatrix}, U=\begin{bmatrix} u_{11}&u_{12}&u_{13}\\ 0&u_{22}&u_{23}\\ 0&0&u_{33}\\ \end{bmatrix} A=⎣⎡​1ab​0ab​1aa​⎦⎤​,L=⎣⎡​1i1​i2​​01i3​​001​⎦⎤​,U=⎣⎡​u11​00​u12​u22​0​u13​u23​u33​​⎦⎤​

(1)对矩阵A进行初等行变换将其变为一个上三角矩阵,得到U。

A[101aaabba]⟹E21B[1010a0bba]⟹E31C[1010a00ba−b]⟹E32U[1010aa00a−b]A \begin{bmatrix} 1&0&1\\ a&a&a\\ b&b&a\\ \end{bmatrix} \stackrel{E_{21}} \Longrightarrow %箭头 B \begin{bmatrix} 1&0&1\\ 0&a&0\\ b&b&a\\ \end{bmatrix} \stackrel{E_{31}} \Longrightarrow C \begin{bmatrix} 1&0&1\\ 0&a&0\\ 0&b&a-b\\ \end{bmatrix} \stackrel{E_{32}} \Longrightarrow U \begin{bmatrix} 1&0&1\\ 0&a&a\\ 0&0&a-b\\ \end{bmatrix} A⎣⎡​1ab​0ab​1aa​⎦⎤​⟹E21​​B⎣⎡​10b​0ab​10a​⎦⎤​⟹E31​​C⎣⎡​100​0ab​10a−b​⎦⎤​⟹E32​​U⎣⎡​100​0a0​1aa−b​⎦⎤​

(2)记录初等行变换过程左乘所使用的矩阵,累乘其逆矩阵得到L。

要从矩阵A变换到矩阵B,即将矩阵A第二行减去第一行乘以a,这就等同于矩阵A左乘E21E_{21}E21​:
E21A=B[100−a10001][101aaabba]=[1010a0bba]E_{21}A=B\\ \begin{bmatrix} 1&0&0\\ -a&1&0\\ 0&0&1\\ \end{bmatrix} \begin{bmatrix} 1&0&1\\ a&a&a\\ b&b&a\\ \end{bmatrix}= \begin{bmatrix} 1&0&1\\ 0&a&0\\ b&b&a\\ \end{bmatrix} E21​A=B⎣⎡​1−a0​010​001​⎦⎤​⎣⎡​1ab​0ab​1aa​⎦⎤​=⎣⎡​10b​0ab​10a​⎦⎤​
如此,我们便可得到E21E_{21}E21​。

同样,我们可以得到E31、E32E_{31}、E_{32}E31​、E32​,如下:
E31=[100010−b01],E32=[1000100−b/a1]E_{31}= \begin{bmatrix} 1&0&0\\ 0&1&0\\ -b&0&1\\ \end{bmatrix}, E_{32}= \begin{bmatrix} 1&0&0\\ 0&1&0\\ 0&-b/a&1\\ \end{bmatrix} E31​=⎣⎡​10−b​010​001​⎦⎤​,E32​=⎣⎡​100​01−b/a​001​⎦⎤​
由于A=L⋅UA=L\cdot UA=L⋅U,并且A=E21−1⋅E31−1⋅E32−1⋅UA=E_{21}^{-1}\cdot E_{31}^{-1}\cdot E_{32}^{-1}\cdot UA=E21−1​⋅E31−1​⋅E32−1​⋅U。

如此,不难得到,L=E21−1⋅E31−1⋅E32−1L=E_{21}^{-1}\cdot E_{31}^{-1}\cdot E_{32}^{-1}L=E21−1​⋅E31−1​⋅E32−1​,那么我们就可以得到LLL为:
L=[100a10001]⋅[100010b01]⋅[1000100b/a1]=[100a10bb/a1]L=\begin{bmatrix} 1&0&0\\ a&1&0\\ 0&0&1\\ \end{bmatrix} \cdot \begin{bmatrix} 1&0&0\\ 0&1&0\\ b&0&1\\ \end{bmatrix} \cdot \begin{bmatrix} 1&0&0\\ 0&1&0\\ 0&b/a&1\\ \end{bmatrix} =\begin{bmatrix} 1&0&0\\ a&1&0\\ b&b/a&1\\ \end{bmatrix} L=⎣⎡​1a0​010​001​⎦⎤​⋅⎣⎡​10b​010​001​⎦⎤​⋅⎣⎡​100​01b/a​001​⎦⎤​=⎣⎡​1ab​01b/a​001​⎦⎤​

3.LU分解的使用前提

  1. 矩阵是方阵(LU分解主要是针对方阵);
  2. 矩阵是可逆的,也就是该矩阵是满秩矩阵,每一行都是独立向量;
  3. 消元过程中没有0主元出现,也就是消元过程中不能出现行交换的初等变换。

4.相关学习资料

LU分解短视频
LU分解的快速求解—矩阵的LU分解步骤-待定系数法
2021-01-11

三角分解(LU分解)相关推荐

  1. 矩阵的三角分解(LU分解)

    矩阵的三角分解将矩阵分解成一个下三角矩阵L和一个上三角矩阵U的乘积. 定义:如果n阶矩阵A能够分解成一个下三角矩阵L和一个上三角矩阵U的乘积,则称这种分解为三角分解或LU分解,如果n阶矩阵A能够分解为 ...

  2. LU分解(图解与应用举例)

    三角分解(LU分解) 在线性代数中, LU分解(LU Decomposition)是矩阵分解的一种,可以将一个矩阵分解为一个单位下三角矩阵和一个上三角矩阵的乘积(有时是它们和一个置换矩阵的乘积).LU ...

  3. crout分解计算例题_矩阵与数值计算(2)——矩阵三角分解LU、PALU、Cholesky三角分解、QR分解...

    前言 矩阵分解是设计算法的主要技巧,通过分解可以将复杂问题转化为几个简单问题求解,通常完成这一转化任务的主要技巧就是矩阵分解.例如,我们知道上三角矩阵和下三角矩阵是容易求解的,或者对角矩阵是最理想的求 ...

  4. 矩阵的三角分解法之LU分解之Doolittle分解

    function [L,U]=Doolittle(A) %  矩阵的三角分解法之LU分解之Doolittle分解  A=LU %  Doolittle分解:LU分解中L为单位下三角阵,U为上三角阵 % ...

  5. 矩阵三角分解法(LU分解)

    矩阵分解法是高斯消元法的变形,它的复杂度和高斯消元法一样都是O(n^3),但是矩阵分解法在处理线性方程组系(具有相同的系数矩阵,但是右端项不同的方程组)时,运算比较方便. 下面是矩阵分解原理的原理: ...

  6. 矩阵LU分解分块算法实现

    本文主要描述实现LU分解算法过程中遇到的问题及解决方案,并给出了全部源代码. 1. 什么是LU分解? 矩阵的LU分解源于线性方程组的高斯消元过程.对于一个含有N个变量的N个线性方程组,总可以用高斯消去 ...

  7. LU分解法c语言程序设计,矩陣LU分解求逆详细分析与C语言实现.doc

    矩陣LU分解求逆详细分析与C语言实现 题目要求 给定一个多维矩阵,实现该矩阵的求逆运算. 1.理论分析 矩阵的一种有效而广泛应用的分解方法是矩阵的LU三角分解,将一个n阶矩阵A分解为一个下三角矩阵L和 ...

  8. 矩阵分析——LU分解

    LU分解初步 矩阵的LU分解主要用来求解线性方程组或者计算行列式.在使用初等行变换法求解线性方程组的过程中,系数矩阵的变化情况如下: 由上可知: ,其中U就是上面矩阵A经过行变换后的上三角矩阵,Eij ...

  9. 【机器学习中的矩阵分解】LU分解、QR分解、SVD分解

    学习总结 文章目录 学习总结 一.三角分解(LU分解) 1.1 高斯消元 1.2 LU分解原理 1.3 LU分解python代码 1.4 LU分解算法 二.QR分解 2.1 Schmid 正交化 2. ...

最新文章

  1. iOS 仿微信灵活添加标签
  2. 深入理解 Mybatis 插件开发
  3. 利用栈求表达式的值_高一数学月考考点之函数的表达式详解
  4. 前端学习(3114):react-hello-对state的理解
  5. postgresql 数据表【转】
  6. oracle更改编码
  7. vue分享卡住_vue init webpack卡住无反应??
  8. 抓包安卓7以上ca证书安装方法
  9. Rust本地化实现 —— fluent
  10. kakfa安装与简单使用
  11. crx什么意思_CRX文件怎么打开-CRX是什么格式-CRX文件是什么意思-腾牛网
  12. 算法思考题-三只老鼠找8瓶毒药思路(个人思考+收集)
  13. Android 数据存储(四)-Room
  14. 骨传导蓝牙耳机哪个好,五款热门骨传导蓝牙耳机推荐
  15. 如何通俗地理解协方差和相关系数?
  16. 微信打开页面,下载东西时调用其他浏览器下载
  17. JavaScript - 你见过 [].slice.call() 吗?
  18. dlink 备份文件_dlink基本配置命令
  19. 教师培训总结 计算机,教师计算机培训心得总结
  20. 基于像素匹配的MATLAB平台身份证号码实时识别

热门文章

  1. Latex中如何加粗字体 如何打出圆圈序号
  2. 购买运虚拟主机还是云服务器,购买运虚拟主机还是云服务器
  3. 计算机网络基础常见名词缩写汇总
  4. 寻欢协议服务器,正式关闭服务器?官方客服电话已经无法接通!23年终要关站,曾是一代人逝去的青春...
  5. [零基础学python]集成开发环境(IDE)
  6. 阿里云推送 SDK iOS 端 配置
  7. selenium定位两个相同id、class的元素的第二个元素
  8. 国内唯一!腾讯iOA被权威机构报告列入竞争者能力象限
  9. 超实用的新加坡两日游攻略来啦
  10. access端口、trunk端口和hybird端口