LUP分解方法,矩阵求逆
LU分解
LU、LUP分解
LUP求解线性方程组
LU矩阵分解
LU分解可以将一个矩阵 A\mathbf AA 分解为一个单位下三角矩阵 L\mathbf LL 和一个上三角矩阵 U\mathbf UU 的乘积。单位下三角单位矩阵主对角线上的元素为 1 。有如下关系:
A=LU(1)\mathbf A = \mathbf L \mathbf U \tag1A=LU(1)
在程序实现上,(1)式中的矩阵 依次对应到下方三个矩阵 以及 两个三角矩阵相乘后元素之间的关系:
图1. LU分解过程
核心代码
算法如下:
for (int i = 0; i < N - 1; i++)
{double u = U[i * N + i];for (int j = i + 1; j < N; j++){U[j * N + i] /= u;for (int k = i + 1; k < N; k++){U[j * N + k] -= U[i * N + k] * U[j * N + i];}//Of for k}// Of for j
}
数组 U 初始存储矩阵 A\mathbf AA, 经过计算后存储上三角矩阵 和 除主对角线以外的下三角矩阵 的元素。
在代码的实现上和 图1 的过程有一些区别。代码实现更像是一点一点地把矩阵 A\mathbf AA 给稀释的感觉。
第一行 u11:u14u_{11} : u_{14}u11:u14 可以直接解出。例如在第一轮外循环后,下三角矩阵第一列被解出,上三角第二行被解出。数组 U 中 存储的矩阵元素为:
[u11u12u13u14l21u22u23u24l31l32u22l32u23+u33l32u24+u34l41l42u22l42u23+l43u33l42u24+l43u34+u44]\begin{bmatrix} u_{11} & u_{12} & u_{13} & u_{14}\\ l_{21} & u_{22} & u_{23} & u_{24}\\ l_{31} & l_{32}u_{22} & l_{32}u_{23}+u_{33} &l_{32}u_{24}+u_{34}\\ l_{41} & l_{42}u_{22} &l_{42}u_{23}+l_{43}u_{33} & l_{42}u_{24}+l_{43}u_{34}+u_{44} \end{bmatrix}⎣⎢⎢⎡u11l21l31l41u12u22l32u22l42u22u13u23l32u23+u33l42u23+l43u33u14u24l32u24+u34l42u24+l43u34+u44⎦⎥⎥⎤
第二轮外循环后,下三角矩阵第二列被解出,上三角矩阵第三行被解出。数组 U 中 存储的矩阵元素为:
[u11u12u13u14l21u22u23u24l31l32u33u34l41l42l43u33l43u34+u44]\begin{bmatrix} u_{11} & u_{12} & u_{13} & u_{14}\\ l_{21} & u_{22} & u_{23} & u_{24}\\ l_{31} & l_{32} & u_{33} & u_{34}\\ l_{41} & l_{42} &l_{43}u_{33} & l_{43}u_{34}+u_{44} \end{bmatrix}⎣⎢⎢⎡u11l21l31l41u12u22l32l42u13u23u33l43u33u14u24u34l43u34+u44⎦⎥⎥⎤
第三轮外循环…
直到解出 L,U\mathbf L, \mathbf UL,U 矩阵。
LUP矩阵分解
LUP分解是在LU分解的基础上增加主元的选取。
相对于LU分解,LUP分解增加了置换矩阵 P\mathbf PP , 有如下关系:
PA=LU(2)\mathbf P \mathbf A = \mathbf L \mathbf U \tag{2}PA=LU(2)
算法如下:
图2. LUP算法
如 图2 所示,3~6行增加了对矩阵 L,U,P\mathbf L, \mathbf U, \mathbf PL,U,P 的换行,7~12行算法与LU分解相同。
为什么增加了置换矩阵 P\mathbf PP?其实我也是糊涂的(嘿嘿…
大概有以下几个原因:
1.被分解的矩阵 A\mathbf AA 其实被要求是非奇异矩阵。再有,如果主元直接为0,LU算法的在计算过程中会出现分母为0的情况。
2.如果主元不为 0 但是接近 0 呢?为了避免除数过小引起精度问题,所以会尽量选择大的主元。
经过行变换后的矩阵再经过LU分解就能尽量避免以上问题。
利用LUP分解对矩阵求逆
由(2)式,有:
P−1A−1=L−1U−1\mathbf P^{-1} \mathbf A^{-1} = \mathbf L^{-1} \mathbf U^{-1}P−1A−1=L−1U−1
L,U\mathbf L, \mathbf UL,U 为三角矩阵,P\mathbf PP 为置换矩阵,到这里其实就已经容易求出逆矩阵了。
LUP分解方法,矩阵求逆相关推荐
- 从易到难,针对复杂问题的无监督式问题分解方法
论文标题: Unsupervised Question Decomposition for Question Answering 论文作者: Ethan Perez (FAIR,NYU), Patri ...
- 运用经验模态分解方法(EMD)对实测探地雷达数据进行处理
运用经验模态分解方法(EMD)对实测探地雷达数据进行处理 经验模态分解(EMD)是一种新型自适应信号时频处理方法,特别适用于非线性非平稳信号的分析处理.探地雷达实测数据存在干扰,因此运用经验模态分解( ...
- matlab 重叠峰分解 算法,一种基于粒子群算法的光谱重叠峰分解方法与流程
本发明涉及一种基于粒子群算法的光谱重叠峰分解方法. 背景技术: 由于探测器能量分辨率等原因,峰位接近且峰宽较大的不同谱峰之间常常出现严重重叠干扰的现象,要对光谱作进一步较为准确.全面的成分定量和定性分 ...
- 史上最全的整数分解方法(包含经典的分苹果问题)
[华为OD机试真题 2022&2023]真题目录 @点这里@ [华为OD机试真题]信号发射和接收 &试读& @点这里@ [华为OD机试真题]租车骑绿道 &试读& ...
- 小酌重构系列[4]——分解方法
概述 "分解方法"的思想和前面讲到的"提取方法"."提取方法对象"基本一致. 它是将较大个体的方法不断的拆分,让每个"方法&quo ...
- 性别收入差距=歧视?Oaxaca-Blinder分解方法
原文链接:https://www.lianxh.cn/news/628d565acfb49.html 目录 1. Oaxaca - Blinder 分解方法简介 2. Oaxaca - Blinder ...
- “高效的隐私保护的张量分解方法研究”学习笔记(上)
高效的隐私保护的张量分解方法研究 张量理论基础 张量分解 CP分解 TUCKER分解 Bi-Lanczos 算法 张量链分解 同态加密相关基础 这个笔记是学习张荣皓的"高效的隐私保护的张量分 ...
- 一个数据块影响的数据范围的查询方法/ROWID分解方法
1.ROWID分解方法. select rowid,dbms_rowid.rowid_object(rowid) obj#,dbms_rowid.rowid_block_number(rowid) b ...
- 类EMD的“信号分解方法”及MATLAB实现(第七篇)——EWT
这是"类EMD"方法系列的第7篇,前几篇分别是EEMD.CEEMD.CEEMDAN.VMD.ICEEMDAN.LMD,想要看前几种方法的点击链接可以跳转. 经验小波变换(empir ...
- 常见矩阵分解方法及其应用
1.LU分解 可以说是最简单的矩阵分解方法,将矩阵A分解成L(下三角)矩阵和U(上三角)矩阵的乘积.其实就是高斯消元法的体现,U矩阵就是利用高斯消元法得到的,而消元过程用到的初等变换矩阵乘积就是L矩阵 ...
最新文章
- php类退出魔术方法,php类中常用的魔术方法
- 每天一个linux命令(36):diff 命令
- logstash mysql日期_logstash-input-jdbc取mysql数据日期格式处理
- 2019手卫生定义_2021年卫生资格考试部分科目大纲和教材变化归总!
- html5布局总结,HTML5网页布局的总结
- 快速排序和快速选择(quickSort and quickSelect)算法
- 专有网络(VPC)的六大应用场景
- idea导入servlet包还是显示红色_还是从servlet 开始吧,hello servlet
- C语言集合的排序方法,排序集合 c语言.doc
- lambda表达式可以用来声明_lambda表达式可以用来创建包含多个表达式的匿名函数...
- 读书笔记----《平凡的世界》第四篇
- JAVA藏宝阁游戏交易系统计算机毕业设计Mybatis+系统+数据库+调试部署
- 如何使用idea把自己的项目打包jar包发给别人使用
- python:ImportError: cannot import name ‘xx‘ from ‘xxxx‘
- 计算机应用技术机测,[计算机应用技术]阶段测评1(2016年版)(13页)-原创力文档...
- “刘知远实验室”的关系抽取实验复现
- 利用JavaScript计算圆的面积
- Joomla禁用google字体
- 求微分方程用c语言怎么表达,使用C语言解常微分方程 C ODE
- 求空间点沿平面法向量与平面交点的坐标