複製鏈接
請複製以下鏈接發送給好友

det

鎖定
det是一個計算機函數,在FreeMatMatlab中,該函數用於求一個方陣(square matrix)的行列式(Determinant)。
中文名
方陣函數
外文名
det
功    能
求一個方陣的行列式
類    型
計算機函數
應    用
FreeMatMatlab
語    法
d = det(X)

det函數簡介

det語法格式

(1)功能:det為矩陣的行列式值。det計算某一方陣(行列相等的二維數組)的對應行列式值每一矩陣都有一個對應的行列式。行列式是對矩陣表按一定規則進行運算之後所得到的一個數值。行列式可以確定出對應矩陣是否存在着逆,即確定矩陣的奇異性,可以用來解線性方程組等。當行列式為0或近似於0時,其對應逆矩陣不存在,或雖然存在,但計算機計算出來的結果不正確。 [1] 
(2)語法:d = det(X)
返回方陣X的行列式值。如果X僅包含一個整數元素,返回的結果d也是一個整數。
(3)解析:將der(X)==0作為對矩陣奇異性的測試僅適合具有階和較小整數元素的矩陣。使用abs(det(X))<=tolerance作為檢測矩陣奇異性的方法同樣也不是推薦方法,原因在於正確選擇的容差tolerance非常困難。函數cond(X)則可以檢查奇異或者接近奇異的矩陣。 [2] 
(4)算法:行列式的值是通過高斯消元法得到三角矩陣的係數得到的。
[L,U]=lu(A)
s= det(L) %這一值總為+1l或-1
det(A)=s*prod(diag(U))
(5)應用實例
語句A=[1 2 3;45 6;7 8 9]得到
該矩陣恰好是一個奇異矩陣,所以d=det(A)的結果為d=0。將元素A(3,3)改變為A(3,3)=0可以將A變為一個非奇異的矩陣。則d=det(A)的結果為d=27。
(5)詳解
在FreeMat中,一個方陣的行列式是通過LU分解計算得到的。需要注意的是,若干個矩陣相乘得到的矩陣的行列式等於這些矩陣的行列式相乘。於是,我們得到:
LU=PA
這裏L是一個對角線上元素全為1的下三角矩陣(lower triangular),U是一個上三角矩陣(upper triangular),P是一個行置換矩陣(row-permutation matrix):
|LU|=|L||U|=|U|=|PA|=|P||A|
這裏我們應用了L的行列式為1這個結論。P的行列式為1或-1。
所謂置換矩陣,是指交換一個n*n的單位矩陣的兩行得到的矩陣(在線性代數中,這種操作叫做矩陣的初等變換)。置換矩陣的每行/列都只有一個1,其餘元素全為0。

det相關函數

rank,inv

det程序示例

在FreeMat中的示例:
--> A = [0 0 0; 1 2 3; 4 5 6];
--> det(A)
ans =
0
--> B = [1 2; 3 4];
--> det(B)
ans =
-2

det性質

公式 公式
性質1:如果(a,b)=(1,0),(c,d)=(0,1)則平行四邊形變成正方形,面積=1,A為單位陣,即
性質2:若A有相同的兩行,則det(A)=0.
看一個極端情況,如果(a,b)=(c,d),即向量(a,b)與(c,d)重合,面積肯定為0。
參考資料
  • 1.    傅教智 ,陳月.計算機BASIC語言詞典:黑龍江科學技術出版社,1990:218-219
  • 2.    MATLAB函數庫查詢辭典.徐東豔 ,孟曉剛:中國鐵道出版社,2006:147-148