广义逆矩阵

广义逆矩阵,主要探讨矩阵A不是方阵时,方程组 Ax=b 的求解问题

A:mxn矩阵

方程组 Ax=b  有相容和不相容情况 


相容情况时:因为解存在许多个,则需要找到极小范数解,向量范数,即一种向量大小的度量,极小范数,相当于当x为一维情况下最小解的意思

其极小范数解x=Gb,  其中G为A的极小范数g逆,需要满足一定性质。AGA=A,(GA)*=GA

分三种情况进行计算G

若A是行/列满秩,则G=(AR/AL)-1   AR为A的右逆,AL为A的左逆

右逆:AG=I,G=A*(AA*)-1

左逆 :GA=I  G=(A*A)-1 A*

若rank(A)<min{m,n}  则需要对矩阵进行满秩分解A=CD  

G=(DR)-1(CL)-1=D'*inv(DD')  *  inv(D'D)*D' 

(DR)-1为D的右逆,(CL)-1为C的左逆



对不相容情况时: 

解不存在,则退而求其次,我们求满足||Ax-b||的2范数最小,即最小二乘解

得到的解x=Gb 中,G成为A的最小二乘g逆,  该解存在多个,因此需要求解中范数最小的一个,于是称为极小最小二乘解

对应的G称为A的极小最小二乘g逆(Moore-Penrose广义g逆)记为A+,该逆存在且唯一

x=(A+)b

其求解方法与上面求解相容方程组的极小范数g逆一样

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

在线性回归中,m个具有n个特征的样本,X*theta=Y (假设X存在广义逆pinv(X)  pinv(X)*X*b=pinv(X)Y--->b= pinv(X)Y )    ,我们在使用正规方程组求解时的通式:theta=(inv(X*X))X*Y 其实(inv(X*X))X*就是X的一个广义逆(左逆),左逆的要求就是A必须为列满秩矩阵。


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

下面讨论rank(A)<min{m,n}  

因为JAMA包中好像没有直接可以求广义逆的函数,因此需要探讨:

此时需要用svd对A进行分解,svd(A)=R*Sr*P'  R为左奇异矩阵,P为右奇异矩阵,Sr为奇异值阵列

则求解时可以化简如下:

/**
*                          [ Sr             0]
* 求广义逆 A=R* [ 0               0]  *P'
*           
* A=[R1,R2]* [ Sr             0]   *[P1']
*                    [ 0               0]   [P2']

 *
* A+=inv([R1,R2][ Sr             0]   *[P1'])

                              [ 0               0]   [P2']

*  A+=P1*Sr*R1'

*     注意P R均为正交矩阵 inv(P)=P.transpose()
* */


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

杭州趋数网络科技有限公司           数据挖掘/数据分析师            花京华

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值