欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

线性代数之二:行列式

程序员文章站 2022-07-12 14:00:17
...

2.1 矩阵的行列式

2.1.1 行列式的记号与值

我们用两条竖线间包括的阵列表示给定矩阵的行列式,记作det(A)

det(A)=a11a21am1a12a22am2.........a1na2namn

2.1.2 子式与余子式

定义:令A=(aij)为n阶方阵,并用Mij表示删除A中包含aij的行和列得到的n-1阶的矩阵,矩阵Mij的行列式称为aij的子式(minor)。

定义:定义aij的余子式(cofactor)为Aij=(1)i+jdet(Mij)

因此行列式可以用余子式展开递归定义如下:

det(A)={a11a11A11+a12A12+...+a1nA1n n=1 n>1

定理:对于方阵A,det(A)可表示为A的任何行或列的余子式展开,即
det(A)=ai1Ai1+ai2Ai2+...+ainAin=a1jA1j+a2jA2j+...+anjAnj

定理:若A为n阶方阵,则det(AT)=det(A)
定理:若A为n阶三角矩阵,则A的行列式等于A的对角线元素的乘积
定理:若A为n阶矩阵

  • 若A有一行或一列包含的元素全为零,则det(A)=0
  • 若A有两行或两列相等,或成比例,则det(A)=0

2.1.3 使用numpy计算行列式

import numpy as np
A = np.array([[1,2],[3,4]])
print np.linalg.det(A)

2.2 行列式的性质

引理:令A为n阶矩阵,若Ajk表示ajk的余子式,其中k=1,…,n则:

ai1Aj1+ai2Aj2+...+ainAjn={det(A)0 i=j ij

对行或列运算对行列式的作用总结如下:

  • 交换两行或列,改变行列式的符号
  • 矩阵某行或列乘以标量的作用是将行列式乘以这个标量
  • 将某行或列的倍数加到其他行或列不改变行列式的值

这里我们得到另一种计算det(A)的方法,即通过第I和III类行列变换,将A简化为三角矩阵,则对角线元素的乘积即为det(A)的值,而正负号取为(1)k,k为行或列变换的次数。

定理:n阶矩阵A是奇异的充分条件是det(A)=0
定理:若A和B均为n阶矩阵,则det(AB)=det(A)det(B)

2.3 克拉默法则

2.3.1 伴随矩阵

若A为n阶矩阵,定义A的伴随矩阵为adj A,则

adjA=A11A12A1nA21A22A2n.........An1An2Ann

为构造伴随矩阵,只需要将A的元素用它们的余子式替换,然后将结果矩阵转置。

下面给出一种计算矩阵逆的方法:若A是非奇异的,则有

A1=1det(A)adjA

2.3.2 克拉默法则

定理:令A为n阶矩阵,令Ai为矩阵A中第i列用b替换得到的矩阵,若x为方程组Ax=b的惟一解,则:

xi=det(Ai)det(A),i=1,2,...n

克拉默法则给出了一个将n阶线性方程组的解用行列式表示的便利方法。不过其计算量要比消元法要大。

2.3.3 向量积

在三维空间中,向量x,y的向量积可写为行列式:

xy=ix1y1jx2y2kx3y3

在牛顿力学中,向量积用于定义副法线方向。比方x乘y,右手四指并起来伸直指向x方向,然后再朝y方向弯起来,这时拇指所指方向就是向量积方向,向量积方向永远x,y垂直。