矩阵A的LU分解

文章目录

  • 1. 矩阵的逆矩阵
    • 1.1 AB的逆矩阵
    • 1.2 转置矩阵
  • 2. 2X2矩阵A消元
  • 3. 3X3矩阵A消元
  • 4. 运算量
  • 5. 置换矩阵-左行右列

本文主要目的是为了通过矩阵乘法实现矩阵A的分解。

1. 矩阵的逆矩阵

1.1 AB的逆矩阵

  • 假设A,B矩阵都可逆
    A ( B B − 1 ) A − 1 = I (1) A(BB^{-1})A^{-1}=I\tag{1} A(BB1)A1=I(1)
  • 可得如下
    ( A B ) ( B − 1 A − 1 ) = I (2) (AB)(B^{-1}A^{-1})=I\tag{2} (AB)(B1A1)=I(2)
  • 所以当AB矩阵单独可逆下:
    ( A B ) − 1 = B − 1 A − 1 (3) (AB)^{-1}=B^{-1}A^{-1}\tag{3} (AB)1=B1A1(3)

1.2 转置矩阵

  • 由于矩阵A满足如下条件
    A A − 1 = I (4) AA^{-1}=I\tag{4} AA1=I(4)
  • 对等式两边进行转置如下:
    ( A − 1 ) T A T = I T = I (5) (A^{-1})^TA^T=I^T=I\tag{5} (A1)TAT=IT=I(5)
  • 由此可得如下:
    ( A T ) − 1 = ( A − 1 ) T (6) (A^T)^{-1}=(A^{-1})^{T}\tag{6} (AT)1=(A1)T(6)

2. 2X2矩阵A消元

假设矩阵A经过行与行之间的计算,可以得到上三角矩阵U ,可以简化成如下,
E 21 = [ 1 0 − 4 1 ] ; A = [ 2 1 8 7 ] ; U = [ 2 1 0 3 ] ; (7) E_{21}=\begin{bmatrix}1&0\\\\-4&1\end{bmatrix};A=\begin{bmatrix}2&1\\\\8&7\end{bmatrix};U=\begin{bmatrix}2&1\\\\0&3\end{bmatrix};\tag{7} E21= 1401 ;A= 2817 ;U= 2013 ;(7)

E 21 A = U (8) E_{21}A=U\tag{8} E21A=U(8)
[ 1 0 − 4 1 ] [ 2 1 8 7 ] = [ 2 1 0 3 ] (9) \begin{bmatrix}1&0\\\\-4&1\end{bmatrix}\begin{bmatrix}2&1\\\\8&7\end{bmatrix}=\begin{bmatrix}2&1\\\\0&3\end{bmatrix}\tag{9} 1401 2817 = 2013 (9)

  • 可以将上式改成如下
    A = ( E 21 ) − 1 U = L U (10) A=(E_{21})^{-1}U=LU\tag{10} A=(E21)1U=LU(10)
  • ( E 21 ) − 1 (E_{21})^{-1} (E21)1可得如下:
    ( E 21 ) − 1 = [ 1 0 4 1 ] (11) (E_{21})^{-1}=\begin{bmatrix}1&0\\\\4&1\end{bmatrix}\tag{11} (E21)1= 1401 (11)
  • 将U进行分解可得
    U = [ 2 1 0 3 ] = [ 2 0 0 3 ] [ 1 1 2 0 1 ] (12) U=\begin{bmatrix}2&1\\\\0&3\end{bmatrix}=\begin{bmatrix}2&0\\\\0&3\end{bmatrix}\begin{bmatrix}1&\frac{1}{2}\\\\0&1\end{bmatrix}\tag{12} U= 2013 = 2003 10211 (12)
  • 综上所述可得如下:
    A = [ 2 1 8 7 ] ; L = [ 1 0 4 1 ] ; D = [ 2 0 0 3 ] ; U = [ 1 1 2 0 1 ] (13) A=\begin{bmatrix}2&1\\\\8&7\end{bmatrix};L=\begin{bmatrix}1&0\\\\4&1\end{bmatrix};D=\begin{bmatrix}2&0\\\\0&3\end{bmatrix};U=\begin{bmatrix}1&\frac{1}{2}\\\\0&1\end{bmatrix}\tag{13} A= 2817 ;L= 1401 ;D= 2003 ;U= 10211 (13)
  • A = L D U A=LDU A=LDU
    [ 2 1 8 7 ] = [ 1 0 4 1 ] [ 2 0 0 3 ] [ 1 1 2 0 1 ] (14) \begin{bmatrix}2&1\\\\8&7\end{bmatrix}=\begin{bmatrix}1&0\\\\4&1\end{bmatrix}\begin{bmatrix}2&0\\\\0&3\end{bmatrix}\begin{bmatrix}1&\frac{1}{2}\\\\0&1\end{bmatrix}\tag{14} 2817 = 1401 2003 10211 (14)

3. 3X3矩阵A消元

  • 同理假设有一个3X3矩阵,我们可以经过行变换来消元。
    E 32 E 31 E 21 A = U (15) E_{32}E_{31}E_{21}A=U\tag{15} E32E31E21A=U(15)
  • 求逆矩阵如下:
    L = ( E 21 ) − 1 ( E 31 ) − 1 ( E 32 ) − 1 (16) L=(E_{21})^{-1}(E_{31})^{-1}(E_{32})^{-1}\tag{16} L=(E21)1(E31)1(E32)1(16)
    A = ( E 21 ) − 1 ( E 31 ) − 1 ( E 32 ) − 1 U (17) A=(E_{21})^{-1}(E_{31})^{-1}(E_{32})^{-1}U\tag{17} A=(E21)1(E31)1(E32)1U(17)
  • 假设如下矩阵:
    E 21 = [ 1 0 0 − 2 1 0 0 0 1 ] ; E 31 = [ 1 0 0 0 1 0 0 0 1 ] ; E 32 = [ 1 0 0 0 1 0 0 − 5 1 ] ; (18) E_{21}=\begin{bmatrix}1&0&0\\\\-2&1&0\\\\0&0&1\end{bmatrix};E_{31}=\begin{bmatrix}1&0&0\\\\0&1&0\\\\0&0&1\end{bmatrix};E_{32}=\begin{bmatrix}1&0&0\\\\0&1&0\\\\0&-5&1\end{bmatrix};\tag{18} E21= 120010001 ;E31= 100010001 ;E32= 100015001 ;(18)
    E 3221 = E 32 E 21 = [ 1 0 0 − 2 1 0 10 − 5 1 ] (19) E_{3221}=E_{32}E_{21}=\begin{bmatrix}1&0&0\\\\-2&1&0\\\\10&-5&1\end{bmatrix}\tag{19} E3221=E32E21= 1210015001 (19)
    E 21 = [ 1 0 0 − 2 1 0 0 0 1 ] ; ⇒ ( E 21 ) − 1 = [ 1 0 0 2 1 0 0 0 1 ] ; (20) E_{21}=\begin{bmatrix}1&0&0\\\\-2&1&0\\\\0&0&1\end{bmatrix};\Rightarrow(E_{21})^{-1}=\begin{bmatrix}1&0&0\\\\2&1&0\\\\0&0&1\end{bmatrix};\tag{20} E21= 120010001 ;(E21)1= 120010001 ;(20)
    E 32 = [ 1 0 0 0 1 0 0 − 5 1 ] ; ⇒ ( E 32 ) − 1 = [ 1 0 0 0 1 0 0 5 1 ] ; (20) E_{32}=\begin{bmatrix}1&0&0\\\\0&1&0\\\\0&-5&1\end{bmatrix};\Rightarrow(E_{32})^{-1}=\begin{bmatrix}1&0&0\\\\0&1&0\\\\0&5&1\end{bmatrix};\tag{20} E32= 100015001 ;(E32)1= 100015001 ;(20)
    L = ( E 3221 ) − 1 = ( E 21 ) − 1 ( E 32 ) − 1 = [ 1 0 0 2 1 0 0 5 1 ] ; (21) L=(E_{3221})^{-1}=(E_{21})^{-1}(E_{32})^{-1}=\begin{bmatrix}1&0&0\\\\2&1&0\\\\0&5&1\end{bmatrix};\tag{21} L=(E3221)1=(E21)1(E32)1= 120015001 ;(21)
  • 综上所述:
    A = L U (22) A=LU\tag{22} A=LU(22)

4. 运算量

  • 假设我们矩阵A是100X100的矩阵,那么将矩阵A通过行变换分解成A=LU 一共要进行如下计算步骤:
    C o u n t = n 2 + ( n − 1 ) 2 + ⋯ + 2 2 + 1 2 = 1 3 n 3 = 1000000 3 (23) Count=n^2+(n-1)^2+\dots+2^2+1^2=\frac{1}{3}n^3=\frac{1000000}{3}\tag{23} Count=n2+(n1)2++22+12=31n3=31000000(23)

5. 置换矩阵-左行右列

  • 左乘置换矩阵-进行行变换XA
  • 右乘置换矩阵-进行列变换AX
  • 置换矩阵指的是一列中只有一个位置为1,同一列其他位置均为0,用来对矩阵进行位置交换。
  • 第一行和第二行位置交换
    A = [ 1 2 3 4 5 6 7 8 9 ] (24) A=\begin{bmatrix}1&2&3\\\\4&5&6\\\\7&8&9\end{bmatrix}\tag{24} A= 147258369 (24)
    B = [ 4 5 6 1 2 3 7 8 9 ] = [ 0 1 0 1 0 0 0 0 1 ] [ 1 2 3 4 5 6 7 8 9 ] (25) B=\begin{bmatrix}4&5&6\\\\1&2&3\\\\7&8&9\end{bmatrix}=\begin{bmatrix}0&1&0\\\\1&0&0\\\\0&0&1\end{bmatrix}\begin{bmatrix}1&2&3\\\\4&5&6\\\\7&8&9\end{bmatrix}\tag{25} B= 417528639 = 010100001 147258369 (25)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/764704.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hyper-v虚拟机使用宿主机usb设备

文章目录 一、修改宿主机组策略二、使用 一、修改宿主机组策略 在宿主电脑上,按 winr 组合键打开运行窗口,输入 gpedit.msc 打开组策略编辑器,依次点击计算机配置- 管理模板- Windows 组件- 远程桌面服务- 远程桌面会话客户端- RemoteFX USB…

5.域控服务器都要备份哪些资料?如何备份DNS服务器?如何备份DHCP服务器?如何备份组策略?如何备份服务器状态的备份?

(2.1) NTD(域控数据库)备份 (2.2)DNS备份 (2.3)DHCP备份 (2.4)组策略备份 (2.5)CA证书备份 (2.6)系统状态备份 (2.1)…

如何使用ospf (enps) 简单实践ospf协议

1. OSPF的基本概念 OSPF(Open Shortest Path First,开放式最短路径优先)是一种广泛应用于TCP/IP网络中的内部网关协议(Interior Gateway Protocol, IGP),主要用于在同一自治系统(Autonomous Sys…

js工具方法记录

校验数字是否有效的11位手机号 function isValidPhoneNum(value: string) {return /^[1][3,4,5,6,7,8,9][0-9]{9}$/.test(value) }手机号中间4位掩码 function maskPhoneNum(phone: string, space false) {if (!phone) {return }const reg /(\d{3})\d{4}(\d{4})/return pho…

人像抠图HumanSeg——基于大规模电话会议视频数据集的连接感知人像分割

前言 人像抠图将图像中的人物与背景进行像素级别的区分的技术。通过人像分割,可以实现诸如背景虚化、弹幕穿人等各种有趣的功能,为视频通话和影音观看提供更加优质和丰富的体验。由于广泛部署到Web、手机和边缘设备,肖像分割在兼顾分割精度的…

解决微信小程序页面数量限制问题的6种方法

微信小程序页面数量限制为200个页面,如果您需要展示更多页面,可以考虑使用以下6种方法来解决不同场景和需求微信小程序页面数量限制问题。 1. 动态生成内容 使用导航跳转到新页面,并在新页面中动态生成内容。例如,可以使用 wx.n…

真机笔记(2)项目分析

目录 1. 项目: 2. 网络工程师工作流程 3. 实验 设备命名 登录密码 使用SSH协议 1. 项目: 竞标方:集成商、厂商、代理商、服务商、监理检测公司 在一个网络项目中,不同的角色承担着不同的职责和任务。以下是集成商、厂商、代…

目标跟踪与行为识别

目标跟踪与行为识别是计算机视觉领域中的两个重要研究方向,它们在视频监控、人机交互、智能交通、机器人导航等多个领域有着广泛的应用。 目标跟踪 目标跟踪是指在视频序列中连续地定位一个或多个目标的位置和状态。它的核心任务是关联视频中不同帧中的目标&#…

经典面试题prototype 和 proto 区别是什么

原型是为了实现对象间的联系,解决构造函数无法数据共享而引入的一个属性,而原型链是一个实现对象间联系即继承的主要方法 prototype是构造函数的属性 __proto__是每个实例都有的属性,可以访问 [[prototype]] 属性 实例的__proto__与其构造函…

Rust 语言的 HashMap

HashMap 在 Rust 中是一个非常常用且强大的数据结构,它允许你存储键值对(key-value pairs),并且能够快速地基于键检索值。 下面是使用 HashMap 的一些基本示例: 首先,你需要在你的文件中引入 HashMap: use std::col…

Github多账号切换

在开发阶段,如果同时拥有多个开源代码托管平台的账户,在代码的管理上非常麻烦。那么,如果同一台机器上需要配置多个账户,怎样才能确保不冲突,不同账户独立下载独立提交呢? 我们以两个github账号进行演示 …

ChatGPT智能聊天系统源码v2.7.6全开源Vue前后端+后端PHP

测试环境:Linux系统CentOS7.6、宝塔、PHP7.4、MySQL5.6,根目录public,伪静态thinkPHP,开启ssl证书 具有文章改写、广告营销文案、编程助手、办公达人、知心好友、家庭助手、出行助手、社交平台内容、视频脚本创作、AI绘画、思维导图等功能 ai通道:文心一言、MiniMax、智…

【Linux C | 多线程编程】线程的退出

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 ⏰发布时间⏰: 本文未经允许…

序列的使用

目录 序列的创建 序列的使 Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 在许多数据库之中都会存在有一种数据类型 — 自动增长列,它能够创建流水号。如果想在 Oracle 中实现这样的自动增长列,可…

亚远景科技-Hardware SPICE与ISO26262,硬件SPICE与功能安全的映射

硬件SPICE(Software Process Improvement and Capability Determination for Hardware Engineering)与ISO26262的映射主要涉及将硬件工程过程的改进模型与ISO 26262系列标准中的硬件开发进行对应和关联。这种映射有助于组织在进行硬件工程过程改进时&…

laravel(源码笔记)控制器解析过程

控制器 isControllerActionrunController parseControllerCallback Str::parseCallback($this->action[‘uses’]); 可能返回ControlleractionCallback或者只有回调callbackgetController parseControllerCallback()[0]返回控制器实例 getControllerMethod parseControlle…

Ubuntu安装GPU驱动

ubuntu-drivers autoinstall 中间提示nvidia 470 有戏啊 nvidia-smi

蓝桥杯第192题 等差数列 C++ Java Python

目录 题目 思路和解题方法 复杂度 空间 时间 c 代码 Java 版本(仅供参考) Python 版本(仅供参考) 题目 思路和解题方法 首先,输入n和数组a的值。对数组a进行排序。计算数组a中相邻元素之间的差的最大公约数&…

android AMS的面试题目

问题: 描述AMS(ActivityManagerService)在Android系统中的角色和作用是什么? 答案: AMS是Android系统中的核心服务之一,它主要负责管理应用程序的四大组件(Activity、Service、BroadcastReceive…

对象与继承

创建一个对象的几种方式 new Object()或者字面量{},或者__proto__; let obj {name: obj,sayName: function () {console.log(this.name)} } // obj ---> Object.prototype ---> null ​// 可以通过 __proto__ 字面量属性将新创建对象的[[Prototype]] 指向另…