MATLAB Function Reference |
Moore-Penrose 擬似反矩陣(pseudoinverse of a matrix)
Syntax
B = pinv(A) B = pinv(A,tol)
Definition
Moore-Penrose 的虛擬反矩陣即為滿足下列四個條件且維度等同於 A'
的矩陣 B:
A*B*A = A B*A*B = B A*B 為 Hermitian B*A 為 Hermitian
運算是根據函式 svd(A)
,任何小於 tol
的值都會被視為 0。
Description
B = pinv(A)
回傳 A 的 Moore-Penrose 虛擬反矩陣。
B = pinv(A,tol)
根據誤差值回傳 Moore-Penrose 的虛擬反矩陣,誤差的預設值為 max(size(A))*norm(A)*eps
。
Examples
若 A
為正方矩陣且不只含有一個元素,則用 pinv(A)
計算 inv(A)
為多餘的做法。但若 A
不為正方矩陣,或是正方但僅含有一元素,則 inv(A)
不存在。在這種狀態下,pinv(A)
有一些 inv(A)
的性質。
minimize norm(A*x-b)
x = pinv(A)*b
y = A\b
這兩個解說明 norm(x)
小於任何解的基準,而 y
有最少可能的不為 0 個數。
A = magic(8); A = A(:,1:6)
A = 64 2 3 61 60 6 9 55 54 12 13 51 17 47 46 20 21 43 40 26 27 37 36 30 32 34 35 29 28 38 41 23 22 44 45 19 49 15 14 52 53 11 8 58 59 5 4 62
b = 260 260 260 260 260 260 260 260
係數 260 為 8*8 魔方矩陣的和。對於所有八欄,A
*x
=
b
有個解其向量全為 1。
即使只有六行,方程式仍然一致,所以解是存在的,不過不全為
1。因為矩陣有不足行列,所以會有無限多組解。其中兩個為:
x = pinv(A)*b
pie3 | plot |