行列式與反矩陣
源自於http://bime-matlab.blogspot.com/2006/11/101.html在工程數學或線性代數中,行列式與反矩陣是常用的矩陣特性。尤其在討論聯立方程式之解的過程中更常用到。反矩陣有如一個矩陣的倒數,一個方矩陣若為A,則其反矩陣可以A-1表示,而其與原矩陣之關係為:
AA-1=I A-1A=I
其中,I稱為單位矩陣(Identity matrix),其大小為方矩陣,而對角線元素值均為1。在MATLAB中有一個指令稱為eye,可以用以建立這種單位矩陣。>> a=[1 2 ; 3 4];
>> b=inv(a)
b =
-2.0000 1.0000
1.5000 -0.5000
>> c=a*b
c =
1.0000 0
0.0000 1.0000
>> c=b*a
c =
1.0000 0
0.0000 1.0000
>> eye(2) %單位矩陣(Identity matrix)
ans =
1 0
0 1
>> A=rand(4)
A =
0.6948 0.4387 0.1869 0.7094
0.3171 0.3816 0.4898 0.7547
0.9502 0.7655 0.4456 0.2760
0.0344 0.7952 0.6463 0.6797
>> B=inv(A)
B =
-0.0503 0.8024 0.8645 -1.1895
1.4711 -3.2118 -0.0787 2.0627
-3.2986 3.6604 1.2312 -1.1216
1.4180 0.2363 -1.1225 0.1848
>> B*A
ans =
1.0000 -0.0000 -0.0000 -0.0000
0 1.0000 0.0000 0
-0.0000 -0.0000 1.0000 0.0000
0.0000 0.0000 0.0000 1.0000
>> A*B
ans =
1.0000 0 0 -0.0000
0.0000 1.0000 -0.0000 0
0.0000 0 1.0000 0
0 0 -0.0000 1.0000
A、B及I均為方矩陣,且A矩陣之行列式值或det(A)需不得為零,否則其反矩陣不能存在。此種矩陣不存在的情形,稱為奇異矩陣(singular)。一個矩陣若具奇異特性,則其行列值為零,
>> det(A)
ans = -0.1222
>> det(B)
ans = -8.1864
一個矩陣若具奇異特性,則其行列值為零,例如:
行值式之值為零,表示其反矩陣不存在,故即使用inv(D)指令也會產生一些數字,但其結果並不可靠,而且會有一些警告訊息出現,例如:
上述結果之值也變成很大,顯然不是正確的值。不信的話可以用AA-1=I, A-1A=I 印證一下(在此至少證實一下「垃圾進拉圾出(Gabage in, gabage out」這句名言)。
所以,某矩陣是否為奇異矩陣,可以使用det進行檢驗。其值若為零則屬奇異矩陣。
D=magic(4)
D =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
d=det(D)
d = 0
行值式之值為零,表示其反矩陣不存在,故即使用inv(D)指令也會產生一些數字,但其結果並不可靠,而且會有一些警告訊息出現,例如:
dd=inv(D)
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 1.306145e-017.
dd =
1.0e+014 *
0.9382 2.8147 -2.8147 -0.9382
2.8147 8.4442 -8.4442 -2.8147
-2.8147 -8.4442 8.4442 2.8147
-0.9382 -2.8147 2.8147 0.9382
上述結果之值也變成很大,顯然不是正確的值。不信的話可以用AA-1=I, A-1A=I 印證一下(在此至少證實一下「垃圾進拉圾出(Gabage in, gabage out」這句名言)。
所以,某矩陣是否為奇異矩陣,可以使用det進行檢驗。其值若為零則屬奇異矩陣。
沒有留言:
張貼留言