首页 > 其他分享 >上海森堡矩阵快速求解行列式

上海森堡矩阵快速求解行列式

时间:2023-11-08 23:55:39浏览次数:35  
标签:dots 海森堡 color 矩阵 奇偶性 行列式

这是一个没啥用的小 trick,鉴于上下海森堡矩阵对称,此处只谈论上海森堡矩阵。

定义

海森堡阵(Hessenberg),是一个数学用语,对方阵 \(A\),若 \(i>j+1\) 时,有 \(A_{i,j}=0\) ,则称 \(A\) 是上海森堡阵。

行列式求解

考虑从行列式定义入手,即每行每列选择恰好一个元素,并乘以其奇偶性作为系数累加。
在第一行选择一列 \(j\),并将第 \(j\) 列整体删掉,例如下面的一个矩阵:

\[A=\left(\begin{matrix}* & * & \color{red}{*} & *& \dots \\ \color{purple}{*} & * & X& *& \dots \\ & \color{blue}* & X& *& \dots \\ & & X& \color{green}*& \dots \\ & & & \color{green}*& \dots \\ & & & & \dots \end{matrix}\right) \]

如果选定了红色的列,那么蓝色位置的元素就必须被选中,进而选中紫色的位置,也就是说,第 \(j\) 列前的所有列都唯一确定了,对于第 \(j\) 列之后的列,只需考虑绿色部分的元素,这是一个 \((n-j)\cdot (n-j)\) 的子问题。

于是考虑 dp,记 \(f_n\) 表示后 \(n\) 行,后 \(n\) 列的行列式的值,转移需要考虑前 \(i\) 行列对排列奇偶性带来的变化,可以做到 \(O(n^2)\),转移形如:\(f(n)=\sum_{i=0}^{n-1} f(i) d(n,i)\),其中 \(d\) 为排列奇偶性带来的影响。

当上海森堡矩阵中的元素是一个低次多项式,我们可以证明,行列式的次数也不会超过元素的最高次数,于是转移仍然是 \(O(n)\)。

应用

ABC323G 待补。

标签:dots,海森堡,color,矩阵,奇偶性,行列式
From: https://www.cnblogs.com/Think927/p/17818662.html

相关文章

  • 数据结构三元顺序表稀疏矩阵的加法程序
    三元顺序表稀疏矩阵的加法三元顺序表是什么?稀疏矩阵又是什么?稀疏矩阵的加法和普通矩阵的加法有什么不同?你看到这些是不是都有些困惑。那么现在我们就来讲讲这些陌生的东西。三元顺序表将稀疏矩阵非零元素对应的三元组所构成的集合,按照行优先的顺序排列成一个线性表,毫无疑问......
  • Scipy中稀疏矩阵用法解析(sp.csr_matrix;sp.csc_matrix;sp.coo_matrix)用法
    参考:链接orig=np.array([[1,0,2],[0,0,3],[4,7,6]])aa=csr_matrix(orig)aa有如下属性:#2代表第第一行有2个不为零的元素,#3代表第第一和二行不为零的元素总共有3个#6代表第第一、二和三行不为零的元素总共有6个indptr:array([0,2,3......
  • 满秩矩阵
    单位阵:单位阵是单位矩阵的简称,它指的是对角线上都是1,其余元素皆为0的矩阵。在矩阵的乘法中,有一种矩阵起着特殊的作用,如同数的乘法中的1,我们称这种矩阵为单位矩阵,简称单位阵。它是个方阵,除左上角到右下角的对角线(称为主对角线)上的元素均为1以外全都为0。可用将系数矩......
  • 海森矩阵 Hessian matrix
    二阶偏导数矩阵也就所谓的赫氏矩阵(Hessianmatrix).一元函数就是二阶导,多元函数就是二阶偏导组成的矩阵.求向量函数最小值时用的,矩阵正定是最小值存在的充分条件。经济学中常常遇到求最优的问题,目标函数是多元非线性函数的极值问题尚无一般的求解方法,但判定局部极小值......
  • 矩阵哈希
    矩阵哈希矩阵哈希可以解决一系列消消乐问题,即:​ 给定一个序列\(A\),每次可以消除相邻相同两项,问是否可以消除完。这一类问题。做法我们对每个字符\(c\)随机一个矩阵\(M_c\),那么当出现奇数次的时候乘\(M_c\),出现偶数次的时候乘他的逆\(M_c^{-1}\)。那么当一个序列里的......
  • 算法刷题记录-螺旋矩阵
    算法刷题记录-螺旋矩阵螺旋矩阵给你一个正整数n,生成一个包含1到n2所有元素,且元素按顺时针顺序螺旋排列的nxn正方形矩阵matrix。示例1:输入:n=3输出:[[1,2,3],[8,9,4],[7,6,5]]示例2:输入:n=1输出:[[1]]思路,这题有点绕,我用了一个比res大2的布尔矩阵来存储......
  • 关于用逆序数求解行列式的知识都在这里啦
    利用逆序求n阶行列式的值你知道怎么判断一组数字的逆序数吗?你会使用逆序计算这个行列式吗?这个四阶行列式千万不要展开求解......
  • 线性代数 · 矩阵 · Matlab | 满秩分解代码实现
    背景-矩阵的满秩分解:若A为m×n矩阵,rank(A)=r,则存在Fm×r、Gr×n,使得A=FG。其中,F列满秩,G行满秩。求满秩分解的方法:得到A的行最简形式B;对于B里某列为1该列中其他元素为零的列,取A的对应列,组成F;取B的前r行组成G。function[F,G]=fullra......
  • 【数值分析】向量和矩阵的范数
    向量范数一范数:\(||x||_1=|x_1|+|x_2|+\dots+|x_n|\)二范数:\(||x||_2=\sqrt{|x_1|^2+|x_2|^2+\dots+|x_n|^2}\)p范数:\(||x||_p=\sqrt[p]{|x_1|^p+|x_2|^p+\dots+|x_n|^p},\quadp\in[1,\infty)\)\(\infty\)范数:\(||x||_p=\max......
  • 线性代数 · 矩阵 · Matlab | Cholesky 分解代码实现
    (搬运外网的代码,非原创;原网址)(其实是专业课作业,但感觉国内博客没有合适的代码实现,所以就搬运到自己博客了)背景-Cholesky分解:若A为n阶实对称正定矩阵,则存在非奇异下三角矩阵L,使得A=LL^T。是特殊的LU分解(下三角上三角分解)。若限定L的对角元素为正,则这种分解......