矩阵&行列式
代数
排列
对换,对于一个排列操作,对于一个偶排列一次对换之后变为奇排列
反之变为偶排列
行列式
N阶行列式室友N^2个数aij(i,j = 1,2,3,...n)
行列式的数=\(\sum_ {j_1,j_2,....j_n}sgn(j_1j_2...j_n)a_{1j_1}a_{2j_2}...a_{nj_n}\)
\(sgn()对于排列的函数,若排列A为奇排列则,sgn(A) = -1,为偶排列,则sgn(A) = 1\)
那么对于行列式的计算也就是从第一排走到最后一排的所有路径分别*路径标号排列的sgn函数,所有路径中不能有相同列的情况
(从每行选一个数使他的列不同)
下面式子的行列式值为18
代码:
cin >> n;
for(int i = 1;i <= n;++ i)
for(int j = 1;i <= n;++ j)
z[i][j] = read();
for(int i = 1;i <= n;++ i)
y[i] = i;
int ans = 0;
do {
int res = 1;
for(int i = 1;i <= n;++ i)
for(int j = 1;j <= n;++ j)
if(jipailie(y)) res = res;
ans += ans;
}while(next_premutation(y + 1,y + n + 1));
复杂度\(O(n!*n)\)
引理
由行列式的的计算定义式的到
引理1
行列互换,值不变
因为(从每行选一个数使他的列不同)等价于从每一列选一个数是他的列不同
引理2
用一个数乘以行列式的某一行,等于用这个数乘以整个行列式的值
引理3
如果行列式中的某一行是两组数之和,那么这个行列式的的值等价于
该行拆为两组数,其他行不变的两个行列式的和
!
乘法分配率
引理4
对换行列式中两行的位置,行列式值变为相反数
因为交换后奇排列变为偶排列,偶排列变为奇排列,sgn函数相反
引理5
若有两行对应成比例,则行列式的值为0
提出一行系数后对换,发现将两行对换数值互为相反数,但行列式的值应不变,则行列式的值为0
引理6
若把某一行*上一个数加到另一行则行列式的值不变
证:加上后根据引理3拆开,那么对于其中一个行列式,据引理3他的值为0
余子式
余子式:选取某行的一个数,把该行该列抹掉,剩余的行列式就是余子式
设行列式\(D\)
\(|D| = \sum_{i = 1} ^ nD_{1i}*T_{1,i} * |D_{1i}的余子式|\)
T为系数\((-1)^{i + 1}\)//因为对于余子式的方案数一定,sgn函数便取决于i,j
证明:考虑定义,在余子式中选择方案
那么我们就可以每次化为余子式计算行列式的值
Cramer法则
对与一组方程组的系数行列式\(D\)
若行列式的值不为0
就可以把系数矩阵的每一列,分别用方程的值那一列替换掉
分别解出行列式的值,D(为系数行列式),D1(表示方程解替换掉第一列),D2....Dn
那么方程的解\(X_i\)为$ \frac{|D_i|}{|D|}$
简证:
对与第n列,那么我们对于第n列的每个系数*上X_n,对于前面的每一列i,前面的每一列i的值都成上X_i加到第n列上,这时第n行就变成了方程的值的那一列,且根据初等变换(引理6),行列式值不变
然后我们就有了\(O((n+1)!)\)的解方程的方法了
高斯消元
咕咕咕
矩阵
定义
由nm个数构成的n行m列的数表
种类:
矩阵的相等:
就是相等啊
矩阵的加法
矩阵大小必须一样,对应位置相加,没了额
矩阵的减法
矩阵大小一样,对应位置相减,没了额
矩阵的数乘
矩阵的每个位置上的元素都乘上这个数
矩阵的乘法
设矩阵\(A=(a_{ij})_{m*r},B=(b_{ij})_{r*k}\)那么,\(A*B=C(c_{ij})_{m*k}\)
\(c_{ij}=\sum_{k}a_{ik}*b_{kj}\)
矩阵乘法的性质
逆矩阵
定义:
设A是n阶方针,若存在n阶方阵B使得AB=BA=I(单位矩阵),则称A是可逆的(或者非奇异的),B是A的一个逆矩阵。否则称A是不可逆的(或奇异的)
定理1:逆矩阵唯一
若B,C为A的逆矩阵,则B = C
AB = BA = I , AC = CA = I -> B = C
证明: B = IB = CAB = C(AB) = CI = C
定理2:乘积后矩阵乘的行列式值为矩阵的行列式值相乘
定义det运算符
定理:设A,B为n阶方阵,则det(A,B)=det(A)det(B)
引理 : det(A1A2....As) = det(A1)det(A2)....det(As)
引理:det值不能互推逆矩阵的det乘积为det(I)<1>
求逆矩阵
1.待定系数法...可能可以吧
2.
A*矩阵就是吧A矩阵的每个位置都替换为它的代数余子式的值
插入一点逆矩阵的性质
对于第二条的证明,只要证明他们乘起来是否=I
定理:设A为n阶方阵,若A可逆,则线性方程组Ax = b有唯
一解\(X = A^{−1}b\)
证明:
矩阵的初等变换
定义:矩阵的初等行(列)变换
1.用一个非零的数乘以某行
2.将某一行的x倍加到另一行
3.互换两行
定义初等矩阵
由初等矩阵I经过一次初等变换而来的矩阵
如下图,有三种(上方三种初等变换)
初等矩阵可逆
性质
定理:用初等矩阵B 左(右)乘矩阵A,相当于对矩阵A实行相应的初等行(列)变换
等价与对矩阵A做初等矩阵B所做的同样的初等变换
定义:
定义:若矩阵A可以由矩阵B经过一系列初等变换得到,则称
B与A相抵(等价),记做\(A≅B\)
相抵是一种等价关系,即\(A≅B,A≅C;=>B≅C\)
用初等变换求逆矩阵
若找到一系列初等矩阵\(B_i\)
使得\(B_1B_2....B_i(A,I) = (I,A^{-1})\)
那么\({B_1B_2....B_i}\)的乘积就是\(A^{-1}\)
考虑考斯消元的过程
对于矩阵A最后的被通过初等变换消成了只有对角线为1的矩阵\(I\),那么那些初等变换的初等矩阵的乘积就是\(A^{-1}\)
然后你就有了多项式算法求逆矩阵!复杂度\(O(n^3)\)
矩阵&行列式的更多相关文章
- 【原创】开源Math.NET基础数学类库使用(15)C#计算矩阵行列式
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 上个月 ...
- c++实现矩阵类矩阵行列式,伴随矩阵,逆矩阵
//Matrix ver1.0 //只支持矩阵内部(方阵)的运算 #include<iostream> #include<math.h> using namespace std ...
- 开源Math.NET基础数学类库使用(15)C#计算矩阵行列式
原文:[原创]开源Math.NET基础数学类库使用(15)C#计算矩阵行列式 本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p ...
- BZOJ 4031 HEOI2015 小Z的房间 基尔霍夫矩阵+行列式+高斯消元 (附带行列式小结)
原题链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4031 Description 你突然有了一个大房子,房子里面有一些房间.事实上,你的房子可 ...
- Eigen求矩阵行列式 及 行列式本质
转置.伴随.行列式.逆矩阵 小矩阵(4 * 4及以下)eigen会自动优化,默认采用LU分解,效率不高 #include <iostream> #include <Eigen/Den ...
- hdu5852 Intersection is not allowed! 【矩阵行列式】
题意 给出\(n*n\)网格\((n<=10^5)\) 顶部有\(K\)个起点,底部有\(K\)个相对应的终点 每次只能向下或向右走 求有多少种从各个起点出发到达对应终点且路径不相交的路径? 对 ...
- UvaLive 6600 Spanning trees in a secure lock pattern 矩阵行列式
链接:https://icpcarchive.ecs.baylor.edu/index.php? option=com_onlinejudge&Itemid=8&page=show_p ...
- 6.10 省选模拟赛 小C的利是 高斯消元 矩阵行列式
LINK:小C的利是 想起来把这道题的题解写了 .一个常识:利是在广东那边叫做红包. 关于行列式的题目 不过我不太会23333..口胡还是可以的. 容易想到10分的状压.不过没什么意思. 仔细观察要求 ...
- Template -「矩阵 - 行列式」
#include <cstdio> int Abs(int x) { return x < 0 ? -x : x; } int Max(int x, int y) { return ...
随机推荐
- Logitech K810 + Ubuntu
The Logitech K810 is a nice keyboard, but it does not work with Ubuntu out of the box. Still contrar ...
- 【BZOJ】2337: [HNOI2011]XOR和路径 期望+高斯消元
[题意]给定n个点m条边的带边权无向连通图(有重边和自环),在每个点随机向周围走一步,求1到n的期望路径异或值.n<=100,wi<=10^9. [算法]期望+高斯消元 [题解]首先异或不 ...
- 【BZOJ】2125: 最短路 圆方树(静态仙人掌)
[题意]给定带边权仙人掌图,Q次询问两点间最短距离.n,m,Q<=10000 [算法]圆方树处理仙人掌问题 [题解]树上的两点间最短路问题,常用倍增求LCA解决,考虑扩展到仙人掌图. 先对仙人掌 ...
- windows程序设计.第一个windos程序
Windows程序设计(第5版) windows程序需要调用API. 第一个Windows程序 /*HelloMsg.c -- Displays "Hello World!" in ...
- 人脸识别如何做到one-shot learning?(转)
来源:http://blog.csdn.net/ice_actor/article/details/78603042 1.什么是人脸识别 这部分演示了百度总部大楼的人脸识别系统,员工刷脸进出办公区 ...
- sqlmap的使用方法 ——时光凉春衫薄
普通注入 Sqlmap -u “http://www.xxxxxx.com/xxxx/xxx/xxx.xxx?xx=xx” --dbs 找到一个sql的注入点 探测他的库名 access的直接探表 ...
- malloc原理和内存碎片【转】
转自:http://www.cnblogs.com/zhaoyl/p/3820852.html 当一个进程发生缺页中断的时候,进程会陷入内核态,执行以下操作: 1.检查要访问的虚拟地址是否合法 2.查 ...
- UNIX环境高级编程学习笔记(十)为何 fork 函数会有两个不同的返回值【转】
转自:http://blog.csdn.net/fool_duck/article/details/46917377 以下是基于 linux 0.11 内核的说明. 在init/main.c第138行 ...
- shell编程===执行shell脚本的四种方法
使用vim创建一个shell文件,命名 hello.sh #!/bin/bash echo "hello shell !" 在linux中进行加载 chmod +x ./hello ...
- HTTP 请求 的方法Util
HTTP请求 的一系列方法总结 /** * *******************************传统请求--开始************************************** ...