| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 线性代数代码实现(四)行列式与可逆矩阵的判定(c++) -> 正文阅读 |
|
[C++知识库]线性代数代码实现(四)行列式与可逆矩阵的判定(c++) |
前言: ? ? ? ? 上一篇文章中,我们探讨了矩阵的秩与可逆矩阵的判定方法,我提到将说出下一种判断矩阵是否可逆的方法,这篇文章就跟大家探讨一下。 一、线性代数知识回顾: 1.? 排列:由1,2,···,n 这n个数组成的有序的数组就是一个 n?阶排列 2.? 逆序数:在一个排列中,如果有两个数 a 和 b,若满足 a 在 b 的前面,且 a 大于 b ,那么它称为一个逆序,一个排列的所有逆序的个数称为逆序数。
3.? 行列式:对于一个 n 阶方阵? ,记??或 ?为??的行列式,它的定义如下:
?有了定义后,我们固然是可以写出代码计算行列式的,我们可以看到行列式的计算需要找到所有的取自不同行不同列的元素乘积,如果需要代码实现,那么我们需要找到 n 阶排列的所有情况(n? ?阶全排列),而 n 阶全排列总共有 n ! 个,当矩阵比较大时,我们的程序就需要执行很多次,相当耗费时间。因此,我们不这样求解行列式。我们给出另外一种方法求解行列式,这需要以下线性代数知识: 4.? 定理:
5.? 上三角行列式:主对角线以下元素为 0 的行列式,上三角行列式的值等于主对角线元素的成绩。设???为上三角行列式,则: 也就是说,将行列式通过上面第 4 条定理所说的两条化为上三角行列式,记录交换行列式两行的次数,然后通过第 5 条就可以求解出行列式的值了,这样做可以处理较大阶的行列式!下面再给出一个定理说明可逆与行列式的关系: 6.? 定理:
有了这个定理,我们就可以给出第二个判断矩阵是否可逆的方法了! 二、算法设计: 1.? 求解行列式:(与我写的第二篇文章将矩阵化为上三角矩阵十分相似,没看过第二篇文章的伙伴们可以点击这个链接: 线性代数代码实现(二)上三角矩阵(C++)_AI研究者的博客-CSDN博客)
2.? 判断矩阵是否可逆:
三、代码实现: 类的定义:
?det()函数求解矩阵的行列式:
judgeinv()函数判断矩阵是否可逆:
有兴趣的同学也可以自己利用定义做一做求解行列式的函数,主要难点在于如何知道全排列,有兴趣的同学可以想一想。计算行列式当然也有其他方法,这篇文章中介绍的方法算是比较好的方法,大家也可以研究其他方法,同样,判断矩阵是否可逆也有其他方法,大家也同样可以研究研究。包括线性代数的知识,大家都可以仔细思考,实际上线性代数的很多知识都有很好的几何意义,例如我们讲过的矩阵乘法,行列式计算等都是有十分好的几何意义,大家可以去理解理解。(悄悄告诉大家:n 阶矩阵的行列式的绝对值实际上就是 n 维空间中平行多面体的体积)这里附上完整代码:
若有不足之处,欢迎大家指正! |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 3:25:15- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |