伪逆矩阵的两种求法

当矩阵的行列不相等,矩阵不是方阵时,求解矩阵的逆,可以使用伪逆的方法。

求解伪逆有两种方式。本文以mxn(m<n)的矩阵求解为例。

方法1:右伪逆

对于一个矩阵 A_{m\times n}和矩阵B_{n\times m},如何矩阵之间满足:ABA = A

则称B是A的广义逆矩阵。在A满秩的情况下,A的右伪逆为:

A^{-1}=A^{T}(AA^{T})^{-1}

方法2:SVD求解

通过对矩阵进行奇异值分解,来求解伪逆。

J=UDV^{T}

可以得到矩阵J的伪逆矩阵表达式为:

J^{+}=VD^{+}U^{T}

案例:

J =

   -0.1510   -0.3567   -0.0904    0.0210   -0.1578    0.0014   -0.0089
   -1.0735   -0.0000   -0.0000    0.2260   -0.0290    0.1098    0.0007
   -0.0000   -1.0735   -0.9870   -0.1501   -0.5614    0.0005   -0.1308
   -0.0000    0.0000    0.0000   -0.9904   -0.0075   -0.9964   -0.0125
   -0.0000   -1.0000   -1.0000   -0.0000   -0.9985    0.0120   -0.9999
    1.0000    0.0000    0.0000   -0.1383    0.0538    0.0842   -0.0048
JinvT = J'*inv(J*J')

JinvT =

    0.0027   -1.8198   -0.0082   -0.2810    0.0078   -0.9532
   -3.5804   -0.9171    0.2223   -0.1697    0.1353   -1.5253
    4.3550    1.1383   -1.6035    0.3121    0.1987    1.8798
   -0.1698   -7.5687    0.0252   -1.5649   -0.0297   -8.1506
   -0.7617    2.3628    0.3705    0.2948   -0.3770    2.4215
    0.1746    7.5366   -0.0405    0.5550    0.0443    8.1170
   -0.0119   -2.4902    1.0109   -0.4302   -0.9570   -2.6751
[U,S,V] = svd(J)

U =

    0.1364   -0.0861    0.0532   -0.2108   -0.9603   -0.0676
    0.0089   -0.6416    0.3423   -0.0014    0.1256   -0.6748
    0.6017    0.0429    0.0240   -0.7574    0.2473    0.0268
    0.0218    0.5441    0.8302    0.0685   -0.0078   -0.0974
    0.7865   -0.0161   -0.0623    0.6137   -0.0242   -0.0116
   -0.0142    0.5319   -0.4315   -0.0260   -0.0166   -0.7278


S =

    2.4921         0         0         0         0         0         0
         0    1.5599         0         0         0         0         0
         0         0    1.3460         0         0         0         0
         0         0         0    0.6268         0         0         0
         0         0         0         0    0.1725         0         0
         0         0         0         0         0    0.0591         0


V =

   -0.0178    0.7908   -0.5996    0.0116   -0.0371    0.1151    0.0001
   -0.5943    0.0005    0.0130    0.4380    0.5867    0.1177    0.3109
   -0.5589   -0.0118    0.0251    0.2439   -0.7718   -0.1480    0.0994
   -0.0422   -0.4908   -0.5109    0.0714   -0.1091    0.6617   -0.2034
   -0.4598    0.0312    0.0007   -0.2491    0.1874   -0.1961   -0.8075
   -0.0048   -0.3642   -0.6141   -0.1019    0.1084   -0.6532    0.2033
   -0.3477    0.0009    0.0376   -0.8191    0.0034    0.2190    0.3984
SS'

ans =

    0.4013         0         0         0         0         0
         0    0.6411         0         0         0         0
         0         0    0.7430         0         0         0
         0         0         0    1.5954         0         0
         0         0         0         0    5.7974         0
         0         0         0         0         0   16.9323
         0         0         0         0         0         0

>> JinvSVD = V*SS'*U'

JinvSVD =

    0.0027   -1.8198   -0.0082   -0.2810    0.0078   -0.9531
   -3.5804   -0.9171    0.2223   -0.1697    0.1353   -1.5253
    4.3550    1.1383   -1.6035    0.3121    0.1986    1.8798
   -0.1698   -7.5686    0.0252   -1.5649   -0.0297   -8.1506
   -0.7617    2.3628    0.3705    0.2948   -0.3771    2.4215
    0.1746    7.5366   -0.0405    0.5550    0.0443    8.1169
   -0.0119   -2.4902    1.0109   -0.4302   -0.9571   -2.6750

验证

J*JinvT

ans =

    1.0000   -0.0000    0.0000    0.0000   -0.0000   -0.0000
   -0.0000    1.0000    0.0000   -0.0000   -0.0000   -0.0000
    0.0000    0.0000    1.0000    0.0000   -0.0000    0.0000
    0.0000    0.0000   -0.0000    1.0000    0.0000    0.0000
    0.0000    0.0000   -0.0000    0.0000    1.0000    0.0000
    0.0000    0.0000   -0.0000   -0.0000    0.0000    1.0000

>> J*JinvSVD

ans =

    1.0000    0.0000    0.0000   -0.0000    0.0000   -0.0000
    0.0000    1.0000   -0.0000   -0.0000   -0.0000   -0.0000
    0.0000   -0.0000    1.0000    0.0000    0.0000    0.0000
   -0.0000   -0.0000    0.0000    1.0001   -0.0000   -0.0000
    0.0000   -0.0000    0.0000   -0.0000    1.0001   -0.0000
   -0.0000   -0.0000    0.0000   -0.0000   -0.0000    1.0000

优缺点对比:

矩阵伪逆(SVD)和右伪逆都是用于求解不可逆矩阵的逆运算的方法,它们各有优缺点:

矩阵伪逆(SVD)的优缺点

优点:

  • 可以求解任意矩阵(非方阵、奇异矩阵)的伪逆
  • 计算精度高,能很好地近似原矩阵

缺点:

  • 计算复杂度较高,需要进行奇异值分解(SVD)
  • 对噪声数据敏感,可能放大噪声影响

右伪逆的优缺点

优点:

  • 只需矩阵行满秩,计算简单
  • 对噪声数据不太敏感

缺点:

  • 只适用于行满秩矩阵,列不满秩时无法使用
  • 近似精度较差,可能无法很好地逼近原矩阵

综上所述,矩阵伪逆(SVD)适用范围更广,精度更高,但计算复杂;而右伪逆只适用于行满秩矩阵,但计算简单,对噪声较为鲁棒。需根据具体问题的要求来权衡选择。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

3D模型人物换装系统(五 模型核批之后模型uv不正确)模型UV不正确

3D模型人物换装系统&#xff08;五 模型核批之后模型uv不正确&#xff09;模型UV不正确 介绍展示Maya导入查看uvUnity中测试分析没合批为什么没有问题总结 介绍 最近在公司里给公司做模型优化合批的时候发现了模型的uv在合批之后无法正常展示&#xff0c;这里找了很多的原因&a…

hadoop安装记录

零、版本说明 centos [rootnode1 ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)jdk [rootnode1 ~]# java -version java version "1.8.0_311" Java(TM) SE Runtime Environment (build 1.8.0_311-b11) Java HotSpot(TM) 64-Bit Server VM (…

讲座回顾|DolphinDB 携手上海高金共探量化前沿

4月16日&#xff0c;由上海高级金融学院 MBA 量化投资俱乐部和上海交通大学量化分析协会联合举办的量化公开课如期在上海举行。DolphinDB 创始人兼 CEO 周小华博士作为演讲嘉宾受邀出席&#xff0c;针对如何利用中高频数据挖掘因子的话题&#xff0c;为大家分享了行业的前沿应用…

Nginx 代理配置

最近&#xff0c;工作中遇到需要用到 Nginx 实现正向web代理和反向web代理的需求&#xff0c;其中反向web代理需要支持发送HTTP 和 HTTPS请求 1. 正向代理 1.1. 正向代理 流程 下面以访问百度为例解释正向代理过程&#xff1a; 客户将浏览器代理地址设置为代理服务器地址和服…

入门产品经理你一定要知道的事(上)

产品&#xff08;Product&#xff09;是任何可以让人注意、获取、使用、或能够满足某种消费需求的东西。可以是实体产品、服务、人、组织、地点、思想等。 狭义上产品特指互联网产品&#xff0c;是关于软件、硬件的集合体。本期文章所说的产品是指互联网产品。 产品经理&#…

Spring Boot中JUnit 4与JUnit 5的如何共存

文章目录 前言一、先上答案二、稍微深入了解2.1 maven-surefire-plugin是什么2.2 JUnit4和JUnit5有什么区别2.2.1 不同的注解2.2.2 架构 前言 在maven项目中&#xff0c;生成单测时是否有这样的疑问&#xff1a;该选JUnit4还是JUnit5&#xff1f;在执行 mvn test 命令时有没有…

跳表:高效索引的神奇算法

跳表&#xff08;Skip List&#xff09;的设计思想基于二叉查找树和链表&#xff0c;它采用了一种多层次的思路&#xff0c;通过随机化的方式在每个节点添加多个后继节点&#xff0c;从而实现快速查找 跳表是一种数据结构&#xff0c;它以一种分层的方式来存储数据&#xff0c;…

百面算法工程师 | 分类和聚类

目录 6.1 为什么正确率有时不能有效评估分类算法&#xff1f; 6.2 什么样的分类器最好&#xff1f; 6.3 什么是聚类&#xff0c;你知道哪些聚类算法&#xff1f; 6.4 K-Means聚类算法如何调优? 6.5 K-Means聚类算法如何选择初始点? 6.6 K-Means聚类聚的是特征还是样本 …

一文掌握:数据湖是什么?可不是数据仓库

一、什么是数据湖 数据湖&#xff08;Data Lake&#xff09;是指一个大型数据存储和处理系统&#xff0c;它能够存储各种类型和格式的数据&#xff0c;包括结构化数据、半结构化数据和非结构化数据。数据湖的目的是为了让企业可以更好地管理和利用大量的数据&#xff0c;以便进…

Email API的安全性如何保障?API发信技巧?

Email API有哪些主要功能&#xff1f;如何选择邮箱API进行集成&#xff1f; Email API在企业和个人用户之间发挥着举足轻重的作用。然而&#xff0c;随着Email API的广泛应用&#xff0c;其安全性问题也逐渐凸显出来。那么&#xff0c;Email API的安全性究竟如何保障呢&#x…

基于 Grassmannian Manifold的动态图嵌入学习的脑网络时空枢纽识别

Spatiotemporal Hub Identification in Brain Network by Learning Dynamic Graph Embedding on Grassmannian Manifold 摘要 神经成像技术的进步使得测量不同大脑区域之间的连接随时间演变成为可能。新出现的证据表明&#xff0c;一些关键的大脑区域&#xff0c;称为枢纽节点…

adb工具使用

作者简介&#xff1a; 一个平凡而乐于分享的小比特&#xff0c;中南民族大学通信工程专业研究生在读&#xff0c;研究方向无线联邦学习 擅长领域&#xff1a;驱动开发&#xff0c;嵌入式软件开发&#xff0c;BSP开发 作者主页&#xff1a;一个平凡而乐于分享的小比特的个人主页…

社会工程渗透测试教程(二)

原文&#xff1a;annas-archive.org/md5/db987a87e1478b8a8617c263c631b477 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第六章&#xff1a;通过有效的威胁建模确保价值 Richard Ackroyd&#xff0c;随机风暴有限公司高级安全工程师 大多数客户意识到他们需要社会…

20.Unity飞机大战游戏

1任务&#xff1a;使背景图动起来 2任务&#xff1a;飞机换帧动画 3任务&#xff1a;让飞机发射子弹 4任务&#xff1a;敌机出现 5任务&#xff1a;控制飞机 6任务&#xff1a;游戏碰撞逻辑 7任务&#xff1a;另外两种类型的敌机 8任务&#xff1a;拾取奖励物品换枪 9…

RK3568 学习笔记 : u-boot 通过 tftp 网络更新 u-boot自身

前言 开发板型号&#xff1a; 【正点原子】 的 RK3568 开发板 AtomPi-CA1 使用 虚拟机 ubuntu 20.04 收到单独 编译 RK3568 u-boot 使用 rockchip Linux 内核的设备树 【替换】 u-boot 下的 rk3568 开发板设备树文件&#xff0c;解决 u-boot 下千兆网卡设备能识别但是无法 Pi…

vulfocus靶场名称: apache-cve_2021_41773/apache-cve_2021_42013

Apache HTTP Server 2.4.49、2.4.50版本对路径规范化所做的更改中存在一个路径穿越漏洞&#xff0c;攻击者可利用该漏洞读取到Web目录外的其他文件&#xff0c;如系统配置文件、网站源码等&#xff0c;甚至在特定情况下&#xff0c;攻击者可构造恶意请求执行命令&#xff0c;控…

JAVA学习笔记30(线程)

1.线程 1.线程的概念 1.线程是由进程创建的&#xff0c;是进程的一个实体 2.一个进程可以拥有多个线程 2.并发 ​ *同一时刻&#xff0c;多个任务交替执行&#xff0c;造成一种"貌似同时"的错觉&#xff0c;单核cpu实现的多任务就是并发 3.并行 ​ *同一时刻&…

电商平台业务及架构演变史

不少人认为电商系统很简单&#xff0c;因为现在做电商的太多了&#xff0c;看到的电商产品也多。看来看去产品都差不多&#xff0c;没什么特别。 其实中国电商发展已有20多年历史&#xff0c;电商以销售为核心连接着研、产、供、销、服整套的信息系统体系。其中的设计并没有那…

Mongodb支持事务吗?

一、概念 1.1、MongoDB事务简介 MongoDB 是一个非关系型数据库管理系统&#xff0c;最初并不支持事务。然而&#xff0c;随着时间的推移&#xff0c;MongoDB 在其4.0版本中引入了多文档事务支持&#xff0c;使得在单个集合中执行多个操作成为可能。 In MongoDB, an operation…

【MySQL探索之旅】多表查询

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更…