线性代数——LU(LR)分解

2023-11-06

定义

定义:给定矩阵A,将A表示成下三角矩阵L和上三角矩阵U的乘积,称为LU分解。再进一步,希望L的对角元素都是1,这样利于后面的计算。

此外,形如A=LDU的分解称为LDU分解,L是下三角矩阵,D是对角阵,U是上三角矩阵,其中L和U的对角元素都是1。

对于正方矩阵来说,上面的分解结果L和U的大小显而易见,都和原矩阵A的size相同。那么对于非正方矩阵而言呢?

长矩阵B经过LU分解的结果希望是如下的形式:
在这里插入图片描述
宽矩阵C经过LU分解的结果希望是如下的形式:
在这里插入图片描述

为什么要LU分解

一旦完成了LU分解,利用L和U的性质,再去求行列式的值或者解线性方程组,计算量就大大减少了。

LU分解作为基本工具在各种数值计算问题中被广泛应用。例如求解线性方程组Ax=b时,只需要做一次A=LU的分解,后面面对不同的b就可以反复使用L和U了。

为什么能做到LU分解

可以先设定最终LU分解的两个矩阵中的所有未知数,之后通过原始矩阵的每个元素反解出L和U中的每个元素,这里可以以任意例子做实验。但是需要注意,如果原始矩阵的对角元素有0,那么情况就另当别论,需要对LU的样子稍作改变再进行分解。

利用LU分解求行列式值

对于方阵A,若已经有形如A=LU的LU分解,则立即可以得到行列式值detA。因为
d e t A = d e t ( L U ) = ( d e t L ) ( d e t U ) det A = det (LU) = (det L) (det U) detA=det(LU)=(detL)(detU)
所以只需要求出det L和det U即可。而下三角矩阵和上三角矩阵的行列式就是对角元素的乘积。这里det L恰好等于1,于是
d e t A = U 的 对 角 元 素 的 乘 积 det A = U的对角元素的乘积 detA=U

利用LU分解求解线性方程组

这里以有解的情况为例,考虑n阶可逆方阵A和n维向量y,需要求解满足Ax=y的向量x。

将A进行LU分解,解方程的问题就被分为了两个步骤,LUx=y。第一步就是求出满足Lz=y的z;
第二步就是求出满足Ux=z的x。
用数学表达式表述就是
A x = L U x = L ( U x ) = L z = y A \boldsymbol{x}=L U \boldsymbol{x}=L(U \boldsymbol{x})=L \boldsymbol{z}=\boldsymbol{y} Ax=LUx=L(Ux)=Lz=y

这样有什么好处?其实,由于L和U都是具有特殊形式的矩阵,所以求解过程要简单许多。对于第一步:
( 1  车  1  孙   郑  1  李   王   卫  1 ) ( z 1 z 2 z 3 z 4 ) = (  子   丑   寅   卯  ) \left(\begin{array}{cccc} 1 & & & \\ \text { 车 } & 1 & & \\ \text { 孙 } & \text { 郑 } & 1 & \\ \text { 李 } & \text { 王 } & \text{ 卫 } & 1 \end{array}\right)\left(\begin{array}{l} z_{1} \\ z_{2} \\ z_{3} \\ z_{4} \end{array}\right)=\left(\begin{array}{l} \text { 子 } \\ \text { 丑 } \\ \text { 寅 } \\ \text { 卯 } \end{array}\right) 1      1    1  

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

线性代数——LU(LR)分解 的相关文章

  • 想成为网络安全工程师需要学习掌握哪些技术

    想成为网络安全工程师 GPT建议需要掌握以下技术 1 网络基础知识 了解网络协议 网络拓扑 子网划分等基础概念 2 操作系统知识 熟悉常见操作系统 如Windows Linux 的安全配置和漏洞 3 数据库知识 了解数据库的安全配置和防御技
  • Java开发过程中的避坑点(一)

    1 典型空指针问题 包装类型的空指针问题 级联调用的空指针问题 Equals方法左边的空指针问题 ConcurrentHashMap 这样的容器不支持 Key 和 Value 为 null 集合 数组直接获取元素 对象直接获取属性 1 1包

随机推荐

  • RDA 升级

    烧录BOOT升级方式 1 连接 2 烧录BOOT 1 升级 bootrom raw bin 99K 这种升级方式需要Tera Term 工具 按 F5 U盘升级 编译的升级文件 RR8503 bin RR8501 bin RR52C bin
  • figma有哪些快速入门的好用技巧

    使用Figma在创建设计系统或处理大型设计项目时 总会涉及批量修改 快速定位 自动布局问题 MarcAndrew这篇文章分享了技巧 可以大大提高设计效率 希望对大家有所帮助 在这篇文章中 我列出了一些快速简单的方法来帮助你更快地使用它Fig
  • Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)

    本文主要解决一个问题 如何实现二叉树的前中后序遍历 有两个要求 1 O 1 空间复杂度 即只能使用常数空间 2 二叉树的形状不能被破坏 中间过程允许改变其形状 通常 实现二叉树的前序 preorder 中序 inorder 后序 posto
  • 猿如意中的【blender】工具详情介绍

    文章目录 一 工具名称 二 下载安装渠道 2 1 什么是猿如意 2 2 如何下载猿如意 三 工具介绍 四 blender介绍 4 1 blender简介 4 2 背景 4 3 主要功能 五 软件安装过程 5 1 如何在猿如意中下载开发工具b
  • 散列表习题

    1 考虑key的集合S 0 8 16 24 32 40 48 56 64 用除余法构造的散列函数 h1 key key 12 h2 key key 11 h1将S映射到的值域有几个元素 3 h2将S映射到的值域有几个元素 9 2 散列表的规
  • 【1分钟解决VS试用期到期】——登录用户时浏览器跳转失败

    登录 按钮下的 账户选项 将会默认跳转到左侧 环境 选项下的 账户 此界面中右上的 嵌入式Web浏览器 改为 系统Web浏览器 即可正常跳转登录 若没有微软账户可免费注册
  • easy poi 实现Excel文件的导入导出(SpringBoot整合)

    easypoi功能如同名字easy 主打的功能就是容易 让一个没见接触过poi的人员 就可以方便的写出Excel导出 Excel模板导出 Excel导入 Word模板导出 通过简单的注解和模板 语言 熟悉的表达式语法 完成以前复杂的写法 码
  • Win11任务栏怎么变小?Win11任务栏变小的设置方法

    很多Win11用户觉得win11任务栏太大了 用起来很不习惯 想要把任务栏变小 那要怎么进行操作 Win11的任务栏怎么变小 方法其实很简单的 系统之家小编这就分享给你 还不清楚的小伙伴们 快跟着小编一起来看看怎么操作吧 操作方法具体步骤
  • chatgpt赋能python:如何用Python进行数据清洗

    如何用Python进行数据清洗 在数据分析领域 数据清洗是非常重要的一步 因为原始数据往往包含大量的错误 缺失或者不一致的部分 对于这些 脏 数据 如果不进行清洗和处理 就会影响到后续的分析和建模工作 那么 如何用Python进行数据清洗呢
  • envi5.6处理gf3(SAR)详细过程记录

    未完结 待更新 可以参考的处理教程 SAR影像 雷达影像 的预处理 ENVI SARscape多极化单通道数据预处理流程 SARSCAPE中单雷达影像基础处理全过程 本文所使用的文件名 GF3 KAS UFS 017384 E108 9 N
  • 我的世界为什么服务器不显示皮肤,我的世界为什么皮肤没显示,为什么皮肤显示不出来怎么办...

    要正版账号盗版的话如果有皮肤MOD的话就可以看见了必须是安装了这个MOD的人才能看见 为什么显示不出更改后皮肤 用指令指令 skinset代码 英文或数字 怎么才能让我的世界人物皮肤能显示在服务器中 让每个玩家能看到 非官方的不好显示的 为
  • 2021-02-05

    1 字体类型 对于创造不同字体的文字类型时 每一个类型都得重新定义CFont 和 CStatic CStatic m cstatic title 标题名 CStatic m CStatic sys status CFont m Font C
  • mysql binlog 大小设置问题

    mysql开启了二进制日志binlog 如mysql bin 000005等 重启服务后会自动更新这个文件 如原来是000005的话会生成000006 请问 如果服务一直不重启 什么情况下会自动产生新的日志文件呢 是大小到了一定量时自动产生
  • 2016年中总结

    时间飞快 2016年上半年中收获很多 项目 学习 实习等 感慨颇多 一 学习 项目 走过BS 进入了Java的世界 在项目中实践对于自己的知识有了一个梳理和巩固 期间经历了ITOO5 0基础系统 对于基础系统的业务有了更多的了解 图书馆系统
  • 以不同的方向来处理数据倾斜

    一 程序层面 比如说在Hive中 经常遇到count distinct 操作 这样会导致最终只有一个Reduce任务 我们可以先group by 再在外面包一层count 就可以了 比如计算按用户名去重后的总用户量 优化前 只有一个redu
  • android开发之recycleView的adapter理解

    之前很长时间都是使用的listview 然后自己写适配器 主要都是继承自BaseAdapter 大致的思路呢 就是我们传入数据源以及上下文对象 然后我们在自定义适配器文件中实现了构造方法 然后将传入的上下文对象 context 以及数据源初
  • 【流水线】FPGA中流水线的原因和方法

    目录 写在前面 什么是流水线 无流水线设计 流水线设计 流水线的后果 结论 写在前面 对 FPGA 现场可编程门阵列 进行编程是一个定制其资源以实现确定逻辑功能的过程 这涉及使用FPGA的基本构建模块 如可编程逻辑模块 CLB 专用多路复用
  • 【MATLAB第62期】基于MATLAB的PSO-NN、BBO-NN、前馈神经网络NN回归预测对比

    MATLAB第62期 基于MATLAB的PSO NN BBO NN 前馈神经网络NN回归预测对比 一 数据设置 1 7输入1输出 2 103行样本 3 80个训练样本 23个测试样本 二 效果展示 NN训练集数据的R2为 0 73013 N
  • html标签总结之表格标签

    1 表格标签 表格属性 border 表格边框 写在table标签里面 数值代表边框像素 cellpadding 单元格内的空间 写在table标签里面 数值代表空间像素 cellspacing 单元格之间的空间 写在table标签里面 数
  • 线性代数——LU(LR)分解

    文章目录 定义 为什么要LU分解 为什么能做到LU分解 利用LU分解求行列式值 利用LU分解求解线性方程组 利用LU分解求逆矩阵 对角线上元素有0的情况 定义 定义 给定矩阵A 将A表示成下三角矩阵L和上三角矩阵U的乘积 称为LU分解 再进