我有一个非常大的100000左右的平方矩阵,我想知道这个矩阵的行列式值是否为零。
最快的方法是什么?
我必须在C中实现它
有一个性质,如果任意两行相等或一行是另一行的常数倍数,我们可以说该矩阵的行列式为零。它也适用于柱。
通常,这种大小的矩阵非常稀疏。使用行和列重排序算法将条目集中在对角线附近,然后使用QR分解或LU分解。第二个因素的对角线条目的乘积是行列式——在QR情况下直到一个符号。这可能仍然是太病态了,秩的最佳结果是通过执行奇异值分解获得的。然而,奇异值分解更昂贵。
假设您试图确定矩阵是否为非奇异矩阵,您可能需要查看以下内容:
https://math.stackexchange.com/questions/595/what-is-the-most-efficient-way-to-determine-if-a-matrix-is-invertible
正如在评论中提到的,最好使用某种BLAS库来为您实现这一点,例如Boost::uBLAS。
我有一个线性方程组,如MX=N。M是一个21x21矩阵,其中许多元素为零。当我试图用X=np求解这个系统时。linalg。求解(M,N),它会产生以下错误: 这里的问题是返回的值是0.0。我尝试了两种不同的方法来生成矩阵,这时我遇到了一个奇怪的行为: i) M的非零元素在代码中的其他地方计算。所有这些元素都是浮点数,表示为m_1,m_2,m_21。首先,为了生成M,我尝试了以下代码: 该矩阵的行列
我正在实现一个稀疏矩阵类,使用映射向量来存储数据(映射表示矩阵的一行,其中键是列的索引,值是该位置的maitrix的值)我已经编写了计算行列式的函数,但我不知道是否有一种方法可以计算这种节省的时间(因为矩阵是稀疏的,大多数值为零)在这里我的实现: 这是类接口 我计算行列式的方式是什么?假设运算符()以这种方式重载 提前感谢您的帮助
我想用极大值生成一个包含随机项的矩阵,这样矩阵的行列式就不会为零,然后进一步在Moodle的堆栈中实现这一点。我对Maxima(或任何与此相关的CA)的工作都是全新的,因此我一直在浏览我在网上找到的各种示例,到目前为止,我成功地做到了这一点: 生成具有0或1的2x2随机矩阵(出于简单性原因)并计算其行列式: 对于下一步,我想定义一个矩阵M2,如下所示: 如果矩阵M1的行列式已经不是零,好吧,我会同
使用MATLAB的det函数计算矩阵的行列式。 矩阵A的行列式由det(A)给出。 例子 (Example) 使用以下代码创建脚本文件 - a = [ 1 2 3; 2 3 4; 1 2 5] det(a) 运行该文件时,它显示以下结果 - a = 1 2 3 2 3 4 1 2 5 ans = -2
给定一个2维正整数数组,求和最大的HxW子矩形。矩形的总和是该矩形中所有元素的总和。 输入:具有正元素的二维数组NxN子矩形的HxW大小 输出:HxW大小的子矩阵,其元素的总和最大。 我已经使用蛮力方法解决了这个问题,但是,我现在正在寻找一个具有更好复杂性的更好的解决方案(我的蛮力法的复杂性是O(n6))。
问题内容: NumPy是一个非常有用的库,通过使用它,我发现它能够轻松处理非常大的矩阵(10000 x 10000),但是开始处理任何更大的矩阵(尝试创建50000 x 50000的矩阵)失败)。显然,这是因为需要大量内存。 是否有一种方法可以以某种方式(没有几个terrabytes的RAM)在NumPy中本地创建大型矩阵(比如说一百万乘一百万)? 问题答案: PyTables和NumPy是必经之