军队文职(数学2+物理)——线性代数 3、矩阵的行列式值(一)
掌握矩阵的行列式知识可以应对多种与之相关的程序题:
程序题1:写程序求如下方程组的解 =》克莱姆法则
程序题2:给定一个N×N的矩阵A,求|A|。=》矩阵的行列式值
程序题3:写程序求1,5,3,9,7的逆序数 =》行列式展开
数学1会从空间角度去分析线性代数,由向量到矩阵再到行列式,是最科学最全面的学习路线,因为越是难的科目越是需要你自身站的高度足够高,能高到站在大气层俯视才好,但在数学2+物理中,线性代数的分值毕竟只有十几分,我们就尽量的简略一下,把一切都以线性方程组求解为目的,以便能将更多的精力花费在大学物理的学习中。
线性方程组的解有下列三种情况:
1、无解 在直角坐标系中二者平行
系数矩阵 ,主对角线相乘和斜对角线再相减为0,如下:
2、有唯一解 在直角坐标系中二者相交于点(1.5,-0.5)
系数矩阵,主对角线相乘和斜对角线再相减不为0,如下:
3、有无穷对个解 在直角坐标系中二者重合
系数矩阵 ,主对角线相乘和斜对角线再相减为0,如下:
可见,对于2X2非齐次线性方程,方程系数的二阶矩阵的主对角线乘积和斜对角乘积相减的结果不为0的情况下,方程才会有唯一解。这个结果就是矩阵的行列式值。
一、行列式定义
行列式在数学中,是一个函数,其定义域为det的矩阵A,取值为一个标量,写作det(A)或 | A | 。
如
1)二阶行列式
,主对角线相乘-副对角线相乘
程序题:写代码求2阶行列式的值
int a[2][2];printf("请你输入2阶行列式\n");for (int i = 0; i < 2; i++){for(int j = 0; j < 2; j++){scanf_s("%d", &a[i][j]);}}printf("行列式如下:\n");for (int i = 0; i < 2; i++){for (int j = 0; j < 2; j++){printf("%d", a[i][j]);printf("%s", " ");if (j == 1) {printf("%s", "\n");}}}int result = a[0][0] * a[1][1] - a[0][1] * a[1][0];printf("行列式的值:%d",result);
运行结果:
2)三阶行列式
通过构建3X6阶矩阵划线法,得到公式。
程序题:写代码求3阶行列式的值
int a[3][3];printf("请你输入3阶行列式\n");for (int i = 0; i < 3; i++){for(int j = 0; j < 3; j++){scanf_s("%d", &a[i][j]);}}printf("行列式如下:\n");for (int i = 0; i < 3; i++){for (int j = 0; j < 3; j++){printf("%d", a[i][j]);printf("%s", " ");if (j == 2) {printf("%s", "\n");}}}int result = a[0][0] * a[1][1]*a[2][2] + a[0][1] * a[1][2]*a[2][0]+ a[0][2] * a[1][0] * a[2][1]- a[0][0] * a[1][2] * a[2][1]- a[0][1] * a[1][0] * a[2][2]- a[0][2] * a[1][1] * a[2][0];printf("行列式的值:%d",result);
运行结果:
2)n阶行列式
n阶行列式等于所有取自不同行不同列的n个元素的乘积的代数和,逆序数为偶数时带正号,逆序数为奇数时带负号,共有n!项。
n阶行列式的定义中出现了逆序数的概念,用来确定乘积代数和的符号。
逆序数:在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数, 那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。逆序数为偶数的排列称为偶排列;逆序数为奇数的排列称为奇排列。
例如在序列 { 2, 4, 3, 1 } 中,逆序依次为 (2,1),(4,3),(4,1),(3,1),因此该序列的逆序数为 4,是偶排列。
当n=2时,共有2!=2项,即主副对角线乘积的代数和,且主对角线方向为正,副对角线方向为负。
当n=3时,共有3!=6项,通过构建3X6阶矩阵划线法,刚好可以得到这6项乘积,且主对角线方向为正,副对角线方向为负。
当n>3时,共有n!项,通过构建nX2n阶矩阵已无法满足定理,比如n=4时,共有4!=24项,而通过构建nX2n阶矩阵只能得到8项乘积的代数和。
程序题:写代码求n阶行列式的值
现在,根据手头上掌握的知识,我们只能根据n阶行列式的定义来解决这个问题了:
1)第一步需要一个获取n!项所有取自不同行不同列的n个元素的算法,即求1到n的全排列。
2)第二步需要一个获取每项的逆序数的算法(归并排序或者树状数组),逆序数为偶数时带正号,逆序数为奇数时带负号
3)第三步计算全排列乘积的代数和
上面的思路是根据n阶行列式的定义来求解的,正确的解决了n阶行列式求值的问题 ,但毕竟同时涉及了查找与排序,这会导致最终它的算法复杂度必然是非常高的。对比之前我们解决2阶或者3阶行列式时用的划线法就不存在算法复杂度的问题。
算法复杂度是指算法在编写成可执行程序后,运行时所需要的资源,资源包括时间资源和内存资源。
程序题:求1,2,3...,n的和。
int result=0; for(int i=1;i<=n;i++) {result+=i; }
军队文职(数学2+物理)——线性代数 3、矩阵的行列式值(一)相关推荐
- 军队文职(数学2+物理)——考试介绍
考试内容: 军队文职理工学类(数学2+物理),主要测查应试者与应聘文职人员岗位要求密切相关的基本科学素养和能力要素. 其中,数学2主要测查内容包括高等数学.线性代数等.物理主要测查内容包括力学.热学. ...
- 军队文职(数学2+物理)——高等数学 3、求极限(一)
一.直接带入法: 根据极限的四则运算法则,若已知, 那么可以通过直接代入法求极限. 例: 解: 由公式,直接将x=0带入,,. 二.分母为0,有理化多项式,消去分母 例: 分母为0,不满足四则运算法则 ...
- 军队文职(数学2+物理)——高等数学 1、函数
高等数学考试内容包括:函数与极限.一元函数微分学.一元函数积分学.多元函数微积分学.常微分方程等. 第一章 函数 如果时至今日你仍然记着[反对幂指三]的含义,那恭喜你,完全可以跳过前面的章节,直接开始 ...
- 军队文职(数学2+物理)——高等数学 4、函数的连续与间断点
一.函数的连续 当自变量的该变量时,函数的改变量,则称f(x)在x处连续. ① ② 如果f(x)在处有极限,且且极限值就是函数值,那么f(x)在处连续. 1)函数连续的第一类问题--连续与极限的 ...
- 军队文职(数学2+物理)——高等数学 5、导数
1.导数定义 设y=f(x)在的某邻域内有定义,自变量增量为Δx,因变量增量,若存在,则说明f(x)在处可导,记作. 2.定义公式 1)或者 2)左导数: 右导数: 3)倒数存在的充要条件: ,即左 ...
- 军队文职(数学2+物理)——高等数学 2、极限
一.数列的极限(无穷数列): ,存在正整数 N ,当n N 时,就有 . 例1:数列 极限不存在,肉眼可见 例2: 二.函数的极限 定义域为去心邻域内的极限 ,存在正数 ,当0<< ...
- 军队文职数学Ⅱ-物理考试题型总结
军队文职考试对理工科生比较友好,理工科报名岗位多.同时相对于公务员考试科目友好,包括公基和专业课两场考试. 公基大概有一半的政治题目和军队相关的常识题,后面有一部分行测的题目,总体难度比行测要小很多. ...
- 线性代数-01矩阵与行列式
矩阵 定义 特殊矩阵:上三角.下三角.对角 操作:初等行列变换.矩阵分块 Jacobi矩阵 A = [ ∂ f 1 ( x 0 ) ∂ x 1 ∂ f 1 ( x 0 ) ∂ x 2 ⋯ ∂ f 1 ...
- 2.3 matlab矩阵求值(矩阵的行列式值、矩阵的秩、矩阵的积、矩阵的范数和矩阵的条件数)
1.方阵的行列式 把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为方阵所对应的行列式的值.det(A):求方阵A所对应的行列式的值. >> format rat; > ...
最新文章
- RDKit | 基于RDKit探索ChEMBL数据库中合成药物历史
- JS中的继承与原型链
- C# in depth 阅读笔记-- 委托
- 14.VisualVM使用详解、15.VisualVM堆查看器使用的内存不足、19.class文件--文件结构--魔数、20.文件结构--常量池、21.文件结构访问标志(2个字节)、22.类加载机制概
- 【数据结构与算法】之深入解析“二叉树的序列化与反序列化”的求解思路与算法示例
- linux超级工具,linux运维超级工具--sysdig
- Oracle 19c 新特性:混合分区表Hybrid partitioned tables强体验
- SUID、SGID、粘滞位
- git branch commands
- paip.c++ tree parse tpath解析器
- 5个Web前端开发软件,零基础入门完全够用了!
- PM2.5浓度数据集(1998-2016年)
- linux系统硬件信息文本在哪里,Hardinfo在Linux上查看硬件信息
- i59300h够用吗计算机网络技术,i5 9300H属于什么档次?看完跑分透心凉
- doris ODBC 连接 mysql 外部表
- How to Install Nvidia Kernel Module Cuda and Pyrit in Kali Linux
- Oracle DBA学习基础篇(一) Oracle体系结构 学习笔记
- C语言笔记例子 continue 用法
- Windows安装NetCat
- 华为云存储空间图库占比太大_终于知道为什么华为手机删了照片,存储空间还是不足了!...
热门文章
- OUC软件开发实验4
- vscode预览html插件,VSCode插件推荐-VSCode内嵌浏览器插件-Browser Preview
- 自组网灵活补盲|北峰油气田勘测解决方案
- windbg错误码汇总
- I2C 专题(一)I2C 简介
- Java基础知识学完了,还在看着控制台上输出的结果发呆吗?还不来认识认识GUI编程(初识GUI)
- 数字图像处理实验(五)|图像复原{逆滤波和伪逆滤波、维纳滤波deconvwnr、大气湍流扰动模型、运动模糊处理fspecial}(附matlab实验代码和截图)
- 哔哩视频客户端与视频本地化(下载)
- 别让用户发呆—设计中的防呆策略
- 微信公众平台开发(15)--群发消息