3.7 矩阵最小二乘广义逆

文章目录

定义

  前面我写过矛盾方程的最小二乘解,是用正规方程来求解的。现在有一种新的算法,利用矩阵的最小二乘广义逆generalized least squares inverse来求最小二乘解,矩阵的最小二乘广义逆符号为 A l − A_l^- Al,全体最小二乘广义逆的集合记为 A { 1 , 3 } A^{\{1,3\}} A{1,3},这里的1和3是指穆尔-彭罗斯四大条件中的第一和第三条件,这四大条件是:
A G A = A G A G = G ( A G ) T = A G ( G A ) T = G A AGA=A\\ GAG=G\\ (AG)^T=AG\\ (GA)^T=GA AGA=AGAG=G(AG)T=AG(GA)T=GA
  获得了最小二乘逆之后,方程最小二乘的解就是 A l − b A_l^-\bold b Alb

算法

  计算最小二乘广义逆的方法不建议先求广义逆再求最小二乘的集合,那样计算太麻烦。其实有个最简单的算法,就是下面的公式:
A l − = ( A T A ) − A T A_l^-=(A^TA)^-A^T Al=(ATA)AT
  比如这个矩阵的一个最小二乘广义逆就是:
A = ( 1 1 2 2 2 1 3 3 3 ) A l − = ( − 0.444 0.556 0.111 0 0 0 0.556 − 0.444 0.111 ) A A l − = ( 0.667 − 0.333 0.333 − 0.333 0.667 0.333 0.333 0.333 0.667 ) A=\begin{pmatrix}1 & 1 & 2\\ 2 & 2 & 1\\ 3 & 3 & 3\\ \end{pmatrix}\\ A_l^-=\begin{pmatrix}-0.444 & 0.556 & 0.111\\ 0 & 0 & 0\\ 0.556 & -0.444 & 0.111\\ \end{pmatrix}\\ AA_l^-=\begin{pmatrix}0.667 & -0.333 & 0.333\\ -0.333 & 0.667 & 0.333\\ 0.333 & 0.333 & 0.667\\ \end{pmatrix} A= 123123213 Al= 0.44400.5560.55600.4440.11100.111 AAl= 0.6670.3330.3330.3330.6670.3330.3330.3330.667

python

  广义逆的代码确定后,最小二乘广义逆的代码就非常简单了:

    # 最小二乘广义逆
    def gls_inverse(self):
        a_t = self.transpose_matrix()
        return (a_t * self).one_inverse() * a_t
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醒过来摸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值