上一讲当中我们复习了行列式的内容,行列式只是开胃小菜,线性代数的大头还是矩阵。
1、利用定义求逆矩阵 设A、B都是n阶方阵, 如果存在n阶方阵B 使得AB=BA=E, 则称A为可逆矩阵, 而称B为A的逆矩阵。2、运用初等行变换法 将一n阶可逆矩阵A和n阶单位矩阵I写成一个nX2。
矩阵的定义很简单,就是若干个数按照顺序排列在一起的数表。比如m * n个数,排成一个m * n的数表,就称为一个m * n的矩阵。
矩阵运算的相关性质不多,主要的有这么几点:
矩阵的加法有结合律和交换律
矩阵的乘法没有交换律
m*n的矩阵乘上n*k的矩阵的结果是一个m*k的矩阵
逆矩阵快速求秒杀,很多人会觉得矩阵乘法比较复杂,不仅是计算复杂,而且经常会记不清运算的方法。会觉得复杂,可能只是因为我们将它当做了数学公式来生硬的记忆,而没有理解其中的原理。
我们不妨假设A和B分别是一个m*n和n*k的矩阵:
那么。
其中。
1、伴随矩阵法 如果矩阵A可逆,则 的余因子矩阵的转置矩阵。(|A|≠0,|A|为该矩阵对应的行列式的值)A的伴随矩阵为 其中Aij=(-1)i+jMij称为aij的代数余子式。2、初等行变换法 在行阶梯矩阵的基础上,即非零行。
Arowi指的是A矩阵中第i行的行向量,同样Bcolj指的是B矩阵中第j列的列向量。
这点搞明白了之后,就到了接下来的重头戏——逆矩阵。
设A是数域上的一个n阶矩阵,若在相同数域上存在另一个n阶矩阵B,使得: AB=BA=E ,则我们称B是A的逆矩阵,而A则被称为可逆矩阵。注:E为单位矩阵。
计算逆矩阵需要用到之前介绍过的代数余子式,如果不清楚的同学可以回顾一下之前关于行列式的相关内容。
我们列举出所有的代数余子式,将这些余子式组合成一个矩阵,这样的矩阵称为伴随矩阵。定义如下:
通过上面的定义,我们可以看出来,伴随矩阵也是一个n阶的方阵。关于伴随矩阵,有一个定理:
其中I是n阶的单位矩阵,也即是正对角线全为1,其他位置均为0的方阵。
我们来试着证明一下这个定理:
显然A A*也是一个n阶的矩阵,令结果为B。我们写出B矩阵当中的每一项Bij
当i=j时。
在上一篇文章当中,我们介绍过,矩阵中的某一行与它对应的代数余子式的乘积为行列式的值:
这点其实没什么需要证明的,我们把式子展开就可以得到了。为了方便观察,我们用三阶行列式举例。
一般用初等行变换,来求,对增广矩阵A|E,同时施行初等行变换,化成E|A^-1;在原矩阵的右侧接写一个四阶单位矩阵,然后对扩展矩阵施行初等行变换,使前面的四阶矩阵化为单位矩阵,则右侧的单位矩阵就化为了原来前面的逆。
我们令
我们以B12为例:
接着,我们把代数余子式展开:
根据我们之前关于代数余子式的定义,这个式子其实是以下这个矩阵行列式根据第一行展开的结果:
若n阶矩阵A可逆,方法如下图:使用此方法的时,首先要判断矩阵A是否可逆,只需求行列式不等于0就可逆。逆矩阵是设A是一个n阶矩阵,若存在另一个n阶矩阵B,使得:AB=BA=E ,则称方阵A可逆,并称方阵B是A的逆矩阵。
再根据行列式的性质,如果一个n阶的行列式当中存在某两行或者某两列相同,那么行列式的值等于0。
同样展开其他的Bij,我们可以证明:
所以B=|A|I,使用同样的方法,也可以证明A∗A=|A|I
在求解之前,我们先来看一下逆矩阵的定义。
假设存在方阵B,使得AB=BA=I,那么就称作B是A的逆矩阵。
我们之前证明了AA∗=|A|I,当矩阵A的行列式|A|不等于0时,那么显然有:
根据我们之前逆矩阵的定义:
如果|A|=0怎么办?
行列式等于0的矩阵称为奇异矩阵,奇异矩阵没有逆矩阵。所以一个矩阵有逆矩阵的前提就是非奇异矩阵。
通过调用np.linalg.inv方法来得到逆矩阵:
需要注意的是,如果a是一个奇异矩阵,那么计算逆矩阵时会报错。所以我们在此之前,需要先计算矩阵的行列式,判断是否是奇异矩阵。不清楚行列式计算方法的同学,可以回顾一下上一篇文章。
如果觉得文章有所帮助,请点个转发或者关注哦~