溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用Python怎么求逆矩陣

發(fā)布時(shí)間:2021-03-11 15:10:43 來源:億速云 閱讀:2863 作者:Leah 欄目:開發(fā)技術(shù)

使用Python怎么求逆矩陣?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

import numpy as np 
kernel = np.array([1, 1, 1, 2]).reshape((2, 2))
print(kernel)
print(np.linalg.inv(kernel))

使用Python怎么求逆矩陣

注意,Singular matrix奇異矩陣不可求逆

使用Python怎么求逆矩陣

補(bǔ)充:python+numpy中矩陣的逆和偽逆的區(qū)別

定義:

對(duì)于矩陣A,如果存在一個(gè)矩陣B,使得AB=BA=E,其中E為與A,B同維數(shù)的單位陣,就稱A為可逆矩陣(或者稱A可逆),并稱B是A的逆矩陣,簡稱逆陣。(此時(shí)的逆稱為凱利逆)

矩陣A可逆的充分必要條件是|A|≠0。

偽逆矩陣是逆矩陣的廣義形式。由于奇異矩陣或非方陣的矩陣不存在逆矩陣,但可以用函數(shù)pinv(A)求其偽逆矩陣。

基本語法為X=pinv(A),X=pinv(A,tol),其中tol為誤差,pinv為pseudo-inverse的縮寫:max(size(A))*norm(A)*eps。

函數(shù)返回一個(gè)與A的轉(zhuǎn)置矩陣A' 同型的矩陣X,并且滿足:AXA=A,XAX=X.此時(shí),稱矩陣X為矩陣A的偽逆,也稱為廣義逆矩陣。

pinv(A)具有inv(A)的部分特性,但不與inv(A)完全等同。

如果A為非奇異方陣,pinv(A)=inv(A),但卻會(huì)耗費(fèi)大量的計(jì)算時(shí)間,相比較而言,inv(A)花費(fèi)更少的時(shí)間。

代碼如下:

1.矩陣求逆

import numpy as np
a = np.array([[1, 2], [3, 4]]) # 初始化一個(gè)非奇異矩陣(數(shù)組)
print(np.linalg.inv(a)) # 對(duì)應(yīng)于MATLAB中 inv() 函數(shù)
# 矩陣對(duì)象可以通過 .I 求逆,但必須先使用matirx轉(zhuǎn)化
A = np.matrix(a)
print(A.I)

2.矩陣求偽逆

import numpy as np
# 定義一個(gè)奇異陣 A
A = np.zeros((4, 4))
A[0, -1] = 1
A[-1, 0] = -1
A = np.matrix(A)
print(A)
# print(A.I) 將報(bào)錯(cuò),矩陣 A 為奇異矩陣,不可逆
print(np.linalg.pinv(A)) # 求矩陣 A 的偽逆(廣義逆矩陣),對(duì)應(yīng)于MATLAB中 pinv() 函數(shù)

這就是矩陣的逆和偽逆的區(qū)別

截至2020/10/4,matrix函數(shù)還可以使用,但已經(jīng)過時(shí),應(yīng)該是mat函數(shù)這種。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI