Python数据分析从小白到专家
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

4.1.2 行列式

二元一次方程组不仅可以使用传统的“消元法”,还可以使用矩阵来求解,那这两种方法之间有什么联系呢?用消元法求二元一次方程组的式子如下:

消去未知数x1x2,求得

a11·a22-a12·a21≠0时,原式可以变形为

可以看出,x1x2的分母是一样的,都是a11·a22-a12·a21,在一开始的二元一次方程组中其是这么排列的:

可以看出,aij的下标ij正好表示它所在的位置是ij列,在这4个数左右都加上符号“|”来表示这是一个“行列式”,确切地说,这是一个“二阶行列式”。在行列式中从左上到右下称为“主对角线”,从右上到左下称为“副对角线”。二阶行列式的值即为主对角线之积减去副对角线之积,式子如下:

所以,最终解可以写成如下式子,D1D2的行列式形式请读者牢记。

在引入n阶行列式之前,读者先要了解全排列、逆序数、对换的概念。

“全排列”的概念:把n个不同的元素排成一列,叫作这n个元素的全排列。一般,求n个不同元素所有全排列的情况和总的个数,用Pn来表示,计算方式如下:

Pn=(n-1)·…·4·3·2·1=n!

其中,n!称为“n的阶乘”,用于表示从1~n的整数叠乘的结果。例如,1,2,3这3个数的全排列个数是3!=3·2·1=6,这种情况,个数较少,罗列出来分别是123,231,312,132,213,321。

“逆序数”的概念:对于n个不同的元素,先规定各元素之间有一个标准次序(例如,n个不同的自然数,可规定由小到大为标准次序),在这n个元素的任意一个排列中,当某两个元素的先后次序与所认定的标准次序不同时,就称这是一个“逆序”,一个排列中所有逆序的总数称为这个排列的“逆序数”,且逆序数为奇数时,称这个排列为“奇排列”,反之,逆序数为偶数时,称之为“偶排列”。

如何计算“逆序数”呢?假定有n个元素为1~n的自然数,规定由小到大为标准次序。设P1P2Pn为这n个自然数的一个排列,考虑元素Pii=1,2,…,n),如果比Pi大且排在Pi前面的元素有ti个,就说Pi的逆序数是ti。所有元素的逆序数之和如下(即这个全排列的逆序数):

“对换”的概念:在排列中,将任意两个元素对调,其余的元素不动,做出这种新排列的方式称为“对换”。将两个相邻元素对换称为“相邻对换”。对换有以下两个性质。

(1)全排列中的任意两个元素对换,全排列奇偶性改变。

(2)奇排列对换成标准排列的对换次数为奇数;偶排列对换成标准排列的对换次数为偶数。

下面来看n阶行列式的概念,由三阶行列式引入,三阶行列式的定义如下:

仔细观察可以看出,前三个排列都是偶排列,而后三个排列都是奇排列。因此各项可以表示为(-1)t的形式,其中,t为列标准排列的逆序数,所以三阶行列式可以写成如下形式:

其中,t是全排列P1P2P3的逆序数,∑表示将1、2、3这3个数的所有全排列P1P2P3取和。由此可以推广到关于n阶行列式的一般情况:

其中,每行不同列的n个数的乘积如下:

其中,P1P2Pn为自然数1,2,3,…,n的一个全排列,t为这个全排列的逆序数,这样的排列有n!个,因此上式也有n!项,结果如下:

可以简记为det(aij),其中aij是行列式D中处于ij列的数字。注意一些常用的说法:主对角线以下元素都为0的行列式称为下三角行列式;反之,主对角线以上元素都为0的行列式称为上三角行列式。

行列式有一些特殊的性质,“转置行列式”是一种常见的行列式,其定义如下:

(1)行列式DT即为D的“转置行列式”。所谓D的转置行列式,是将D中的元素按主对角线反转而得的。从D=DT可以看出:一个行列式的值与它反转后的转置行列式的值是一样的。

(2)对换行列式的两行或两列,行列式的值的符号改变,但绝对值不变,示例如下:

上式中对换了第1列和第2列,行列式的值的符号改变,但绝对值不变。

如果两个行列式有两行或者两列完全相同,则这两个行列式的值相同。需要注意的是,“两行或者两列完全相同”的含义是行与行、列与列相同,而不是行与列相同。另外,位置不需要一样,不需要同行或同列对应相同,只需有相同的两行或两列存在即可。

(3)行列式中的某一行或者某一列的所有元素的公因子可以被提取出来,示例如下:

(4)如果行列式有两行或者两列成比例,则此行列式的值等于0,示例如下(第1列和第2列的数值是k倍关系,故行列式的值为0):

(5)若行列式中的某一行或者某一列的元素都是两数之和,示例如下:

则行列式D可以写成如下两个行列式之和的形式:

(6)把行列式的某一行或者某一列加到另一行或另一列上,行列式的值不变,示例如下: