线性代数学习笔记1:行列式和七个性质
行列式,简单来说,就是从一个方阵(n×n矩阵)计算出来的一个特殊数字。它可以看作是有向面积或体积在更高维空间的推广 。如果把矩阵看成一个对空间进行拉伸/压缩/翻转的操作,行列式就是这个操作对体积的影响因子 。行列式只对方阵定义,我们常用 det(A) 或 |A| 来表示矩阵 A 的行列式。
行列式在工程和编程中有不少用武之地:
• 线性方程组求解:判断方程组是否有唯一解。一个n元线性方程组有唯一解当且仅当对应系数矩阵的行列式不为0。这也是行列式概念最初出现的原因。如果行列式为0,说明方程组要么无解要么有无穷多解(矩阵不可逆)。反过来行列式非零表示矩阵可逆,能用例如克拉默法则直接解方程组。
• 图形变换与计算机图形学:在2D/3D图形变换中,变换矩阵的行列式告诉我们缩放比例和镜像翻转。行列式的绝对值表示面积或体积缩放倍数,符号表示是否发生了镜像(例如左右手坐标系切换) 。比如,在游戏引擎中判断一个变换是否保持朝向,可以看行列式是正是负;计算多边形面积、三角形面积也常用行列式公式。
• 线性无关性判断:矩阵的列(或行)向量组行列式不为0,意味着这些向量线性独立,不在同一个平面或更低维空间内。这等价于那个由向量构成的平行多面体体积不为0。行列式为0则说明这些向量有依赖关系,某几个维度塌陷到了低维,体积为0。
• 其他应用:比如在积分变换中的雅可比行列式(Jacobian determinant)用于坐标变换的体积元素缩放;在机器学习中判断矩阵条件数(行列式接近0表示矩阵病态);图像处理中的畸变校正等,都可能遇到行列式的身影。
下面我们通过行列式的性质,理解行列式是怎么一回事。
性质1:行(或列)交换,行列式变号
打个比方,行列式就好比一个有方向的体积(面积)测量。交换矩阵的两行,相当于把构成这个体积的两个“轴”对调了位置。想象一下:原本你用右手系比划三个轴,结果交换了其中两个轴,就变成左手系了——坐标系的朝向翻转,导致体积测量的符号反了过来 。这就是行列式变号的由来:交换一次行(或列)会让行列式的值乘以 -1。
用数学形式表达:如果矩阵B是由矩阵A交换两行得到的,那么
比如,对于一个简单的2x2矩阵:
交换两行后变为
性质2:某一行(或列)全为 0,则行列式为 0
一组向量如果其中有一个完全是零向量,那拼不出任何体积来。想想看,如果一个盒子的长宽高其中有一项为0,那盒子的体积必然是0。同理,矩阵有一行全是0,就等于构成“体积”的一个维度长度为0,行列式当然为0。
性质3:某一行(或列)乘以常数 k,行列式也乘以 k
矩阵某一行伸长或缩短倍数,行列式作为体积也会相应放大或缩小同样的倍数 。生活中不妨想象一个可伸缩的盒子:如果你把盒子的长边拉长两倍,那盒子体积也就跟着变两倍;如果把高缩短成原来一半,体积就变成一半。注意:行列式乘以数值,只需要在1个向量上乘以数值即可,这和矩阵不一样。
性质4:某一行(或列)是两行之和,行列式可拆成两个行列式之和
这条性质体现了行列式关于每一行的线性可加性。通俗地讲,如果矩阵的某一行可以拆成两个部分相加,那么行列式的值也可以拆成两部分分别计算再相加。这有点类似于分摊工作:一行的贡献可以分成两份,各算各的行列式,最后把结果加起来。
性质5:两行(或两列)相同,行列式为 0
两行相同意味着这两个向量方向相同、完全重合,矩阵的行向量(或列向量)集合丢失了一个独立方向,相当于本应是立体的平行多面体塌扁在一个平面里,没有体积了。
性质6:两行(或两列)成比例,行列式为 0
这一条和性质5类似,也是说如果矩阵的两行在方向上完全相同(即其中一行是另一行的数倍),那行列式照样为0。因为成比例其实意味着这两行是平行或共线的向量,没有新增的维度信息。本质上还是线性相关导致“体积”坍塌:两行成比例,相当于其中一行可以由另一行伸缩得到,和它重合在一条线上或一个平面上,行列式必为零。
性质7:把一行(或列)的 k 倍加到另一行(或列),行列式不变
这条性质是前几个性质的组合
总结
行列式是一种定义在方阵上的特殊数值,体现了矩阵变换对空间体积(面积)的影响程度。在工程应用中,行列式广泛用于判断线性方程组解的唯一性、衡量图形变换的缩放与镜像效果,以及检测向量组的线性相关性。
笔记分别讲解了行列式的七个性质: • 性质1:交换矩阵任意两行(列),行列式符号改变。 • 性质2:矩阵中某一行(列)全为零,行列式必为零。 • 性质3:矩阵某一行(列)乘以常数,行列式也同时乘以该常数。 • 性质4:矩阵某行(列)为两行(列)相加,可将行列式拆分为两个子行列式相加。 • 性质5:矩阵中存在两行(列)相同时,行列式为零。 • 性质6:矩阵两行(列)成比例时,行列式也为零。 • 性质7:将一行(列)的若干倍加到另一行(列),行列式值不变。
通过以上性质的说明和实例展示,进一步明确了行列式的计算特性和几何含义,有助于在实际编程和工程实践中高效利用这些性质,简化矩阵和向量计算的复杂度,提高数值计算的效率和准确性。
脱敏说明:本文所有出现的表名、字段名、接口地址、变量名、IP地址及示例数据等均非真实,仅用于阐述技术思路与实现步骤,示例代码亦非公司真实代码。示例方案亦非公司真实完整方案,仅为本人记忆总结,用于技术学习探讨。
• 文中所示任何标识符并不对应实际生产环境中的名称或编号。
• 示例 SQL、脚本、代码及数据等均为演示用途,不含真实业务数据,也不具备直接运行或复现的完整上下文。
• 读者若需在实际项目中参考本文方案,请结合自身业务场景及数据安全规范,使用符合内部命名和权限控制的配置。Data Desensitization Notice: All table names, field names, API endpoints, variable names, IP addresses, and sample data appearing in this article are fictitious and intended solely to illustrate technical concepts and implementation steps. The sample code is not actual company code. The proposed solutions are not complete or actual company solutions but are summarized from the author's memory for technical learning and discussion.
• Any identifiers shown in the text do not correspond to names or numbers in any actual production environment.
• Sample SQL, scripts, code, and data are for demonstration purposes only, do not contain real business data, and lack the full context required for direct execution or reproduction.
• Readers who wish to reference the solutions in this article for actual projects should adapt them to their own business scenarios and data security standards, using configurations that comply with internal naming and access control policies.版权声明:本文版权归原作者所有,未经作者事先书面许可,任何单位或个人不得以任何方式复制、转载、摘编或用于商业用途。
• 若需非商业性引用或转载本文内容,请务必注明出处并保持内容完整。
• 对因商业使用、篡改或不当引用本文内容所产生的法律纠纷,作者保留追究法律责任的权利。Copyright Notice: The copyright of this article belongs to the original author. Without prior written permission from the author, no entity or individual may copy, reproduce, excerpt, or use it for commercial purposes in any way.
• For non-commercial citation or reproduction of this content, attribution must be given, and the integrity of the content must be maintained.
• The author reserves the right to pursue legal action against any legal disputes arising from the commercial use, alteration, or improper citation of this article's content.Copyright © 1989–Present Ge Yuxu. All Rights Reserved.