一种基于约化因子上三角矩阵求逆方法与MATLAB仿真

news2024/11/15 17:33:08

一种基于约化因子上三角矩阵求逆的方法与MATLAB仿真

目录

前言

一、上三角矩阵单位化

二、C对角矩阵求逆

三、A' 矩阵求逆

四、A矩阵求逆

五、计算量分析

六、MATLAB仿真

七、参考资料

总结


前言

        矩阵运算广泛应用于实时性要求的各类电路中,其中矩阵求逆运算最难以实现。本文是在阅读文献后,仿真文中采用的一种约化因子求逆的优化算法,将任意一个 n×n 阶 上三角矩阵转换成对角线为 1 的上三角矩阵,使得除法运算与乘加运算分离开来,大大简化矩阵求逆运算过程。文献中有些地方表述有误,在撰写本文时已经改正。


提示:以下是本篇文章正文内容,希望能帮助到各位,转载请附上链接。

一、上三角矩阵单位化

        假设AN×N阶上三角矩阵,其对角线元素非0,可以通过变换将其用一个对角矩阵C和对角线为1的上三角矩阵A'的乘积表示。

\textbf{CA}'=\textbf{A}

其中

\textbf{A}_{N\times N}=\begin{pmatrix}c_{11}&c_{12}&c_{13}&\cdots&c_{1n}\\0&c_{22}&c_{23}&\cdots&c_{2n}\\\vdots&\vdots&\vdots&\vdots&\vdots\\0&0&\cdots&c_{n-1n-1}&c_{n-1n}\\0&0&0&\cdots&c_{n\times n}\end{pmatrix}

\textbf{C}_{N\times N}=\begin{pmatrix}c_{11}&0&0&\cdots&0\\0&c_{22}&0&\cdots&0\\\vdots&\vdots&\vdots&\vdots&\vdots\\0&0&\cdots&c_{33}&0\\0&0&0&\cdots&c_{44}\end{pmatrix}

\textbf{A}_{N\times N}'=\begin{pmatrix}1&a_{12}&a_{13}&\cdots&a_{1n}\\0&1&a_{23}&\cdots&a_{2n}\\\vdots&\vdots&\vdots&\vdots&\vdots\\0&0&\cdots&1&a_{n-1n}\\0&0&0&\cdots&1\end{pmatrix}

通式为

a_{mn}=\frac{C_{mn}}{C_{mm}},1\leqslant m\leqslant N ,2\leqslant n\leqslant N

二、C对角矩阵求逆

        对于C这个对角矩阵求逆很简单,只需要对其对角元取倒数即可。

        \textbf{C}_{_{N\times N}}^{-1}=\begin{pmatrix}\frac{1}{c_{11}}&0&0&\cdots&0\\0&\frac{1}{c_{22}}&0&\cdots&0\\\vdots&\vdots&\vdots&\vdots&\vdots\\0&0&\cdots&\frac{1}{c_{33}}&0\\0&0&0&\cdots&\frac{1}{c_{44}}\end{pmatrix}

三、A' 矩阵求逆

        对于上三角矩阵A',每个 2 行 2 列交集所构成的二阶子矩阵,称为操作矩阵,如

\begin{pmatrix}a_{12}&a_{13}\\1&a_{23}\end{pmatrix}

构成一个操作矩阵,每次进行行变换的效果体现在操作矩阵的右上角元素上,即令b_{13}=a_{13}-a_{12}a_{23},则b_{13}称为约化因子,其通式为

b_{mn}=a_{mn}-\sum_{k=m+1}^{n-1}(a_{mk}b_{kn}),n\geqslant3

则可求出A' 的逆矩阵,即为

\mathbf{A}_{N\times N}^{'-1}=\begin{pmatrix}1&-a_{12}&-b_{13}&\cdots&-b_{1n}\\0&1&-a_{23}&\cdots&-b_{2n}\\\vdots&\vdots&\vdots&\vdots&\vdots\\0&0&\cdots&1&-a_{n-1n}\\0&0&0&\cdots&1\end{pmatrix}

需要计算(N-1)(N-2)/2个元素。

        根据公式,计算b_{mn}时,会发现需要先求b_{kn},其他都已知,会发现他俩的下标n一样,区别在于表示行的下标,而且k>m,所以计算时每一列从下至上依次计算,列与列之间互不影响。

        谈到这里,是不是会发现如果在FPGA上面用此方法计算上三角矩阵的逆矩阵会大大提高速度,因为关键的计算就在于A' 的逆矩阵的计算,而计算其逆矩阵时列与列又互不影响,直接可以并行计算。

四、A矩阵求逆

        由于\textbf{CA}'=\textbf{A},那么

\textbf{A}^{-1}=(\textbf{CA}')^{-1}=\textbf{A}'^{-1}\textbf{C}^{-1}

由于\textbf{C}^{-1}是个对角阵,所以也可以表示为\textbf{C}^{-1}\textbf{A}'^{-1}

五、计算量分析

       限制N\geqslant 3,否则根据前面的分析根本不需要求b_{mn}

        对N×N阶对角矩阵C求逆需要N次除法。

        将一个主对角元素非0且非1的N×N阶矩阵A变为一个主对角元素全1的矩阵A'和对角矩阵C需要运算的乘法次数(将除法看成去乘以C逆矩阵的对角元)为:

\frac{N(N-1)}{2}

        求\mathbf{A}_{N\times N}^{'-1}的第nn≥3)列需要的乘法次数与加法(在FPGA中实现时,减法可以看成加法)次数相等,均为

        1+2+\cdots +n-2=\frac{(n-1)(n-2)}{2}

那么计算所有的列需要的乘法与加法次数均为:

\sum_{n=3}^{N} \frac{(n-1)(n-2)}{2} \\= \frac{1}{2} \sum_{n=1}^{N} (n^2 - 3n + 2)\\=\frac{1}{2} \left( \frac{N(N+1)(2N+1)}{6} - 3 \cdot \frac{N(N+1)}{2} + 2N \right)\\=\frac{N^{3}-3N^{2}+2N}{6}

其中用到公式

\sum_{n=1}^{N} n^2=\frac{N(N+1)(2N+1)}{6}

        最后计算\textbf{A}'^{-1}\textbf{C}^{-1}需要的乘法次数为

\frac{N(N-1)}{2}

因为\textbf{A}'^{-1}是对角元为1的上三角矩阵,\textbf{C}^{-1}是对角矩阵,所以只有上述表达式的乘法次数。

        那么总的运算量为:

        乘法:\frac{N(N-1)}{2}+\frac{N^{3}-3N^{2}+2N}{6}+\frac{N(N-1)}{2}=\frac{N^{3}+3N^{2}-4N}{6}

        加法:\frac{N^{3}-3N^{2}+2N}{6}

        除法:N

        特殊的,如果待求矩阵A本来就是一个主对角线全为1的上三角矩阵,那么就可以省略上三角矩阵单位化,那么阵个求逆只会用到乘法和加法各\frac{N^{3}-3N^{2}+2N}{6}次。

六、MATLAB仿真

        以MATLAB自带求逆函数inv为对比,仿真得出以下结果:

        误差定义及源代码见参考资料。

七、参考资料

https://download.csdn.net/download/m0_66360845/89011663


总结

        以上介绍了一种基于约化因子上三角矩阵求逆的方法与MATLAB仿真,小伙伴们认真看完必定有收获。

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

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

相关文章

04课程发布模块之课程审核

课程审核 课程审核是为了防止课程信息出现违规情况,课程信息不完善对网站用户体验也不好,课程审核不仅起到监督作用,也是帮助教学机构规范使用平台的手段 教学机构提交课程审核后,平台运营人员登录运营平台进行课程审核&#xf…

SpringBoot ---HTML转PDF工具

之前项目用的WKHtmlToPdf,速度较慢,现在需要改成基于ITEXT java使用itext7实现html转pdf_java使用itext7实现html转pdf全代码完整示例 cainiaobulan-CSDN博客文章浏览阅读2.7k次。使用itext7html转pdf_java使用itext7实现html转pdf全代码完整示例 caini…

C++之继承详解

一.继承基础知识 继承定义: 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保 持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象 程序设…

电脑文件msvcp100.dll丢失原因,如何快速修复msvcp100.dll

电脑文件msvcp100.dll丢失原因,最近有朋友在问这个,显然会问这个的人,一般都是遇到了msvcp100.dll丢失的问题了,今天我们就来详细的给大家说说msvcp100.dll这个文件吧,我们只有了解了msvcp100.dll这个文件,…

C语言,自定义数据类型

引言: C语言当中除了,自己带的基本数据类型,还有一些自定义数据类型,用户自己可以控制数据类型大小,所包含的元素,使用起来更加方便,快捷。 一 数组arr: 对于数组而言&#xff0…

LeetCod459:重复的子字符串

题目描述 给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。 示例 1: 输入: s “abab” 输出: true 解释: 可由子串 “ab” 重复两次构成。 示例 2: 输入: s “aba” 输出: false 示例 3: 输入: s “abcabcabcabc” 输出: true 解释: 可…

Obsidian插件PicGo-图床创建使用[腾讯云保姆级教程]

一、下载PicGo并配置 1:安装插件 首先插件市场搜索picgo会出现Image auto upload,这个就是PicGo安装此插件并启用即可 2:安装PicGo软件 打开此链接:https://github.com/Molunerfinn/PicGo 自己选择一个方式下载,我…

unicloud 云函数 介绍及使用

普通云函数 callFunction方式云函数,也称之为普通云函数。 uni-app的前端代码,不再执行uni.request联网,而是通过uniCloud.callFunction调用云函数。 callFunction方式避免了服务器提供域名,不暴露固定ip,减少被攻击…

【JS】闭包的漏洞

下面这段代码可以实现:通过立即执行函数o返回对象中的get方法,通过参数key得到fn函数内部对象obj中的值。 var fn function () {var obj {a: 1,b: 2}return {get: function (key) {return obj[key]}} }() console.log(fn.get(b)); // 2这是一个典型的…

3个好用的WP免费主题

免费wordpress模板下载 高端大气上档次的免费wordpress主题,首页大图全屏显示经典风格的wordpress主题。 https://www.wpniu.com/themes/289.html 经典的红色免费wordpress主题 这是一款经典的免费wordpress主题,被广泛应用于多个行业的网站。 https…

智慧公厕的系统构成与功能解析

智慧公厕系统是通过传感器和云平台相结合的创新技术,旨在提供更好的公厕管理与服务。智慧公厕从系统的构成来看,主要分为感知层(数据收集)、传输层(数据传输)、平台层(数据处理)和应…

VUE+Vant实现H5组织架构选人选公司组件

提醒自己: 这是之前的逻辑,或许你重新写会有更好的方法,可以参考逻辑!!! 功能介绍 1.有面包屑点击切换 2.有公司、部门、人员 3.单选、多选实现 4.编辑/回显 5.使用随意切换层级和跳转到指定层级回显等功…

CSAPP | Lab1-Data Lab 详细解析

You may assume that your machine:1. Uses 2s complement, 32-bit representations of integers.2. Performs right shifts arithmetically.3. Has unpredictable behavior when shifting if the shift amountis less than 0 or greater than 31.Part1:整数 1.Bit…

力扣爆刷第102天之hot100五连刷96-100

力扣爆刷第102天之hot100五连刷96-100 文章目录 力扣爆刷第102天之hot100五连刷96-100一、136. 只出现一次的数字二、169. 多数元素三、75. 颜色分类四、31. 下一个排列五、287. 寻找重复数 一、136. 只出现一次的数字 题目链接:https://leetcode.cn/problems/sing…

Java疫苗接种管理系统

本系统lw为2024-3-21本人原创,查chong13% 1.3W字,可以直接上交,这并不是乱七八糟的技术文档和项目文档。 4.2 功能结构设计 可视化的疫苗接种管理系统功能结构设计主要包括以下几个模块: 登录注册模块:这个模块负责…

算法体系-14 第十四 贪心算法(上)

一 、 递归套路解决判断完全二叉树 1.1 描述 1.2 分析 1.2 分析 第二种 第三种 第四种 1.3 代码 public static boolean isCBT2(Node head) {return process(head).isCBT;}public static class Info {public boolean isFull;public boolean isCBT;public int height;public…

hcia静态实验

题目: 要求: 1、R6为isp,接口ip均为公有地址,该设备只能配置ip地址,之后不能再对其进行任何其他配置 2、r1到r5为局域网,私有ip地址为192.168.1.0 24,合理分配 3、r1,r2,r4各有两个环回地址&am…

2024年全国职业院校技能大赛中职组大数据应用与服务赛项题库参考答案陆续更新中,敬请期待…

2024年全国职业院校技能大赛中职组大数据应用与服务赛项题库参考答案陆续更新中,敬请期待… 武汉唯众智创科技有限公司 2024 年 3 月 联系人:辜渝傧13037102709 题号:试题04 ZZ052-大数据应用与服务赛选赛题04 模块一:平台搭建…

JVM面试篇

面试篇就是复习前面学的 什么是JVM 1.定义:JVM指的是Java虚拟机,本质是一个运行在计算机上的程序 2.作用:为了支持Java中Write Once ,Run Anywhere 编写一次 到处运行的跨平台特性 功能: 1.解释和运行 2.内存管理…

jconsole的使用

前提 已安装jdk 使用步骤 1、命令行输入jconsole