CP4.矩阵的LU分解

2023-11-17

LU分解

将矩阵A分解成A=LU的形式,称作矩阵LU分解,L代指下三角矩阵,U代指上三角矩阵。首先用到的是前面讲过的消元法,以下为例子:

A=\begin{bmatrix} 2&1\\8 &7\end{bmatrix}

\begin{bmatrix} 1 &0 \\ -4&1 \end{bmatrix} \begin{bmatrix} 2 &1 \\ 8&7 \end{bmatrix}=\begin{bmatrix} 2 &1 \\ 0&3 \end{bmatrix}

E21\,A=U

通过消元操作,最后矩阵A变成了一个上三角矩阵U,那么只要上式左乘一个E_{21}^{-1},就可以转化为

A=E_{21}^{-1}U

这里的E_{21}^{-1}就是L矩阵了。E_{21}^{-1}=\begin{bmatrix} 1 &0 \\ 4&1 \end{bmatrix},所以A=LU=\begin{bmatrix}1 &0\\4&1 \end{bmatrix} \begin{bmatrix}2 &1\\0&3 \end{bmatrix}

也可以表达成如下形式,把U矩阵的主元提取出来。

A=LDU=\begin{bmatrix}1 &0\\4&1 \end{bmatrix} \begin{bmatrix}2 &0\\0&3 \end{bmatrix} \begin{bmatrix}1 &1/2\\0&1 \end{bmatrix}

对于三阶矩阵不需要换行进行消元的情况,就是说如果一个三阶矩阵,只通过初等行变换就能完成消元的情况下,假设其步骤为:

E_{32}E_{31}E_{21}A=U

通过求逆可得矩阵A的LU分解为:

A=E_{21}^{-1} E_{31}^{-1} E_{32}^{-1} U=LU

假设某三阶矩阵的消元矩阵如下

E_{21}=\begin{bmatrix} 1&0&0\\ -2&1&0\\ 0&0&1\end{bmatrix} E_{32}=\begin{bmatrix} 1&0&0\\ 0&1&0\\ 0&-5&1\end{bmatrix} E_{31}=\begin{bmatrix} 1&0&0\\ 0&1&0\\ 0&0&1\end{bmatrix}

先把这几个矩阵相乘,对A进行初等行变换,然后求逆获得L矩阵

E=E_{21}E_{31}E_{32}=\begin{bmatrix} 1&0&0\\ -2&1&0\\ 10&-5&1\end{bmatrix}

很明显,上述矩阵的逆矩阵

L=E^{-1}=\begin{bmatrix} 1&0&0\\ 2&1&0\\ 0&5&1\end{}

这里存在一个问题,按常规顺序计算的时候,E矩阵的第三行出现了10这个元素,说明第一行参与了10次运算,被反复调用。那么是否存在更快捷的方法呢?或需我们可以直接计算各消元矩阵的逆,然后直接相乘。

E_{21}^{-1} E_{32}^{-1}=L=\begin{bmatrix}1&0&0\\ 2&1&0\\0&0&1 \end{}\begin{bmatrix}1&0&0\\ 0&0&1\\0&5&1 \end{}=\begin{bmatrix}1&0&0\\ 2&1&0\\0&5&1 \end{}

很明显,直接计算L矩阵比利用相乘再求逆要快的多,但是用计算机处理的时候看不出来而已。

消元法计算次数

在进行超大规模矩阵运算的时候,不得不考虑所需要的运算量,如果我们把“先乘后减”记为一次运算,那么对于一个nxn矩阵,对于一行进行消元要进行n次运算,由于有n行所以进行了nxn次运算,结果得到了第一列除第一主元外都消成0的矩阵。随后开始对除第一行第一列之外的剩余部分进行消元,这相当于一个(n-1)x(n-1)的矩阵,那么就要进行(n-1)x(n-1)次运算,以此类推。

最后需要的运算次数为1x1+2x2+……+nxn,利用积分公式可以估算其数值。

1^2 +2^2+...+n^2=\sum_{i=1}^ni^2=\int_{0}^{n}x^2dx=1/3n^3

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

CP4.矩阵的LU分解 的相关文章

  • [matlab]10种经典的时间序列预测模型

    matlab 10种经典的时间序列预测模型 本文演示了 10 种不同的经典时间序列预测方法 它们是 自回归 AR 移动平均线 自回归移动平均线 自回归积分移动平均线 ARIMA 季节性自回归积分移动平均线 SARIMA 具有外生回归量的季节

随机推荐

  • R语言3.11 因子分析因子旋转

    因子旋转 目的 寻找每个主因子的实际意义 如果各主因子的典型代表变量不突出 就需要进行旋转 使因子载荷矩阵中载荷的绝对值向0和1两个方向分化 方法 正交旋转Varimax 最大方差正交旋转 斜交旋转Promax Fa2 factanal X
  • 集成学习-Adaboost

    Author 鲁力 Email jieyuhuayang foxmail com Datawhale Adaboost 算法简介 集成学习 ensemble learning 通过构建并结合多个学习器 learner 来完成学习任务 通常可
  • Keras和Tensorflow(CPU)安装、Pytorch(CPU和GPU)安装以及jupyter使用虚拟环境

    微信公众号 数学建模与人工智能 Keras和Tensorflow CPU 安装 Pytorch CPU和GPU 安装 Keras和Tensorflow CPU 安装 一 安装我用的是清华大学源 二 深度学习模型保存与加载 三 错误 Tens
  • matlab中的掩膜抠图

    改进版 矩阵中的循环操作非常耗时 so 用矩阵逻辑与操作替代for循环 one ones s img 1 s img 2 segM segM uint8 one for i 1 s img 1 for j 1 s img 2 if segM
  • 微信小程序16进制颜色码

    颜色码http www w3school com cn cssref css colornames asp
  • 时间序列算法理论及python实现(2-python实现)

    如果你在寻找时间序列是什么 如何实现时间序列 那么请看这篇博客 将以通俗易懂的语言 全面的阐述时间序列及其python实现 时间序列算法理论详见我的另一篇博客 时间序列算法理论及python实现 知 青 博客园 5 Python实现ARIM
  • ChatGPT 最好的替代品

    前两天我们邀请了微软工程师为我们揭秘 ChatGPT 直播期间有个读者问到 有了 ChatGPT BERT 未来还有发展前途吗 我想起来最近读过的一篇博客 最好的 ChatGPT 替代品 不过聊到这俩模型 就不得不提到 Transforme
  • 堆排序(Heapsort)-- 高级排序算法

    1 堆排序 Heapsort 堆排序 Heapsort 是指利用堆这种数据结构所设计的一种排序算法 二叉堆本质上是一种完全二叉树 它分为两个类型 最大堆和最小堆 最大堆任何一个父节点的值 都大于等于它左右孩子节点的值 最小堆任何一个父节点的
  • 同步(Synchronous)和异步(Asynchronous)

    概念性 同步和异步通常用来形容一次方法调用 同步方法调用一旦开始 调用者必须等到方法调用返回后 才能继续后续的行为 异步方法调用更像一个消息传递 一旦开始 方法调用就会立即返回 调用者就可以继续后续的操作 而 异步方法通常会在另外一个线程中
  • idea设置默认maven

    idea修改默认maven配置 方法一 不推荐 打开project default xml文件 在其中加入如下几行配置 代码如下 保存修改之后新建一个maven项目查看效果 方法二 新增Projects Settings 方法一 不推荐 需
  • 线性滤波器&非线性滤波器

    前言 采用线性滤波和非线性滤波是在空间域上处理图像最常用的滤波方法 matlab在处理图像滤波方面拥有可调用的函数 十分便利 我们可以根据自己的需要自行选择滤波方式对图像进行滤波 值得一提的是 图像锐化在某种程度上来说就是线性滤波 一 线性
  • emc re 整改 超标_EMC辐射骚扰超标如何整改?

    辐射骚扰是电脑 GPS导航等工作时向空间发射的一种电磁波干扰 这种干扰会影响其他电器特别是高灵敏度电器的正常工作 组成整机系统的主板 显示卡 开关电源 显示器 键盘 鼠标等都可能引起辐射骚扰超标 对于辐射骚扰通常用电磁场的大小来度量 其单位
  • 对泛型之不能协变(convariant)的理解,以及不能协变导致的问题

    1 何为协变 假设有一个接口 以及一个他的实现类 如下 接口为 public interface GenericsInterface void test 其实现类为 public class Type2 implements Generic
  • 6.ajax应用,ajax应用

    web tools ajax version 天气预报 value 北京 gt id disp weather gt ip地址查询 value 127 0 0 1 gt id disp iparea gt 手机归属查询 id disp mo
  • js利用google翻译接口把网页翻译成各国语言

    网页翻译为德语 Translate Page To German a href 网页翻译为德语 Translate Page To German a 网页翻译为西班牙语 Translate Page To Spanish a href a
  • [Mysql] 删除数据

    为了从一个数据表中删除 去掉 数据 可使用DELETE语句 语法 DELETE FROM表名 WHERE 条件 ORDER BY LIMIT row count DELETE FROM要求指定从中删除数据的表名 WHERE子句过滤要删除的行
  • 如何将li的前面那个圆点去掉

    只需要将 css样式 的 list style type 属性设置为none即可 代码如下 list style type none span style font size 18px span 下面的代码位于标签内 span style
  • 虚拟内存基本概念

    一 传统存储管理方式的特征 缺点 1 连续分配 单一连续分配 固定分区分配 动态分区分配 2 非连续分配 基本分页存储管理 基本分段存储管理 基本段页式存储管理 3 特点 很多暂时用不到的数据也会长期占用内存 导致内存利用率不高 一次性 作
  • JS基础_js一元运算符

    1 什么是一元运算符 只对一个操作数操作就能改变当前操作数的值的运算符号 2 一元运算符有哪些 2 1 正号 和负号 举例
  • CP4.矩阵的LU分解

    LU分解 将矩阵A分解成的形式 称作矩阵LU分解 L代指下三角矩阵 U代指上三角矩阵 首先用到的是前面讲过的消元法 以下为例子 通过消元操作 最后矩阵A变成了一个上三角矩阵U 那么只要上式左乘一个 就可以转化为 这里的就是L矩阵了 所以 也