det

更新时间:2024-04-03 16:38

det是一个计算机函数,在FreeMatMatlab中,该函数用于求一个方阵(square matrix)的行列式(Determinant)。

函数简介

语法格式

(1)功能:det为矩阵的行列式值。det计算某一方阵(行列相等的二维数组)的对应行列式值每一矩阵都有一个对应的行列式。行列式是对矩阵表按一定规则进行运算之后所得到的一个数值。行列式可以确定出对应矩阵是否存在着逆,即确定矩阵的奇异性,可以用来解线性方程组等。当行列式为0或近似于0时,其对应逆矩阵不存在,或虽然存在,但计算机计算出来的结果不正确。

(2)语法:d = det(X)

返回方阵X的行列式值。如果X仅包含一个整数元素,返回的结果d也是一个整数。

(3)解析:将der(X)==0作为对矩阵奇异性的测试仅适合具有阶和较小整数元素的矩阵。使用abs(det(X))<=tolerance作为检测矩阵奇异性的方法同样也不是推荐方法,原因在于正确选择的容差tolerance非常困难。函数cond(X)则可以检查奇异或者接近奇异的矩阵。

(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。

相关函数

rank,inv

程序示例

在FreeMat中的示例:

--> A = [0 0 0; 1 2 3; 4 5 6];

--> det(A)

ans =

--> B = [1 2; 3 4];

--> det(B)

ans =

-2

性质

性质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。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}