![Python数据分析从小白到专家](https://wfqqreader-1252317822.image.myqcloud.com/cover/745/38209745/b_38209745.jpg)
4.1.2 行列式
二元一次方程组不仅可以使用传统的“消元法”,还可以使用矩阵来求解,那这两种方法之间有什么联系呢?用消元法求二元一次方程组的式子如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_69_1.jpg?sign=1739272386-HLi3BSBpsPlDl1Stuojh3wtgZV4OYjkC-0-0239817dfd5c40825f55714e94a8b0ad)
消去未知数x1和x2,求得
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_69_2.jpg?sign=1739272386-rLonALfRk8hnpUzkWw7H9T4Xj5ajK1QB-0-dd61803051a4ba5ea227bbf6ce11a55a)
当a11·a22-a12·a21≠0时,原式可以变形为
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_69_3.jpg?sign=1739272386-tDN7mKFk5TpB0smtgfwKvF3Ldrxd8PiM-0-3ab599025694119c554e4ae8dcbabf74)
可以看出,x1和x2的分母是一样的,都是a11·a22-a12·a21,在一开始的二元一次方程组中其是这么排列的:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_70_1.jpg?sign=1739272386-Egc5u5RdmHQYlrJjLnD1nnBLTYZVbnY2-0-7da277b6ff411a79df69e577e9d2dcfc)
可以看出,aij的下标i和j正好表示它所在的位置是i行j列,在这4个数左右都加上符号“|”来表示这是一个“行列式”,确切地说,这是一个“二阶行列式”。在行列式中从左上到右下称为“主对角线”,从右上到左下称为“副对角线”。二阶行列式的值即为主对角线之积减去副对角线之积,式子如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_70_2.jpg?sign=1739272386-XbNrJwH8LmbXxYn9dOItqolGm81hAHl1-0-463d5a131ff5d62393fba7b16903c9d5)
所以,最终解可以写成如下式子,D1和D2的行列式形式请读者牢记。
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_70_3.jpg?sign=1739272386-IDDjc3uDIfPGtVsVOKtVfIKHwD6F7ghQ-0-b4f5f34b3ece38217a0263affca8a899)
在引入n阶行列式之前,读者先要了解全排列、逆序数、对换的概念。
“全排列”的概念:把n个不同的元素排成一列,叫作这n个元素的全排列。一般,求n个不同元素所有全排列的情况和总的个数,用Pn来表示,计算方式如下:
Pn=n·(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的自然数,规定由小到大为标准次序。设P1P2…Pn为这n个自然数的一个排列,考虑元素Pi(i=1,2,…,n),如果比Pi大且排在Pi前面的元素有ti个,就说Pi的逆序数是ti。所有元素的逆序数之和如下(即这个全排列的逆序数):
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_71_1.jpg?sign=1739272386-cwWTxOAEzxLFRMb6aPQD77gHtoI7WsRu-0-7169cbdc60c9d64baea04465a04abd7a)
“对换”的概念:在排列中,将任意两个元素对调,其余的元素不动,做出这种新排列的方式称为“对换”。将两个相邻元素对换称为“相邻对换”。对换有以下两个性质。
(1)全排列中的任意两个元素对换,全排列奇偶性改变。
(2)奇排列对换成标准排列的对换次数为奇数;偶排列对换成标准排列的对换次数为偶数。
下面来看n阶行列式的概念,由三阶行列式引入,三阶行列式的定义如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_71_2.jpg?sign=1739272386-pVX9JdaLys8nQveJ3P8hMBkg8wiuyJoB-0-f4951e51f005082672e16f558e05a80e)
仔细观察可以看出,前三个排列都是偶排列,而后三个排列都是奇排列。因此各项可以表示为(-1)t的形式,其中,t为列标准排列的逆序数,所以三阶行列式可以写成如下形式:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_71_3.jpg?sign=1739272386-dmAiaBAEqR5qiRGdphApl3ijCcpdAhZc-0-01a3c3bb10556fc0f08373350a77b8b2)
其中,t是全排列P1P2P3的逆序数,∑表示将1、2、3这3个数的所有全排列P1P2P3取和。由此可以推广到关于n阶行列式的一般情况:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_71_4.jpg?sign=1739272386-bXFSK9YMmqfp9FjOSJ4TfC9DpsF6xgY2-0-61b599dcd815d157f0a3e535520ebd53)
其中,每行不同列的n个数的乘积如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_71_5.jpg?sign=1739272386-qzgtotlsrrTZZydVogZQV7O49dKyb9Lw-0-37977820b3a8843496494b75817400cd)
其中,P1P2…Pn为自然数1,2,3,…,n的一个全排列,t为这个全排列的逆序数,这样的排列有n!个,因此上式也有n!项,结果如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_72_1.jpg?sign=1739272386-qj9UzCu2scMroUJoOFMxtXmdC2L3USlh-0-2246b06cc7bee1beb82fc20b75c391c7)
可以简记为det(aij),其中aij是行列式D中处于i行j列的数字。注意一些常用的说法:主对角线以下元素都为0的行列式称为下三角行列式;反之,主对角线以上元素都为0的行列式称为上三角行列式。
行列式有一些特殊的性质,“转置行列式”是一种常见的行列式,其定义如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_72_2.jpg?sign=1739272386-fWOBW7sq2CaOJVSEsgSe2HjC9PdTkSKS-0-b94c1a26e44a00016483aaf3f1f03e9b)
(1)行列式DT即为D的“转置行列式”。所谓D的转置行列式,是将D中的元素按主对角线反转而得的。从D=DT可以看出:一个行列式的值与它反转后的转置行列式的值是一样的。
(2)对换行列式的两行或两列,行列式的值的符号改变,但绝对值不变,示例如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_72_3.jpg?sign=1739272386-Ru6dcSV0VjXORhI6PNeeDNvOevD1N5js-0-2db9dc8836e6a35d36275d85d4913590)
上式中对换了第1列和第2列,行列式的值的符号改变,但绝对值不变。
如果两个行列式有两行或者两列完全相同,则这两个行列式的值相同。需要注意的是,“两行或者两列完全相同”的含义是行与行、列与列相同,而不是行与列相同。另外,位置不需要一样,不需要同行或同列对应相同,只需有相同的两行或两列存在即可。
(3)行列式中的某一行或者某一列的所有元素的公因子可以被提取出来,示例如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_72_4.jpg?sign=1739272386-u7tvUYlaVfh96lZskeV2XkC3CyEnfrjP-0-4ae162abe3e80af70a3e1d5f58e6de59)
(4)如果行列式有两行或者两列成比例,则此行列式的值等于0,示例如下(第1列和第2列的数值是k倍关系,故行列式的值为0):
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_72_5.jpg?sign=1739272386-9WF7wGQuHqY4Ihwqds3ykSJUYY5HpJGw-0-d2113d2a7455c5e6f531b7e24cceba6a)
(5)若行列式中的某一行或者某一列的元素都是两数之和,示例如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_73_1.jpg?sign=1739272386-sEjbM4qxU4DLoRsfNj3DSvxmBTfS38wd-0-7bfc1094939ee2ca792cc72e076d8247)
则行列式D可以写成如下两个行列式之和的形式:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_73_2.jpg?sign=1739272386-a1dhEeXXLi0k5oNMnPmZ4LIL4AWYsiHb-0-615af6d99fcf791ab5edcca9abb8defe)
(6)把行列式的某一行或者某一列加到另一行或另一列上,行列式的值不变,示例如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_73_3.jpg?sign=1739272386-6E98zg6oCzkXEl9f1HMI53WOxUuNXumd-0-89e8bd452db47289430aa9960ef46434)