版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
版权
线性代数专栏收录该内容
8 篇文章0 订阅
订阅专栏

文章目录

一、前言
最近一边复习Docker,一边就继续复习和学习线性代数。当然我也想将D3D12系列教程要继续下去,而目前这个系列的教程要继续深入下去,就必须进入以Shader为核心的主题,此时我发现数学其实将成为真正的核心,因为在Shader的编程中基本都是向量、矩阵、颜色等等的计算与变换了。思前想后,干脆先换个话题,将3D数学好好的做一系列教程出来,作为深入Shader编程教程的前置教程。接着我又发现如果只是讲解纯粹的3D数学,并且只是浅尝辄止的类似一般的3D数学的教程的话,要彻底驾驭Shader编程也还是远远不够,这甚至需要深入掌握诸如微积分、线性代数、傅里叶变换、频谱、随机数生成等等系列的数学知识才有可能彻底掌握Shader的编程。其中尤其是线性代数更是核心中的核心。
基于这样的认知,干脆我就大规模的复习和学习起数学来,并且先以线性代数作为突破口。这篇教程其实是作为一个热身教程推出来,或者也还算不上教程,严格来讲只是一篇学习笔记而已。
OK,下面就言归正传,开始看一下为什么说判断一个矩阵是否可逆,通过计算它的行列式是否为0就可以了。当然计算行列式的方法以及计算矩阵的逆矩阵的方法也有很多,证明二者同时成立的关系也有很多,其中主要的就是通过计算代数余子式,以及伴随矩阵的方法。通过这个计算过程,对矩阵的伴随矩阵乘以一个矩阵行列式的倒数就得到了矩阵的逆矩阵,这个方法仅仅是在理论上推导出了一个计算逆矩阵的方法,同时也证明了只有矩阵行列式不为0时才可能取其倒数最终计算矩阵的逆矩阵,也就是当矩阵的行列式不为0时,矩阵的逆才存在。实际的计算中,其实没法利用这个方法,一来计算量太大,光计算一个矩阵的行列式值就已经很耗时了,二来这个方法要计算大量的代数余子式,并且其过程很不直观,一般也是很不容易理解的。当然这也是很多线性代数教科书上的标准内容,但我认为以这样的基础来理解矩阵行列式不为0即可求逆的原理来说,是非常困难的。
在我复习《线性代数及其应用》这本经典教程的过程中,我发现书中给了一个比较直观的说明,也比较容易理解。当然书中并没有基于此给出复杂的证明,只是一个简单的说明,同时也是用了比较小规模的3X3形式的矩阵来做了例证说明而已,并且其过程及其简化,对于喜欢刨根问底的我来说,此时就是自己动手把书上略去的演算过程全部推导一遍。这篇博客就把整个过程详实的推导,记录并分享给大家。这里要提醒各位的是这个不是严格意义上的数学证明,只是一个以一般的3X3矩阵作为例子的演算推导过程,但是它对于我们理解为什么矩阵行列式不为0可求逆的原因有了一个不同角度的认识。
二、矩阵行变换得到上三角阵
对于一个一般的3X3矩阵: