| 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 | ![]() |