线性代数真难,而且这个学期就要结课。学到现在(矩阵的分块),个人感觉最难的还是行列式的计算。哎哎。不过好在这些东西很有套路性,经过一番学习后,我就来总结一下——
行列式的分类
第一类 范德蒙德行列式#
Dn=∣∣
∣
∣
∣
∣∣a10a20⋯an0a11a21an1⋮⋮a1n−1a2n−1⋯ann−1∣∣
∣
∣
∣
∣∣
这个行列式的特点:某元素若是x次幂,那么它下方的那个元素(若存在)就是x+1次幂。
为了消去这个x与x−1的差距,不妨试试每一行减去上一行元素乘以a1
Dn=∣∣
∣
∣
∣
∣
∣∣11⋯10a2−a1an−a10a2(a2−a1)an(an−a1)⋮0a2n−2(a2−a1)ann−2(an−a1)∣∣
∣
∣
∣
∣
∣∣
按第一列展开
Dn−1=∣∣
∣
∣
∣
∣∣a2−a1⋯an−a1a2(a2−a1)an(an−a1)⋮a2n−2(a2−a1)ann−2(an−a1)∣∣
∣
∣
∣
∣∣
提取公因式
Dn−1=(a2−a1)⋯(an−a1)∣∣
∣
∣
∣∣1⋯1a2⋯an⋯⋯⋯a2n−2⋯ann−2∣∣
∣
∣
∣∣
一直循环这个过程,直到行列式被彻底化干净,得到

也就是
Dn=∏1≤j<i≤n(ai−aj)
第二类 双对角线行列式#
Dn=∣∣
∣
∣
∣
∣∣a1b1a2b2a3b3⋯⋯bnan∣∣
∣
∣
∣
∣∣
形如这种,主对角线以及紧挨着主对角线的那一条线(即次对角线)上有非零元素,还有一个非零元素被挤到角落(为什么有一个元素被挤到角落了?因为如果没有这个被挤到角落的元素话,这个行列式就是个三角行列式,太好算了hhh),其它所有元素都为0。
解法:只需给第一列展开即可。特别注意n∏i=1bi的符号!
Dn=n∏i=1ai+(−1)n+1n∏i=1bi
第三类 箭头行列式(爪型行列式)#
此类行列式以形状酷似箭头而得名。下面是一个箭头行列式。
Dn=∣∣
∣
∣
∣
∣
∣∣x1pp⋯pqx2qx3⋮⋱qxn∣∣
∣
∣
∣
∣
∣∣
要计算这种行列式,只需设法将箭头的任意一侧消去,得到一个三角行列式后即可快速计算。
现在以消去左箭头,即第一列为例:
若想消去第一列的第二个元素q,则将第二列整体乘以−qx2后加到第一列,得到
Dn=∣∣
∣
∣
∣
∣
∣∣x1+p(−qx2)pp⋯p0x2qx3⋮⋱qxn∣∣
∣
∣
∣
∣
∣∣
若想消去第一列的第三个元素q,则将第三列整体乘以−qx3后加到第一列,得到
Dn=∣∣
∣
∣
∣
∣
∣∣x1+p(−qx2)+p(−qx3)pp⋯p0x20x3⋮⋱qxn∣∣
∣
∣
∣
∣
∣∣
这个操作重复多次,直到得到上三角行列式
Dn=∣∣
∣
∣
∣
∣
∣
∣
∣∣x1−pqn∑i=21xipp⋯px2x3⋱xn∣∣
∣
∣
∣
∣
∣
∣
∣∣
解得
Dn=(x1−pqn∑i=21xi)n∏i=2xi.
第四类 两三角型行列式#
Dn=∣∣
∣
∣
∣
∣∣x1bb⋯bax2b⋯baax3⋯b⋯⋯⋯⋯⋯aaa⋯xn∣∣
∣
∣
∣
∣∣
两三角形行列式就像所有的0都被填满了的上三角和下三角行列式。主对角线上下的元素都分别为a和b
1.当a=b时:
Dn=∣∣
∣
∣
∣
∣∣x1aa⋯aax2a⋯aaax3⋯a⋯⋯⋯⋯⋯aaa⋯xn∣∣
∣
∣
∣
∣∣
如果能把主对角线下(或者上)方的所有a消去,得到一个箭头行列式,再套用上面的方法,那么问题便可解决。
要想消去a得到0,经过观察发现,第二列及其之后的所有列的第一个元素都是a,那么让从第二行开始的每一行都减去第一行即可。得到
Dn=∣∣
∣
∣
∣
∣
∣∣x1aaaaa−x1x2−aa−x1x3−a⋯⋱a−x1xn∣∣
∣
∣
∣
∣
∣∣
化成箭头行列式:
Dn=∣∣
∣
∣
∣
∣
∣
∣
∣∣x1+a(x1−a)n∑i=21xi−aaaaa0x2−a0x3−a⋮⋱0xn∣∣
∣
∣
∣
∣
∣
∣
∣∣
解得Dn=[x1+a(x1−a)n∑i=21xi−a]n∏i=2(xi−a)
2.当a≠b时
Dn=∣∣
∣
∣
∣
∣∣x1bb⋯bax2b⋯baax3⋯b⋯⋯⋯⋯⋯aaa⋯xn∣∣
∣
∣
∣
∣∣
采用拆行法,将最后一列拆掉
Dn=∣∣
∣
∣
∣
∣∣x1bb⋯b+0ax2b⋯b+0aax3⋯b+0⋯⋯⋯⋯⋯aaa⋯a+xn−b∣∣
∣
∣
∣
∣∣
Dn=∣∣
∣
∣
∣
∣∣x1bb⋯bax2b⋯baax3⋯b⋯⋯⋯⋯⋯aaa⋯a∣∣
∣
∣
∣
∣∣+∣∣
∣
∣
∣
∣∣x1bb⋯0ax2b⋯0aax3⋯0⋯⋯⋯⋯⋯aaa⋯xn−b∣∣
∣
∣
∣
∣∣
等式右侧第一个行列式,我们把它的每一列都减去最后一列从而让最后一行只剩下最后一个元素以便于按行展开,第二个行列式我们直接按最后一列展开。
Dn=∣∣
∣
∣
∣
∣∣x1−b00⋯ba−bx2−b0⋯ba−ba−bx3−b⋯b⋯⋯⋯⋯⋯000⋯a∣∣
∣
∣
∣
∣∣+(xn−b)Dn−1
Dn=a(x1−b)(x2−b)⋯(xn−1−b)+(xn−b)Dn−1
即Dn=an−1∏i=1(xi−b)+(xn−b)Dn−1
我们得到了很简洁的递推公式,可是后面带了一项Dn−1怎么办啊?不妨把这个行列式转置一下,得到:
Dn=bn−1∏i=1(xi−a)+(xn−a)Dn−1
把这两个式子联立,消去Dn−1,即得
Dn=(1a−b)[bn−1∏i=1(xi−a)+an−1∏i=1(xi−b)]
第五类 三对角行列式#
该行列式只有主对角线以及两条次对角线上的元素不为0.与双对角行列式类似,只是没有那个被挤出去的元素了
Dn=∣∣
∣
∣
∣
∣
∣
∣∣acbacbac⋯⋯⋯bacba∣∣
∣
∣
∣
∣
∣
∣∣
试试按第一列展开:肉眼可见a乘以它的代数余子式等于aDn−1.那么b的代数余子式呢?
A21=(−1)2+1b∣∣
∣
∣
∣
∣
∣
∣∣cbacbacbac⋯⋯⋯ba∣∣
∣
∣
∣
∣
∣
∣∣
按第一行展开:A21=−bcDn−2
所以Dn=aDn−1−bcDn−2
设Dn−xDn−1=y(Dn−1−xDn−2)
则可得到{x+y=axy=bc
像不像韦达定理啊?我们据此构造一个一元二次方程t2−at+bc=0
由于备考时间紧迫,下面的东西我实在不能深究,看不懂了,直接把结论贴上来吧:
Dn={yn+1−xn+1y−x,a2−4bc>0(n+1)xna2−4bc=0
(x、y是一元二次方程的两个实根)
点此查看完整过程
第六类 Hessenberg型行列式#
Dn=∣∣
∣
∣
∣
∣
∣
∣∣1234⋯n1−12−23−3⋯⋯n−1−(n−1)∣∣
∣
∣
∣
∣
∣
∣∣
上面这个就是Hessenberg型行列式.它的特点是除了第一行的其他行,有且仅有两个互为相反数的非零元素,且沿着主对角线和次对角线排列.
如果我们能把第二行的第一个元素消掉,那么我们就可以按照第一列展开,得到一个上三角行列式,直接进行计算.先试着用第一列加第二列.
Dn=∣∣
∣
∣
∣
∣
∣
∣∣1+2234⋯n0−10+22−23−3⋯⋯n−1−(n−1)∣∣
∣
∣
∣
∣
∣
∣∣
我们发现虽然第二行的第一个元素被消掉了,但是第三行第一个元素却不是0了.所以我们应该把第一列加上后面的所有列.
Dn=∣∣
∣
∣
∣
∣
∣
∣∣1+2+⋯+n234⋯n0−102−203−3⋯⋯⋯0n−1−(n−1)∣∣
∣
∣
∣
∣
∣
∣∣
按第一列展开,直接得到Dn=n(n+1)2(−1)n−1(n−1)=(−1)n−1(n+1)!2.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】