0
点赞
收藏
分享

微信扫一扫

Python求方阵的逆矩阵与求非方阵的伪逆矩阵


文章目录

  • ​​前言​​
  • ​​示例1:求方阵的逆矩阵​​
  • ​​示例2:求非方阵的伪逆矩阵​​

前言

在Python中,无论是求方阵的逆矩阵,还是求非方阵的伪逆矩阵,都有现成的模块可供调用。

求方阵的逆矩阵:np.linalg.inv(a),其中a必须为N×N的方阵,运行结果为a的逆矩阵a-1

求非方阵的伪逆矩阵:scipy.linalg.pinv(a),其中a可以为任意M×N的矩阵,且M可以不等于N,运行结果为a的伪逆矩阵x,其中x满足:axa=a且xax=x。

示例1:求方阵的逆矩阵

from numpy.linalg import inv #求方阵的逆矩阵

a=[[1,2],[3,4]]
inv(a)

输出如下:

array([[-2. ,  1. ],
[ 1.5, -0.5]])

记上述输出为x,则可验证ax=xa=单位矩阵

示例2:求非方阵的伪逆矩阵

from scipy.linalg import pinv #求非方阵矩阵的伪逆矩阵

a=[[1,2,3],[4,5,6]]
pinv(a)

输出如下:

array([[-0.94444444,  0.44444444],
[-0.11111111, 0.11111111],
[ 0.72222222, -0.22222222]])

记上述输出为x,则可验证axa=a,xax=x:

import numpy as np

temp1=np.matmul(a,x)
np.matmul(temp1,a)

输出如下:

array([[1., 2., 3.],
[4., 5., 6.]])

import numpy as np

temp1=np.matmul(x,a)
np.matmul(temp1,x)

输出如下:

array([[-0.94444444,  0.44444444],
[-0.11111111, 0.11111111],
[ 0.72222222, -0.22222222]])

END


举报

相关推荐

0 条评论