矩阵运算:

\(A\times B\)叫做\(A\)左乘\(B\),或者\(B\)右乘\(A\)。

行列式性质:

\(1.\)交换矩阵的两行(列),行列式取相反数。

\(2.\)某一行元素都\(\times k\),行列式值也\(\times k\)。

\(3.\)某一行加到另一行上,行列式值不变。

\(4.\)矩阵某两行(列)元素分别成比例,行列式值为\(0\)。

\(5.A+B=C\Rightarrow|A|+|B|=|C|\)。

\(6.\)矩阵与转置矩阵行列式相等。

对于方阵而言:

\(7.|A^\tau|=|A|\)

\(8.|AB|=|A||B|\)

矩阵的转置:

\(1.(A^\tau)^\tau=A\)

\(2.(A+B)^\tau=A^\tau+B^\tau\)

\(3.(\lambda A)^\tau=\lambda A^\tau\)

\(4.(AB)^\tau=B^\tau A^\tau\)

余子式:

\(n\)阶矩阵的余子式\(M_{ij}=\)矩阵\(A\)去掉第\(i\)行第\(j\)列的\(n-1\)阶矩阵行列式。

代数余子式\(A_{ij}=(-1)^{i+j}M_{ij}\)。

伴随矩阵:

矩阵\(A^*\)的各项元素\(a_{ij}=\)矩阵\(A\)的代数余子式\(A_{ij}\),那么称\(A^*\)是\(A\)的伴随矩阵,记作\(A^*\)。

逆矩阵:

\(1.\)矩阵\(A\)可逆 等价于 \(|A|\ne 0\)

\(2.A^{-1}=\frac 1 {|A|}A^*\)(求伴随矩阵的\(Gauss\)算法)

矩阵的秩:

\(k\)阶子式:选\(k\)行\(k\)列,把交点元素按顺序组成\(k\)阶矩阵。

非零子式:没有零行的子式。

行阶梯矩阵:每一行首非零元素都在上一行非零元素的右面,列阶梯矩阵同理。

最简形矩阵:行首非零元素为\(0\)的行阶梯矩阵。

矩阵的秩:\(R(A)=A\)的最高阶非零子式的阶数,也是通过矩阵的初等变换(\(Gauss\))把\(A\)变成行阶梯矩阵(或最简形矩阵)后的非零行个数。

向量的旋转与矩阵:

把向量表示成列矩阵\(\left(\begin{matrix}x\\y\end{matrix}\right)\),逆时针旋转向量\(\theta\)角就是矩阵\(\left(\begin{matrix}cos\theta&-sin\theta\\sin\theta&cos\theta\end{matrix}\right)\)左乘向量列矩阵,另有\(\left(\begin{matrix}cos\theta&-sin\theta\\sin\theta&cos\theta\end{matrix}\right)^n\)=\(\left(\begin{matrix}cos~n\theta&-sin~n\theta\\sin~n\theta&cos~n\theta\end{matrix}\right)\)。

模板:

实数高斯消元:

    int gauss_float(){
for(int i=1;i<=n;i++){
bj=0;
for(int j=i;j<=n;j++)
if(fabs(a[j][i])>eps){bj=j;break;}
if(bj==0) return 0;
for(int j=i;j<=n+1;j++) swap(a[bj][j],a[i][j]);
for(int j=i+1;j<=n;j++){
double d=a[i][i]/a[j][i];
for(int k=i;k<=n+1;k++)
a[j][k]=a[j][k]*d-a[i][k];
}
}
for(int i=n;i>=1;i--){
ans[i]=a[i][n+1]/a[i][i];
for(int j=1;j<i;j++) a[j][n+1]-=a[j][i]*ans[i];
}
return 1;
}

行列式: 如果没有mod,把%mod去掉即可。

    int determinant(){
dete=1;
for(int i=1;i<=tot;i++){
for(int j=i+1;j<=tot;j++){
while(a[j][i]){
long long t=a[i][i]/a[j][i];
for(int k=i;k<=tot;k++){
a[i][k]=((a[i][k]-a[j][k]*t%mod)%mod+mod)%mod;
swap(a[i][k],a[j][k]);
}
dete=((-dete)%mod+mod)%mod;
}
}
if(a[i][i]==0) return 0;
dete=((dete*a[i][i])%mod+mod)%mod;
}
return 1;
}

矩阵求逆:

	int matrix_inv(){
for(int i=1;i<=n;i++){
bj=0;
for(int j=i;j<=n;j++)
if(a[j][i]!=0){bj=j;break;}
if(bj==0) return 0;
for(int j=i;j<=n+n;j++) swap(a[bj][j],a[i][j]);
long long INV=qpow(a[i][i],mod-2);
for(int j=i;j<=n+n;j++) a[i][j]=a[i][j]*INV%mod;
for(int k=1;k<=n;k++){
if(k==i) continue;
for(int j=i+1;j<=n+n;j++)
a[k][j]=((a[k][j]-a[k][i]*a[i][j]%mod)%mod+mod)%mod;
a[k][i]=0;
}
}
return 1;
}

矩阵树定理:

无向图:(度数矩阵-邻接矩阵)去掉任意一行任意一列的行列式=该无向图的生成树个数。

有向图:(入度矩阵-邻接矩阵)去掉i行i列的行列式=以i为根(出发点)的外向树形图。

\(~~~~~~~~~~~~~\)(出度矩阵-邻接矩阵)去掉i行i列的行列式=以i为根(到达点)的内向树形图。

矩阵&&高斯消元的更多相关文章

  1. BZOJ 3503: [Cqoi2014]和谐矩阵( 高斯消元 )

    偶数个相邻, 以n*m个点为变量, 建立异或方程组然后高斯消元... O((n*m)^3)复杂度看起来好像有点大...但是压一下位的话就是O((n*m)^3 / 64), 常数小, 实际也跑得很快. ...

  2. BZOJ3503:[CQOI2014]和谐矩阵(高斯消元,bitset)

    Description 我们称一个由0和1组成的矩阵是和谐的,当且仅当每个元素都有偶数个相邻的1.一个元素相邻的元素包括它本 身,及他上下左右的4个元素(如果存在). 给定矩阵的行数和列数,请计算并输 ...

  3. POJ 1830 开关问题 【01矩阵 高斯消元】

    任意门:http://poj.org/problem?id=1830 开关问题 Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 1 ...

  4. 【Luogu】P3389高斯消元模板(矩阵高斯消元)

    题目链接 高斯消元其实是个大模拟qwq 所以就着代码食用 首先我们读入 ;i<=n;++i) ;j<=n+;++j) scanf("%lf",&s[i][j]) ...

  5. CodeForces - 24D :Broken robot (DP+三对角矩阵高斯消元 随机)

    pro:给定N*M的矩阵,以及初始玩家位置. 规定玩家每次会等概率的向左走,向右走,向下走,原地不动,问走到最后一行的期望.保留4位小数. sol:可以列出方程,高斯消元即可,发现是三角矩阵,O(N* ...

  6. P3164 [CQOI2014]和谐矩阵(高斯消元 + bitset)

    题意:构造一个$n*m$矩阵 使得每个元素和上下左右的xor值=0 题解:设第一行的每个元素值为未知数 可以依次得到每一行的值 然后把最后一行由题意条件 得到$m$个方程 高斯消元解一下 bitset ...

  7. [luogu4035 JSOI2008] 球形空间产生器 (矩阵 高斯消元)

    传送门 题目描述 有一个球形空间产生器能够在 nnn 维空间中产生一个坚硬的球体.现在,你被困在了这个 nnn 维球体中,你只知道球面上 n+1n+1n+1 个点的坐标,你需要以最快的速度确定这个 n ...

  8. poj 3744 矩阵 高斯消元

    着实被批评了一下,自己的数论确实太烂了. 题意:一条路上,有n个炸弹,给出每个炸弹的位置,一次走一步的概率是p,走两步的概率是1-p.求安全走完的概率. 定义dp[i] = dp[i-1]*p + d ...

  9. bzoj1002 轮状病毒 暴力打标找规律/基尔霍夫矩阵+高斯消元

    基本思路: 1.先观察规律,写写画画未果 2.写程序暴力打表找规律,找出规律 1-15的答案:1    5    16    45    121 320 841     2205   5776 151 ...

随机推荐

  1. Ubuntu 安装phpmyadmin 和配置

    ubuntu 安装 phpmyadmin  两种 : 1: apt-get 安装  然后使用 已有的虚拟主机目录建立软连接  sudo  apt-get install  phpmyadmin sud ...

  2. [GO]二进制文件的拷贝

    writestring的方式只适用于字符串的写入,对于十进制文件的写入只要使用write就可以了 package main import ( "os" "fmt" ...

  3. kalilinux系统设置

    echo LANG="zh_CN.UTF-8" > /etc/default/locale

  4. WPF学习资源整理

    WPF(WindowsPresentation Foundation)是微软推出的基于Windows Vista的用户界面框架,属于.NET Framework 3.0的一部分.它提供了统一的编程模型 ...

  5. Python相关基础

    1>变量: 2>条件判断与缩进: sex = raw_input("Please input your gender:") if sex == "girl&q ...

  6. 如何让X5发现你的手机

    1. 手机开启 USB 调试.不用 ROOT.2. 装驱动.(问题就在这里) 首先要装对驱动,如果你的驱动叫 MyHTC,请立即删除. 找个 手机助手.例如 百度 腾讯 360 等等.反正不论你是谁的 ...

  7. Android-SDCard外部存储文件读写

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses ...

  8. [LeetCode 题解]:Best Time to Buy and Sell Stock

    前言   [LeetCode 题解]系列传送门:  http://www.cnblogs.com/double-win/category/573499.html   1.题目描述 Say you ha ...

  9. 数独高阶技巧入门之三——Fish

    术语Fish代表了一组工作原理相同的关于特定候选数的解题技巧(Fish技巧直接产生自数独规则——每个单元内的数字都不能重复),Fish家族成员包括“体型”从小到大的X-Wing.Swordfish. ...

  10. C#winform自定义滚动条

    1.控件 一个UserControl作为ScrollBg,一个panel作为ScrollBar 2.实现功能 (1)设置滚动条背景颜色和背景图片 (2)设置滚动条滑块的背景颜色和背景图片 (3)鼠标左 ...