【MATLAB】几种求矩阵伪逆的方法
几种求矩阵伪逆的方法
A*x=y当A不可逆如何解x
求伪逆有五种方法,左右同时乘以A’,’chol()分解,qr() 分解,svd()分解和pinv()求伪逆,下面来比较一下哪个最优秀。
如果A是个355行3列的矩阵,经过计算,五个方式计算结果相同,对模型的拟合都是没有影响的。
如果A是个355行12列的矩阵(更高维),那么根据我对数据的拟合,结果如下:
深蓝线是数据,绿色的线是两边同时×A’,浅蓝色的线是pinv分解拟合出的模型,红线是qr拟合出的模型,黄线是svd分解拟合出的模型。这么浅显的看的话在高维下svd和两边同时×A’胜出,那么他们究竟谁更胜一筹,我们看一下第一范式,第二范式和Inf范式检验的结果:
可见在高维情况下是svd分解更胜一筹(范式结果低),低维下不要轻易用两边同时×A’,因为会出奇异矩阵警告。
几种求伪逆的方法如下(matlab代码):
result=(A'*A)\(A'*y) %两边同时乘A’
result_pinv=pinv(A)*y %pinv%svd
[U,S,V] = svd(A); T=S;T(find(S~=0)) = 1./S(find(S~=0));svdInvA = V * T' * U';alpha_svd=svdInvA*y;%qr[Q,R] = qr(A);
InvR = inv(R'*R)*R';
qrInvA =InvR*Q';
alpha_qr=qrInvA*y;
————————————————
原文链接:https://blog.csdn.net/qq_41448372/article/details/105742441
【MATLAB】几种求矩阵伪逆的方法相关推荐
- matlab求矩阵违逆,两种求矩阵伪逆的方法
伪逆矩阵是逆矩阵的广义形式.由于奇异矩阵或非方阵的矩阵不存在逆矩阵,但在matlab里可以用函数pinv(A)求其伪逆矩阵.基本语法为X=pinv(A),X=pinv(A,tol),其中tol为误差, ...
- 求矩阵伪逆的matlab方法,手把手教学
1.定义矩阵a 2.求b,c b为a的线性无关的两列 c为a的行最简的线性无关的两行 3.求b的左逆和c的右逆 左逆和右逆的具体见一下例题: 4.求出结果即可 或者一步到位 有时候会出现小数,转变表达 ...
- Matlab求矩阵的逆(三种方法)
Matlab求矩阵的逆(三种方法) 说明:若所求矩阵为非奇异矩阵(可逆矩阵),则可以精确求得其逆矩阵:若所求矩阵为奇异矩阵,则所求出的逆矩阵是近似的(不精确). 下面以矩阵A为例. inv()方法 A ...
- 求矩阵的逆的三种方法
我们知道求矩阵的逆具有非常重要的意义,本文分享给大家如何针对3阶以内的方阵,求出逆矩阵的3种手算方法:待定系数法.伴随矩阵法.初等变换法(只介绍初等行变换) 待定系数法求逆矩阵 1 首先,我们来看如何 ...
- 机器人运动学---雅克比矩阵伪逆
Problem 使用雅克比矩阵可以通过关节速度,得到EE的速度和角速度.如果雅克比矩阵是方阵且满稚可逆,这时,可以通过EE的线速度和角速度求出关节的速度. 以上是比较理想的情况. 但是,实际情况,往往 ...
- Fortran 求矩阵的逆、行列式的值
#2019,10,8 更新: 重写部分程序,增加部分注释 学Fortran的第一天,就写了这么点东西,分享一下. 内容包括:求矩阵的逆.行列式的值 其中:求逆的方法是先求伴随矩阵再除以行列式的值, 求 ...
- C语言求矩阵的逆(高斯法)
初等变换法是常用的矩阵求逆方法之一 相对于伴随法,初等行变换法有着较低的时间复杂度,可以进行相对高维的矩阵运算,但同时也会损失一点点精度. 伴随法可参考之前的博客:C语言求矩阵的逆(伴随法) 目录 数 ...
- C语言求矩阵的逆(伴随法)
之前介绍了C语言用代数余子式求行列式 本次开始介绍如何用公式法对矩阵求逆,并用C语言将其实现. 之前程序有点小bug,已于2022年11月29日修改. 目录 数学原理 矩阵求逆的公式 数乘矩阵 程序设 ...
- python实现简单的求矩阵的逆
简单记录一下,后续改进 python代码 #模26运算下,求矩阵的逆. #使用伴随矩阵求逆矩阵法. #整个精度保持在整数位(方便求模运算).import numpy as np #扩展欧几里得算法求最 ...
最新文章
- 为什么很多网站的验证码都设置得肉眼都很难识别?
- 挥手送别 2019,翘首期待 2020
- 英国计算机系学生黑掉校长邮箱:倒闭学校,取消考试!
- 傅里叶变换的Matlab代码
- Smali文件添加try/catch语句,出现“invalid use of move-exception”异常
- ts-node 学习笔记 - 如何解决在 Windows10 下不能直接运行 ts-node 的问题
- HDU 4920 Matrix multiplication(矩阵相乘)
- 新型APT组织正在攻击全球的政府实体
- jquery 时间相减获取天数_JQuery Datepicker实现JavaScript日期相减的小例子
- 软件开发团队中各个成员的英文简称
- 以迅雷链为首的中国区块链,用技术赋能行业实现突围
- 程序员工资真的很高么,月入几万的难道不是吹牛?
- Javaweb项目导出Excel文件无法下载问题
- 扩散模型(Diffusion Model)——由浅入深的理解
- 嵌入式睡眠监控报警仪的研究及设计
- 问题-某个程序改了ICO图标后编译后还是显示老图标?
- 20210115领扣刷题
- 利用Python自制贪吃蛇游戏
- 土壤C、N动态对大气臭氧污染的生态学响应
- Excel VBA 合并当前工作簿下的所有工作表
热门文章
- IDEA基本外观设置(主题、字体、鼠标、背景)
- ATT并非手机品牌 常见国外定制机运营商
- 《网络是怎样连接的》读书笔记
- 区块链真的能保护隐私吗?
- xcode怎样配置GLUT和GLTools
- 万豪参加进博会品牌+目的地策略继续深耕中国市场;加利福尼亚乐高乐园和法拉利推出互动式景点项目 | 全球旅报...
- jsp+ssm计算机毕业设计幼儿园管理系统【附源码】
- 斯坦福sr860锁相放大器原理介绍
- [erlang] [rebar依赖] app使用lager依赖
- 绝地求生刺激战场 4倍镜怎么压枪 刺激战场 4倍镜压枪技巧一览