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

什么是LU分解

  如果有一个矩阵A,将A表示成下三角矩阵L和上三角矩阵U的乘积,称为A的LU分解。

  更进一步,我们希望下三角矩阵的对角元素都为1:

  一旦完成了LU分解,解线性方程组就会容易得多。

LU分解的步骤

  上一章讲到,对于满秩矩阵A来说,通过左乘一个消元矩阵,可以得到一个上三角矩阵U。

  可以看到,L实际上就是消元矩阵的逆。容易知道二阶矩阵的逆:

  现在假设A是一个3×3矩阵,在不考虑行交换的情况下,通过消元得到上三角矩阵的过程是:

LU 分解的前提

  并非所有矩阵都能进行LU分解,能够LU分解的矩阵需要满足以下三个条件:

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

LU分解的意义

  LU分解的意义在于求解大型方程组。一个方程组可以简化为Ax = b的形式,其中A是n阶方阵,x是未知数组成的向量,b是n×1矩阵,例如:

  以往求解的方式有两种,一是高斯消元法,二是对A求逆,使得x = A-1b。第二种方式远比消元法复杂,先看一下消元法的计算量。假设A是n阶满秩方阵,如果不写成增广矩阵,即不考虑 b,那么第一次消元达到的效果是:

  其中方块是A原来的元素,0是达到的效果,三角是经过消元运算后改变的元素。以第二行为例,为了使第一个元素为0,需要让第一行乘以某个数(第一行n个元素,共进行了n次乘法运算),再将第一行和第二行相加或相减(第二行n个数与第一行的n个数相加,共进行了n次加法运算)。如果把一组乘法和加法看成一次运算,那么第二行的消元共进行了n次运算;共有n-1行需要类似运算,所以第一次消元共进行了n(n - 1) ≈ n2 次运算。依次类推,第二次消元共进行了(n - 1)(n - 2) ≈ (n - 1)2 次运算……消元到最后,变成了上三角矩阵U,总运算次数是:

  经过约n3/3次运算后可以得到上三角矩阵U,由于是增广矩阵,所以可以逐步求解x。

  LU分解的运算过程和高斯消元类似,首先经过n3/3次运算将A变成LU,使Ax = b变成(LU)x = L(Ux) = b,再对L求逆,使得Ux = L-1b,最后求解。

  看起来比高斯消元经历了更多的步骤,那为什么又说LU分解更快呢?在实践中,b是输出,输出又经常变动,从Ax = b频繁地变成Ax = b’,此时高斯消元就需要全部重新计算(高斯消元用增广矩阵消元,变化过程是[A, b]→[U, b’]),这对大型矩阵来说及其耗时。反观LU分解,因为它不依赖于b,所以计算一次后就可以存储U和L-1,在输出变化后也只是需要简单的相乘。实际上,由于L已经是整理过的斜对角全是1的下三角矩阵,所以用高斯-诺当消元法对L求逆非常简单。

允许行交换

  对于A = LU,我们之前限制了行的互换,但如果不可避免的必须进行行互换,只需要把A = LU变成 PA = LU就可以了,其中P是置换矩阵。实际上所有的A = LU都可以写成PA = LU的形式,当A没有行互换时,P就是单位矩阵。上一章叙述了置换矩阵的性质,P-1 = PT,所以A = P-1LU = PTLU

示例

  

  如果A存在LU分解存,a,b满足什么条件?

  使用消元法逐一消去主元:

  由于E31 中出现了 –b/a,所以a ≠ 0

  b可以是任意常数。


  作者:我是8位的

  出处:http://www.cnblogs.com/bigmonkey

  本文以学习、研究和分享为主,如需转载,请联系本人,标明作者和出处,非商业用途!

  扫描二维码关注公众号“我是8位的”

线性代数笔记10——矩阵的LU分解的更多相关文章

  1. MATLAB矩阵的LU分解及在解线性方程组中的应用

    作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 三.实验程序 五.解答(按如下顺序提交电子版) 1.(程序) (1)LU分解源程序: function [ ...

  2. MIT线性代数:4.A的LU分解

  3. 矩阵分解---QR正交分解,LU分解

    相关概念: 正交矩阵:若一个方阵其行与列皆为正交的单位向量,则该矩阵为正交矩阵,且该矩阵的转置和其逆相等.两个向量正交的意思是两个向量的内积为 0 正定矩阵:如果对于所有的非零实系数向量x ,都有 x ...

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

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

  5. 矩阵LU分解的MATLAB与C++实现

    一:矩阵LU分解 矩阵的LU分解目的是将一个非奇异矩阵\(A\)分解成\(A=LU\)的形式,其中\(L\)是一个主对角线为\(1\)的下三角矩阵:\(U\)是一个上三角矩阵. 比如\(A= \beg ...

  6. 矩阵LU分解

    有如下方程组 ,当矩阵 A 各列向量互不相关时, 方程组有位移解,可以使用消元法求解,具体如下: 使用消元矩阵将 A 变成上三角矩阵 , , 使用消元矩阵作用于向量 b,得到向量 c,, , Ax=b ...

  7. matlab 求解线性方程组之LU分解

    线性代数中的一个核心思想就是矩阵分解,既将一个复杂的矩阵分解为更简单的矩阵的乘积.常见的有如下分解: LU分解:A=LU,A是m×n矩阵,L是m×m下三角矩阵,U是m×n阶梯形矩阵 QR分解: 秩分解 ...

  8. 第五节、矩阵分解之LU分解

    一.A的LU分解:A=LU 我们之前探讨过矩阵消元,当时我们通过EA=U将A消元得到了U,这一节,我们从另一个角度分析A与U的关系 假设A是非奇异矩阵且消元过程中没有行交换,我们便可以将矩阵消元的EA ...

  9. 矩阵LU分解程序实现(Matlab)

    n=4;%确定需要LU分解的矩阵维数 %A=zeros(n,n); L=eye(n,n);P=eye(n,n);U=zeros(n,n);%初始化矩阵 tempU=zeros(1,n);tempP=z ...

随机推荐

  1. CodeMix入门基础知识

    CodeMix在线订购年终抄底促销!火爆开抢>> CodeMix入门 CodeMix是一个Eclipse插件,可以直接从Eclipse访问VS Code和为Code OSS构建的附加扩展的 ...

  2. audit:backlog limit exceeded

    今天发现存储服务器业务不可用,服务器能ping通,远程不了!  到机房管理员那里查看服务器状态后,发现显示如下: 显然系统已经崩溃,只能先重启服务器,先恢复业务,然后针对backlog limit e ...

  3. 2019-03-25-day018-面向对象

    re模块 字符串匹配 列表 = findall(正则表达式,待匹配的字符串) 找所有 结果集 = search 找第一个,结果集.group() 结果集 = match 从第一个字符开始匹配,结果集. ...

  4. PCMU G.711U/PCMA G.711A简介

    PCMA(G.711A) 类型:Audio 制定者:ITU-T 所需频宽:64Kbps(90.4) 特性:PCMU和PCMA都能提供较好的语音质量,但是它们占用的带宽较高,需要64kbps. 优点:语 ...

  5. python day07作业

  6. 5--Selenium环境准备--firefox与geckodriver

    selenium2时打开firefox浏览器是不需要安装firefoxdriver的,但是selenium3不支持向前支持火狐浏览器了,40以后版本的火狐,运行会出现问题. 1.下载geckodriv ...

  7. 16 多校 8 Ball (贪心排序)很巧妙的思路啊~

    ZZX has a sequence of boxes numbered 1,2,...,n1,2,...,n. Each box can contain at most one ball. You ...

  8. Java技术体系

    Shell 解释型编程语言(脚本语言都是解释型语言) Shell通过解释器/bin/bash 解释,运行在进程中 Java 编译型解释型语言(先编译再解释) Java通过编译器转换成字节码语言,再用过 ...

  9. Linux关闭透明大页配置

      一.为何要关闭透明大页 A--MOS获取 . #翻译 由于透明超大页面已知会导致意外的节点重新启动并导致RAC出现性能问题,因此Oracle强烈建议禁用透明超大页面. 另外,即使在单实例数据库环境 ...

  10. Implementing a CNN for Text Classification in TensorFlow

    参考: 1.Understanding Convolutional Neural Networks for NLP 2.Implementing a CNN for Text Classificati ...