LU分解

概念:假定我们能把矩阵A写成下列两个矩阵相乘的形式:A=LU,其中L为下三角矩阵,U为上三角矩阵。这样我们可以把线性方程组Ax= b写成

Ax= (LU)x = L(Ux) = b。令Ux = y,则原线性方程组Ax = b可首先求解向量y 使Ly = b,然后求解 Ux = y,从而达到求解线性方程组Ax= b的目的。

LU分解的基本思想

将系数矩阵A转变成等价的两个矩阵L和U的乘积,其中L和U分别是下三角和上三角矩阵,而且要求L的对角元素都是1;

由LU = A及对L和U的要求可以得到分解的计算公式。根据下式(独立特尔Doolittle分解):

在计算机程序中常常用到这种方法解线性代数方程组。它的优点是存储量很省。L和U中的三角零元素都不必存储,这样只用一个n阶仿真就可以把L和U存储起来。

即:下三角存储L各元素而上三角存储U的元素。

再考察公式S会发现A中任一元素aij只在计算lij(j<=i)和uij(u>=j)中用到一次,以后就不再出现了,因为完全可以利用原始数据A的单元,一个个逐次存储L或U中

的相应元素,即:

当系数矩阵A完成了LU分解后,方程组Ax = b就可以化为L(Ux) = b,等价于求解两个方程组Ly = b和Ux = y;

具体计算公式为

采用LU分解有如下特点:

(1)LU分解与右端向量无关。先分解,后回代,分解的运算次数正比于n^3,回代求解正比于n^2。遇到多次回代时,分解的工作不必重新做,这样节省计算时间。

(2)分解按步进行,前边分解得到的信息为后边所用。

(3)【A】矩阵的存储空间可利用,节省存储。

LDLT分解法

实际问题中,当求解方程组的系数矩阵是对称矩阵时,则用下面介绍的LDLT分解法可以简化程序设计并减少计算量。

从定理可知,当矩阵A的各阶顺序主子式不为零时,A有唯一的Doolittle分解A= LU。矩阵U的对角线元素Uii 不等于0,将矩阵U的每行依次提出,

定理:若对称矩阵A的各阶顺序主子式不为零时,则A可以唯一分解为A= LDLT,这里

LT为L的转置矩阵。

当A有LDLT分解时,利用矩阵运算法则及相等原理易得计算ljk和dk的公式为

Cholesky分解

Cholesky分解是一种分解矩阵的方法, 在线形代数中有重要的应用。Cholesky分解把矩阵分解为一个下三角矩阵以及它的共轭转置矩阵的乘积(那实数界来类比的话,此分解就好像求平方根)。与一般的矩阵分解求解方程的方法比较,Cholesky分解效率很高。

Cholesky分解的条件

一、Hermitianmatrix:矩阵中的元素共轭对称(复数域的定义,类比于实数对称矩阵)。Hermitiank意味着对于任意向量x和y,(x*)Ay共轭相等

二、Positive-definite:正定(矩阵域,类比于正实数的一种定义)。正定矩阵A意味着,对于任何向量x,(x^T)Ax总是大于零(复数域是(x*)Ax>0)

Cholesky分解的形式

可记作A = L L*。其中L是下三角矩阵。L*是L的共轭转置矩阵。

可以证明,只要A满足以上两个条件,L是唯一确定的,而且L的对角元素肯定是正数。反过来也对,即存在L把A分解的话,A满足以上两个条件。

如果A是半正定的(semi-definite),也可以分解,不过这时候L就不唯一了。

特别的,如果A是实数对称矩阵,那么L的元素肯定也是实数。

另外,满足以上两个条件意味着A矩阵的特征值都为正实数,因为Ax = lamda * x,

(x*)Ax = lamda * (x*)x > 0, lamda > 0

Cholesky分解的方式

.

可以使用高斯消元法分解矩阵。过程如下:

设A = | a11    w*|

| w      K|

= (R1*) * | 1                 0 | * R1

| 0  K – w(w*)/a11|

其中,

R1* = | 1                   0|

| w/sqrt(a11)         I |

R1 = | 1   w/sqrt(a11)|

| 0              I |

如果K –w(w*)/a11大于零,那么就可以一直分解下去。因为它是一个正定矩阵的子矩阵,所以肯定可以满足。

最后:

R* = (R1*)(R2*)…(Rm*)

R  =(Rm)…(R2)(R1)

因为矩阵的一半元素很相似,所以算法只需要实现一半就可以了。数据也可以只用一半,这样就节约了很多时间。同样,输出只需要一个上三角矩阵就可以了。

Cholesky分解的算法实现

R = A

For (k = 0, k < m; k++){

For(j = k; j < m; j++){

Rj,j:m = Rj,j:m – Rk,j:m Rkj / Rkk            -(1)

}

Rk,k:m = Rk,k:m/ sqrt(Rkk)

}

为了节约数据空间,其中,A仅初始化为上三角矩阵。Cholesky分解的效率分析, 由于(1) 式占用了O(m)的时间,所以总计O(m^3 / 3)。

LU分解、LDLT分解和Cholesky分解相关推荐

  1. [Math]常见矩阵分解及复杂度 Cholesky QR LU

    本篇尝试介绍几个常见的矩阵分解及其数值方法,探究其算法复杂度及不稳定性来源,能够让我们更好的理解工具,使用工具.常见的矩阵分解可以在维基中找到 文章目录 Cholesky 定义 数值方法 数值方法的数 ...

  2. 三十分钟理解:矩阵Cholesky分解,及其在求解线性方程组、矩阵逆的应用

    写一篇关于Cholesky分解的文章,作为学习笔记,尽量一文看懂矩阵Cholesky分解,以及用Cholesky分解来求解对称正定线性方程组,以及求对称正定矩阵的逆的应用. 文章目录 直接Choles ...

  3. 3阶Hermitian正定矩阵Cholesky分解通用表达式

    pdf文件 算法原理 将一个nnn阶Hermitian正定矩阵AAA分解为一个下三角矩阵LLL及其转置LTL^TLT的乘积,即: A=LLT(1)A=LL^T\tag{1} A=LLT(1) 推导过程 ...

  4. 视觉SLAM中的数学——解方程AX=b与矩阵分解:奇异值分解(SVD分解) 特征值分解 QR分解 三角分解 LLT分解

    前言 本博客主要介绍在SLAM问题中常常出现的一些线性代数相关的知识,重点是如何采用矩阵分解的方法,求解线性方程组AX=B.主要参考了<计算机视觉--算法与应用>附录A以及Eigen库的方 ...

  5. LU分解,LDLT分解,Cholesky分解

    LU分解 如果方阵是非奇异的,即的行列式不为0,LU分解总是存在的. A=LU,将系数矩阵A转变成等价的两个矩阵L和U的乘积,其中L和U分别是下三角和上三角矩阵,而且要求L的对角元素都是1,形式如下: ...

  6. 几种矩阵分解算法: LU分解,Cholesky分解,QR分解,SVD分解,Jordan分解

    目录 1.LU分解 2. LDLT分解法 3. Cholesky分解的形式 4. QR分解 5.SVD分解 5.1 SVD与广义逆矩阵 6. Jordan 分解 参考文章: ---------我只是搬 ...

  7. 矩阵分解——三角分解(Cholesky 分解)

    (1)一个对角元素都是1的下三角矩阵,称为单位下三角矩阵. (2)上(下)三角矩阵的乘积仍是上(下)三角矩阵: (3)一般来说,矩阵的三角分解不唯一. (4)实对称正定矩阵 AA,Δk>0\De ...

  8. 数值计算笔记-部分主元消去cholesky分解

    补充:接上一篇LU分解 1.高斯消元的一些问题:在之前高斯消元得到LU分解时,必须假设没有较换行的操作,即在消元过程中没有主元 a k k = 0 a_{kk} = 0 akk​=0的现象.但是实际情 ...

  9. cholesky分解java代码_Cholesky 分解(转)

    Cholesky 分解是把一个对称正定的矩阵表示成一个下三角矩阵L和其转置的乘积的分解. 它要求矩阵的所有特征值必须大于零,故分解的下三角的对角元也是大于零的. Cholesky分解法又称平方根法,是 ...

  10. 【数值分析】Doolittle分解和Cholesky分解的Python实现

    Doolittle 分解 import numpy as np # A=[[1.0,2.0,-3.0], # [2.0,-1.0,3.0], # [3.0,-2.0,2.0]]# A=[ [2, 4, ...

最新文章

  1. SBULL块设备驱动程序分析
  2. html load方法的区别,jQuery  中的.load()、$get()、$,post()用法和区别
  3. .net程序员转战android第一篇---环境部署
  4. ABAP程序里设置外部断点,调试时断点怎么也触发不了,该怎么办
  5. Qt::WA_OpaquePaintEvent理解
  6. 这篇文章可以满足你80%日常工作!成功入职腾讯
  7. mysql数据库是以表为单位存储的,创建一个以数据库名称为参数的MySQL存储过程,以列出具有特定数据库中详细信息的表。...
  8. 【初级03】java JVM核心技术(3): jvm调优
  9. MVC学习系列7--下拉框的联动
  10. SQL Server 2008 R2 安装及登录
  11. Linux内核4.14版本——mmc框架——mmc硬件总线扫描流程(以sd card为例)
  12. 教你如何免费下载中国知网、万方学术论文?这份资源请收好!
  13. 超酷HTML5 3D动画精选
  14. iOS开发常用之博客
  15. bzoj 4372 烁烁的游戏——动态点分治+树状数组
  16. AI大牛沈春华全职加入浙大!全球顶级学者专注CV,一年被引次数超9k+
  17. VVC学习之五:帧内预测之色度预测——CCLM及代码学习
  18. 思想的芦苇——把过程改进注入人文服务的思想以提升其价值
  19. JLH统计法统计飞龙(C++) kkmd66
  20. Flutter滑动体验对齐原生-滑动曲线篇

热门文章

  1. 从电视购物到抖音,流量平台与骗子斗了20年
  2. java项目-第37期基于springboot+layui实现的医院His系统【毕业设计】
  3. Fujitsu Lifebook U1010安装XP TabletPC 2005完全攻略
  4. MacBook Pro 2017版(带multi-touch bar)安装使用 windows10
  5. 戴尔便携式计算机 故障,如何诊断戴尔笔记本电脑的无法开机自检问题
  6. 遗传算法优化SVM支持向量机分类预测的参数代码模型
  7. 查看Casio PDA 的物理地址 MAC (DT-X7系列)
  8. js小游戏之锅打灰太狼
  9. 联创宽带上网助手协议的简单分析(三):密码包的构造过程
  10. 作为程序员,常用的工具软件之搜索引擎