精华内容
下载资源
问答
  • 2021-04-20 03:10:33

    伪逆矩阵是逆矩阵的广义形式。由于奇异矩阵或非方阵的矩阵不存在逆矩阵,但在matlab里可以用函数pinv(A)求其伪逆矩阵。基本语法为X=pinv(A),X=pinv(A,tol),其中tol为误差,pinv为pseudo-inverse的缩写:max(size(A))*norm(A)*eps。函数返回一个与A的转置矩阵A' 同型的矩阵X,并且满足:AXA=A,XAX=X.此时,称矩阵X为矩阵A的伪逆,也称为广义逆矩阵。pinv(A)具有inv(A)的部分特性,但不与inv(A)完全等同。 如果A为非奇异方阵,pinv(A)=inv(A),但却会耗费大量的计算时间,相比较而言,inv(A)花费更少的时间。

    机器视觉中,finite camera的投影矩阵P为一个3*4,秩为3 的矩阵,矩阵P的伪逆如下:

    矩阵P的伪逆为:

    如果A列满秩,那么pinv(A)=(A'*A)^{-1}*A'。

    如果A行满秩,那么pinv(A)=pinv(A')'。

    如果秩亏损,那么只好先做奇异值分解A=UDV',U,V是正交阵,D是对角阵。

    然后取对角阵S,如果D(i,i)=0,那么S(i,i)=0,如果D(i,i)<0或者D(i,i)>0,那么S(i,i)=1/D(i,i)。于是pinv(A)=VSU'。

    -----------------------------------------------------------------------------------------------------------

    原文:https://blog.csdn.net/u014260892/article/details/38581175

    更多相关内容
  • 这些函数专门用于在低秩的情况下执行运算
  • MATLAB与线性代数--逆矩阵与伪逆矩阵

    千次阅读 2020-03-25 13:38:06
    MATLAB与线性代数:逆矩阵求解方程组的解

    求逆矩阵与伪逆矩阵

    矩阵A的逆矩阵用
    在这里插入图片描述
    表示,并且满足下面的关系:
    在这里插入图片描述
    看下面的矩阵方程:
    在这里插入图片描述

    如果A的逆矩阵存在,那么解可以写成:
    在这里插入图片描述
    MATLAB输入下面的命令就可以计算矩阵A的逆矩阵
    在这里插入图片描述
    但是逆矩阵并不一定存在,所以我们可以用矩阵的行列式来判断逆矩阵是否存在,如果
    在这里插入图片描述
    那么逆矩阵不存在,这时我们说此矩阵是一个奇异矩阵。
    下面是一个2x2矩阵的例子
    在这里插入图片描述
    首先检查矩阵的行列式:

    >> A = [2 3; 4 5];
    >> det(A)
    ans =
        -2
    

    由于行列式不等于0,此矩阵的逆矩阵存在,下面进行逆矩阵的求解:

    >> inv(A)
    ans =
       -2.5000    1.5000
        2.0000   -1.0000
    

    又如:

    >> S = [1 0 -1 2; 4 -2 -3 1;0 2 -1 1;0 0 9 8];
    >> det(S)
    ans =
    
      -108
    

    行列式不等于0,逆矩阵T存在:

    >> T = inv(S)
    
    T =
       -0.9259    0.4815    0.4815    0.1111
       -0.6296    0.1574    0.6574    0.0556
       -0.5926    0.1481    0.1481    0.1111
        0.6667   -0.1667   -0.1667         0
    

    检验一下:

    >> S * T
    ans =
        1.0000         0         0         0
        0.0000    1.0000   -0.0000         0
        0.0000   -0.0000    1.0000         0
             0         0         0    1.0000
    

    在这里插入图片描述
    来自于四舍五入误差,用另一种方式检查可以避免错误:

    >> T * S
    ans =
        1.0000         0         0         0
             0    1.0000         0    0.0000
             0         0    1.0000         0
             0         0    0.0000    1.0000
    

    用逆矩阵求解方程

    考虑方程:
    在这里插入图片描述
    系数矩阵是:

    >> A =[3 -2; 6 -2]
    A =
         3    -2
         6    -2
    

    Ax= b中的向量b是:

    >> b = [5;2]
    b =
         5
         2
    

    我们来检查A的行列式来确保A的逆矩阵存在:

    >> det(A)
    ans =
         6
    

    解为:

    >> x = inv(A) * b
    x =
       -1.0000
       -4.0000
    

    解的特殊情况

    如果方程组的个数比未知数的个数少,此时方程组称为欠定。
    这意味着方程组有无数解,因此此时方程组只有一些未知数能能够确定下来,不能确定的可以赋予任意值,因此可以得到无限组解。

    我们举个简单例子
    在这里插入图片描述
    稍微处理可以得到:

    在这里插入图片描述
    在这个方程组中,我们可以为两个变量找到值(xz),第三个变量y是不确定的。我们可以为y选择自己喜欢的值,此时方程组就有解了。
    另一种方程组存在无限解的情况是当det(A) = 0时,此时我们引入伪逆矩阵(属于广义矩阵)的概念
    解的办法是为未知数给出最小范数实数解,即是说,解向量x具有最小范数且元素都为实数,我们拿一个线性方程组来举例:

    在这里插入图片描述
    很明显,这个方程具有无限解,我们输入数据:

    >> A = [3 2 -1;0 4 1];
    >> b = [7;2];
    >> C = [A b];
    

    现在计算秩:

    >> rank(A)
    ans =
         2
    >> rank(C)
    ans =
         2
    

    由于这些秩相等,解存在,可以使用左除产生一组解:

    >> x = A\b
    x =
        2.0000
        0.5000
             0
    

    MATLAB通过把其中一个变量设为0来产生一组解。
    此时的矩阵A不是一个方阵,不能算行列式,所以可以使用伪逆矩阵来解这个方程组。输入以下内容:

    >> x = pinv(A) * b
    x =
        1.6667
        0.6667
       -0.6667
    

    MATLAB使用穆尔-彭罗斯法计算pinv

    展开全文
  • 1.定义矩阵a 2.求b,c b为a的线性无关的两列 c为a的行最简的线性无关的两行 3.求b的左和c的右和右的具体见一下例题: 4.求出结果即可 或者一步到位 有时候会出现小数,转变表达形式,敲入 format ...

    1.定义矩阵a在这里插入图片描述
    2.求b,c
    b为a的线性无关的两列
    c为a的行最简的线性无关的两行
    在这里插入图片描述
    3.求b的左逆和c的右逆

    左逆和右逆的具体见一下例题:
    在这里插入图片描述
    4.求出结果即可
    在这里插入图片描述
    或者一步到位
    在这里插入图片描述
    有时候会出现小数,转变表达形式,敲入
    format cat就会以分数输出结果

    展开全文
  • MATLAB】几种求矩阵伪逆的方法

    千次阅读 2020-04-30 21:15:41
    几种求矩阵伪逆的方法 A*x=y当A不可逆如何解x 求伪逆有五种方法,左右同时乘以A’,’chol()分解,qr() 分解,svd()分解和pinv()求伪逆,下面来比较一下哪个最优秀。 如果A是个355行3列的矩阵,经过计算,五个...

    几种求矩阵伪逆的方法

    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

    展开全文
  • 伪逆矩阵函数pinv伪逆矩阵MATLAB定义.ppt(2)正交(QR)分解函数 将矩阵A分解为一个正交矩阵与另一个矩阵的乘积称为矩阵A的正交分解。 格式一:[Q, R]=qr(A) 功能:产生与A同维的上三角矩阵R和一个实正交矩阵或复归...
  • 主要内容:矩阵的逆、伪逆、左右逆矩阵的左逆与最小二乘左右逆与投影矩阵一、矩阵的逆、伪逆、左右逆1、矩阵的逆定义:设A是数域上的一个n阶方阵,若在相同数域上存在另一个n阶矩阵B,使得: AB=BA=I。 则我们称B是A...
  • matlab之逆(inv)与伪逆(pinv)

    千次阅读 2020-03-24 11:11:50
    在了解逆和伪逆之前,我们先来了解一下是线性代数里面奇异矩阵和非奇异矩阵是什么。 首先,矩阵是方阵,即矩阵的行数和列数相等的矩阵。若行数和列数不相等,那就谈不上奇异矩阵和非奇异矩阵。 奇异矩阵 奇异矩阵的...
  • 伪逆矩阵最小二乘

    2021-03-03 00:10:02
    矩阵 A 的伪逆定义为: 计算伪逆的实际算法没有基于这个定义,而是使用下面的公式: 其中,矩阵 U,D 和 V 是矩阵A奇异值分解后得到的矩阵。对角矩阵 D 的伪逆D + 是其非零元素取倒数之后再转置得到的。 下图是...
  • 伪逆矩阵进行因式分解以求解正规方程: A*x = b 与MATLAB pinv相比,伪逆有两个优点: - PINV 需要昂贵的 SVD - PINV 不适用于稀疏矩阵。 解 x 最小化残差 |Ax - b| 的 2-范数。 在欠定系统的情况下,即 rank...
  • 逆矩阵、伪逆矩阵、数据的压缩和复原:这一块知识虽然很简单,但在光学各种实验情况下经常用到,特此总结。 矩阵的乘法(观测矩阵):C = A* B C:M*1 A:M*N B:N*1 A可以理解为一个转化矩阵,或者说 观测...
  • 伪逆矩阵

    万次阅读 2015-11-18 08:29:30
    本文主要介绍伪逆矩阵的定义、求法和相关的应用,违逆矩阵可应用于信号的检测和干扰消除等
  • 我们用的是MathNet.Numerics命名空间里面的Matrix.PseudoInverse()方法计算伪逆,跟Python的numpy.linalg.pinv或者Matlab的pinv是一样的。 double[,] xEX = { { 1.0, 0,0 ,0,0,6.0}, { 0, -1,0 ,0,0,17.0}, { 0,...
  • 当我们用matlab计算矩阵和逆矩阵时,结果往往不等于单位阵 如下: &gt;&gt; a=magic(4) a =  16 2 3 13  5 11 10 8  9 7 6 12  4 14 15 1 &gt;&gt; b=a*inv(a) 警告: 矩阵接近奇异值,或者...
  • 利用矩阵的逆(伪逆)与除法求解: 对于线性方程组Ax=b,若其为恰定方程组且A是非奇异的,则求x最明显的方法便是利用矩阵的逆,即x=A\b;若不是恰定方程组,则可利用伪逆来求其一个特解。 运用pinv命令求伪逆: ...
  • pinv(matlab 伪逆)

    千次阅读 2021-01-27 07:42:02
    老师给了一个程序,看到pinv的时候有点糊涂,“伪”逆矩阵到底什么意思啊。pinv(B)求的是矩阵B的Moore-Penrose逆,是B的一种广义逆,也就是你说的伪逆,该广义逆满足四个条件:A*B*A = A B*A*B = B A*B 是海森矩阵 B...
  • matlab:inv,pinv逆与伪逆

    万次阅读 多人点赞 2017-03-11 16:42:25
    对于奇异矩阵或者非方阵,并不存在逆矩阵,但可以使用pinv(A)求其伪逆 inv: inv(A)*B 实际上可以写成A\B B*inv(A) 实际上可以写成B/A 这样比求逆之后带入精度要高 A\B=pinv(A)*B  A/B=A*pinv(B) pinv: X=...
  • 伪逆矩阵c++代码(Eigen库)

    千次阅读 2018-04-20 18:08:00
    伪逆矩阵是逆矩阵的广义形式,广义逆矩阵 matlab中是pinv(A)--》inv(A)。 #include "stdafx.h" #include<iostream> #include<Eigen/Core> #include<Eigen/SVD> template<...
  • det 计算数组行列式 >> A=[1 2 3;4 5 9;8 7 6] A = 1 2 3 4 5 9 8 7 6 >> det(A) ans = 27 inv 计算矩阵 A = 1 2 3 4 5 9 8...
  • 矩阵伪逆的opencv实现

    2019-12-06 09:57:01
    则我们称B是A的逆矩阵,而A则被称为可逆矩阵。 可逆条件: A是可逆矩阵的充分必要条件是,即可逆矩阵就是非奇异矩阵。(当 时,A称为奇异矩阵) 性质: -矩阵A可逆的充要条件是A的行列式不等于0。 -可逆矩阵一定是...
  • 矩阵的逆、伪逆

    万次阅读 多人点赞 2018-07-23 14:10:09
    则我们称B是A的逆矩阵,而A则被称为可逆矩阵。 可逆条件: A是可逆矩阵的充分必要条件是,即可逆矩阵就是非奇异矩阵。(当 时,A称为奇异矩阵) 性质: 矩阵A可逆的充要条件是A的行列式不等于0。 可逆矩阵...
  • 矩阵的逆、伪逆、左右逆

    万次阅读 2018-05-27 16:23:43
    由于奇异矩阵或非方阵的矩阵不存在逆矩阵,但在matlab里可以用函数pinv(A)求其伪逆矩阵。基本语法为X=pinv(A),X=pinv(A,tol),其中tol为误差,pinv为pseudo-inverse的缩写:max(size(A))*norm(A)*eps。函数返回一个与A...
  • 机器学习:伪逆矩阵法

    千次阅读 2018-10-11 16:27:57
    由于奇异矩阵或非方阵的矩阵不存在逆矩阵,但在matlab里可以用函数pinv(A)求其伪逆矩阵。基本语法为X=pinv(A),X=pinv(A,tol),其中tol为误差,pinv为pseudo-inverse的缩写:max(size(A))*norm(A)*eps。函数返回一个与A...
  • 机器学习笔记 - Moore-Penrose 伪逆

    千次阅读 2022-04-20 17:08:06
    并非所有矩阵都有逆矩阵。逆用于求解方程组,在某些情况下,方程组没有解,因此逆不存在。然而,找到一个最小化误差的近似值是有意义的。例如,使用伪逆找到一组数据点的最佳拟合线。 Moore-Penrose 伪逆是SVD的...
  • matlab机械臂运动学代码智能机器人手臂 嗨,这是一个使用深度学习作为其对象识别部分的机械臂项目。 该机器人拍摄工作空间的图像,并可以识别不同的对象。 当时我还没有任何3D打印设备,机身全部由4毫米压克力板制...
  • 矩阵的逆、伪逆、左右逆 矩阵的左逆与最小二乘 左右逆与投影矩阵 一、矩阵的逆、伪逆、左右逆 1、矩阵的逆 定义: 设A是数域上的一个n阶方阵,若在相同数域上存在另一个n阶矩阵B,使得: AB=BA=I。 则我们称B是A的...
  • mis = V .* conj(Ybus * V) - Sbus; F = [ real(mis([pv; pq])); imag(mis(pq)) ]; [dSbus_dVm, dSbus_dVa] = dSbus_dV(Ybus, V); j11 = real(dSbus_dVa([pv; pq], [pv; pq])); j12 = real(dSbus_dVm([pv;...
  • MATLAB向量与矩阵

    2022-02-05 10:02:31
    [ ] 引用创建(复制第一行四次的):E=A ( [1,1,1,1] ,:) 行列式与线性系统求解 求解 计算行列式: det(A) 得解(行列式不为零时): A\ b(无限解时通过某一变量为零得出解,本身可为任何值) 通过伪逆矩阵: x=pinv(A) * b ...
  • 伪逆矩阵(pseudo-inverse)

    万次阅读 2014-08-15 10:40:39
    由于奇异矩阵或非方阵的矩阵不存在逆矩阵,但在matlab里可以用函数pinv(A)求其伪逆矩阵。基本语法为X=pinv(A),X=pinv(A,tol),其中tol为误差,pinv为pseudo-inverse的缩写:max(size(A))*norm(A)*eps。函数返回一个与A...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,389
精华内容 955
关键字:

matlab伪逆矩阵

matlab 订阅