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


前言

在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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值