在线性代数中, 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求逆,使得

。第二种方式远比消元法复杂,先看一下消元法的计算量。假设A是n阶满秩方阵,如果不写成增广矩阵,即不考虑 b,那么第一次消元达到的效果是:

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

次运算。依次类推,第二次消元共进行了
次运算……消元到最后,变成了上三角矩阵U,总运算次数是:

  经过约

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

  LU分解的运算过程和高斯消元类似,首先经过

次运算将A变成
,使Ax = b变成
,再对L求逆,使得
,最后求解。

  看起来比高斯消元经历了更多的步骤,那为什么又说LU分解更快呢?在实践中,b是输出,输出又经常变动,从Ax = b频繁地变成Ax = b’,此时高斯消元就需要全部重新计算(高斯消元用增广矩阵消元,变化过程是

),这对大型矩阵来说及其耗时。反观LU分解,因为它不依赖于b,所以计算一次后就可以存储
,在输出变化后也只是需要简单的相乘。实际上,由于
已经是整理过的斜对角全是1的下三角矩阵,所以用高斯-诺当消元法对L求逆非常简单。

允许行交换

  对于A = LU,我们之前限制了行的互换,但如果不可避免的必须进行行互换,只需要把

变成
就可以了,其中P是置换矩阵。实际上所有的A = LU都可以写成PA = LU的形式,当A没有行互换时,P就是单位矩阵。上一章叙述了置换矩阵的性质,
,所以

示例

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

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

  由于

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

b可以是任意常数。

matlab lu分解求线性方程组_线性代数10——矩阵的LU分解相关推荐

  1. qr分解求线性方程组_矩阵分解

    矩阵分解 1. 矩阵的三角分解 1.1 高斯消去法解线性方程组 在聊起矩阵分解之前,先看一下我们小学二年级就学过的高斯消去法解线性方程组,其主要思想就是:将方程组写作写作增广矩阵(A|b)的形式,然后 ...

  2. matlab lu分解求线性方程组_计算方法(二)直接三角分解法解线性方程组

    封面是WH2里春希在编辑部的上司麻理前辈,有一说一,这条线的第一次H有点恶趣味,不是很喜欢. 一:概述 矩阵分解我学过的挺多种,比如极分解,谱分解,满秩分解,正交三角分解还有这里的直接三角分解大部分我 ...

  3. qr分解求线性方程组_梯度下降求解线性方程组算例设计

    凸二次优化问题 Theory. 设 是实对称正定矩阵, ,则求解凸二次优化问题 等价于求解线性方程组 . Proof. 二次型二阶可导,极小值点处梯度为零,现对优化的目标函数求梯度.二次型本质上具有: ...

  4. qr分解求线性方程组_计算方法/数值分析第三章 线性方程组的数值解法

    主要内容: 1.引言 2.高斯消去法 3.直接分解法 4.解线性方程组的迭代法 5.向量范数.矩阵范数及迭代法的收敛性 第一节 引言 用克拉姆求解线性方程组 第二节 高斯消去法 高斯消去法是一种古老的 ...

  5. LU分解求线性方程组的解

    LU分解是矩阵分解的一种,可以将一个矩阵分解为一个上三角矩阵和一个下三角矩阵的乘积. LU分解可以用来求逆矩阵,解线性方程组等.本文将介绍LU分解求线性方程组的解. 1.定义 如果A是一个方阵,A的L ...

  6. 计算方法LU分解c语言程序解线性方程组,LU分解求线性方程组的解

    LU分解是矩阵分解的一种,可以将一个矩阵分解为一个上三角矩阵和一个下三角矩阵的乘积. LU分解可以用来求逆矩阵,解线性方程组等.本文将介绍LU分解求线性方程组的解. 1.定义 如果A是一个方阵,A的L ...

  7. 线性代数笔记10——矩阵的LU分解

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

  8. 线性代数:矩阵的LU分解

    矩阵的LU分解 基础公式 示例说明 2x2 矩阵情况 3x3 矩阵情况 本节是网易公开课上的麻省理工大学线性代数课程第四节: A的LU分解 的学习笔记. 本篇主要讲解 矩阵的LU分解. 矩阵的LU分解 ...

  9. c++求矩阵的秩_常见的矩阵分解

    矩阵的谱分解(可对角化矩阵--满秩可逆) 谱分解定理:设 为一个n阶可对角化矩阵,A的谱为 其中 的重数为 ,则存在唯一一组s个n阶方阵 ,满足 (1) (2) (3) (4) (5) 这些矩阵 称为 ...

  10. 线性代数(15)——矩阵的QR分解

    矩阵QR分解 矩阵的QR分解 概述 演示分析 实现QR分解 矩阵的QR分解和LU分解的目的都是为了便于矩阵计算. 矩阵的QR分解 概述 A = Q R A=QR A=QR这一过程将矩阵分解为 Q Q ...

最新文章

  1. bzoj 3687: 简单题
  2. Android绑定多个aidl,android aidl 多`module`版的实现
  3. 模型学习 - CNN及一系列发展
  4. 注解_自定义注解_属性定义
  5. 旧金山参议员提议发布“封杀令”,理由是马路不为机器人所服务
  6. [bzoj1036]树的统计
  7. 自考感悟,话谈备忘录模式
  8. mouseevent tips
  9. mysql使用的索引长度_MySQL索引的索引长度问题
  10. 粗略的看JFinal的基于AOP的拦截器的实现
  11. Windows加域提示 已超出此域允许的创建的计算机账户的最大值,请联系统管理员
  12. 1024程序员节开源技术英雄会 参会“英雄榜”发榜
  13. 计算机操作员技术工作总结,计算机操作员工作总结
  14. (转)AssetBundle系列——共享资源打包/依赖资源打包
  15. 解决从json文件中获取不到数据的问题
  16. 编译运行BSR/bench源码
  17. [转载] Python图结构(复杂网络)可视化模块——networkx
  18. 讯飞 tts 9.0 app_讯飞B1录音笔,到底值不值得买?
  19. java 通过 socket 实现 服务器和客户端的通信 TCP
  20. udev   ksm

热门文章

  1. spm_预处理实验记录
  2. 如何安装Ruby(Windows)
  3. PHP处理多表查询时的SQL语句拆分与重新组装
  4. 强引用、软引用、弱引用、虚引用、终结器引用
  5. SpringCloud整合Hmily实现TCC分布式事务案例详解
  6. redis数据类型之Hash
  7. React使用详解(学习笔记)
  8. spring源码:@Bean注解解析
  9. Java对象序列化原理以及Serializable接口
  10. 怎么用最短时间高效而踏实地学习Linux?