问题标签 [determinants]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2248 浏览

matlab - Matlab:向量矩阵的行列式

我有一个 2x2 矩阵,它的每个元素都是一个 1x5 向量。像这样的东西:

现在我想找到行列式,但这发生了

现在我明白为什么会发生这种情况了,MATLAB 将 A 视为 2x10 的双精度矩阵。我希望能够将 x 视为一个元素,而不是一个向量。我想要的是det(A) = x^2 - x^4,然后得到B = det(A)一个 1x5 向量。

我如何实现这一目标?

0 投票
1 回答
193 浏览

computational-geometry - 基于平面几何的符号扰动

我知道可以将像“ Simplicity 模拟”(SoS)这样的符号扰动方案应用于像 4 点方向这样的几何谓词,以避免处理退化的情况。我假设对基于平面的几何做同样的事情也是有效的,其中点是由 3 个平面的交点隐式定义的,所以我可以有一个类似的方向谓词告诉我定义的点在第 4 个平面的哪一侧前3个谎言。我会扰乱平面方程的系数,而不是一个点的笛卡尔坐标。

问题是一个点可以由许多不同的平面定义。立方体中的每个顶点由 3 个平面定义,但金字塔的顶点有 4 个。一致性似乎是像 SoS 这样的方案的一切,我无法确定我选择哪个 3 个平面来定义一个点是否重要。也许不是,只要每次我提到这一点时,我都使用相同的 3 架飞机。

那么,问题来了:我可以选择任意 3 个平面来表示一个点吗?

提前致谢。

0 投票
1 回答
834 浏览

matrix - 计算矩阵的行列式

我很惊讶为什么下面的算法告诉我,那个矩阵是不可逆的,我有输入单位矩阵,这是我的计算行列式的代码

0 投票
1 回答
3815 浏览

c - 通过管道函数在 C 中计算行列式矩阵。修订代码

开发程序是使用 IPC 机制执行以下问题之一: 方式——“渠道”。通过在低阶行列式上展开方阵行列式来实现计算。“主”进程发送作业“驱动”进程,但后者执行行列式计算,然后计算主进程的结果。也就是说,需要用到管道功能。我有一个工作程序,但没有 IPC 机制。我不知道管道功能及其工作原理。

0 投票
1 回答
503 浏览

java - Jama - 矩阵在找到行列式时必须是平方异常

我不熟悉将 Jama 用于矩阵。我的问题是当我使用它给出det()的方法(与LUDecomposition类有关)时"Matrix must be square"。好的,我的矩阵是三角形的,但LUDecomposition它应该给我方矩阵。我的代码是这样的

0 投票
2 回答
4031 浏览

c++ - 使用多维数组的递归和动态内存分配来找到 NxN 矩阵的行列式

我正在尝试编写一个程序,该程序可以计算任何 NxN 矩阵的行列式,而不管大小如何,但是程序有问题,并且对于任何大小大于 1 的矩阵都会崩溃。

我会非常感谢任何能告诉我我做错了什么的人。我是 C++ 和动态内存的新手,所以请放轻松(:.

这是我的程序:

0 投票
1 回答
56 浏览

build - 如何在不使用 SDK/libs 等的情况下确定应用程序的构建(x86 或 x64)

我想确定程序的构建。它可以运行也可以不运行。我也想在我的代码中确定这样的事情,而不使用任何 SDK 或来自 .net fw 等的一些准备好的东西......

怎么做?

问题不在于确切的语言。它可能引用普通/纯 C、Lisp、Basic 等...

我想知道的是“在不使用 sdk 等帮助的情况下确定”。

PS请!注意。我已经强调了“没有像 sdk 这样的现成的东西”,使用控制台和实用程序,如 'dmesg'、'dumpbin' 等......在这个 Q 中也没有意义。更多的是关于自己查看文件的二进制文件而不其他程序的任何帮助。

0 投票
2 回答
689 浏览

c++ - 如何制作一个 C++ 程序来查找任何大小矩阵的行列式和逆矩阵?

我知道如何在 1x1 2x2 和 3x3 中找到这些,但我想制作一个程序,让我输入矩阵的尺寸,然后输入矩阵中的数字。输入数字后,我希望它给出确定的(如果能够得到一个)和矩阵的逆矩阵,但我不知道如何绕过维度部分。什么是开始这个​​的好方法?我应该使用什么标题?我在Linux上运行,所以我没有像windows那样的一些标题,如果有帮助的话。:)

0 投票
2 回答
1329 浏览

algorithm - 取 n 行列式的有效方法!xn!Maple中的矩阵

我有一个大矩阵,n!xn!,为此我需要取行列式。对于 n 的每个排列,我将

  • 长度为 2n 的向量(这在计算上很容易)
  • 2n 个变量的多项式(在 n 上递归计算的线性因子的乘积)

该矩阵是向量处的多项式的评估矩阵(被认为是点)。所以矩阵的 sigma,tau 项(由排列索引)是在 tau 的向量处评估的 sigma 的多项式。

示例:对于n=3,如果第ith 多项式是(x1 - 4)(x3 - 5)(x4 - 4)(x6 - 1)并且第jth 点是(2,2,1,3,5,2),那么(i,j)矩阵的第 th 项将是(2 - 4)(1 - 5)(3 - 4)(2 - 1) = -8。这里n=3,所以点在R^(3!) = R^6并且多项式有3!=6变量。

我的目标是确定矩阵是否是非奇异的。


我现在的做法是这样的:

  • 该函数point接受一个排列并输出一个向量
  • 该函数poly采用置换并输出多项式
  • 该函数nextPerm按字典顺序给出下一个排列

我的代码的删节伪代码版本是这样的:

我正在使用内置函数在 Maple 中工作LinearAlgebra[Determinant],但其他一切都是使用低级 Maple 函数(例如 和 )的自定义seq构建convert函数cat

我的问题是这需要很长时间,这意味着我可以n=7耐心等待,但n=8需要几天时间。理想情况下,我希望能够到达n=10.

有谁知道我可以如何改善时间?我愿意使用不同的语言工作,例如 Matlab 或 C,但我更愿意在 Maple 中找到一种加快速度的方法。

我意识到如果没有所有血淋淋的细节,这可能很难回答,但是每个函数的代码,例如pointpoly,已经优化,所以这里真正的问题是是否有更快的方法通过在飞,或类似的东西。


更新:这是我玩弄的两个不起作用的想法:

  1. 我可以将多项式(因为它们需要一些时间来计算,如果可以的话我不想重做)存储到一个长度向量中n!,并即时计算点,并将这些值插入置换公式对于行列式:

    置换行列式

    这里的问题是这是O(N!)矩阵的大小,所以对于我来说这将是O((n!)!). 什么时候n=10(n!)! = 3,628,800!甚至考虑这样做的方式都很大。

  2. 使用 LU 分解计算行列式。幸运的是,我的矩阵的主对角线是非零的,所以这是可行的。由于这是O(N^3)矩阵的大小,这变得O((n!)^3)更接近可行。但是,问题在于它需要我存储整个矩阵,这对内存造成了严重压力,更不用说运行时间了。所以这也行不通,至少在没有一点聪明的情况下是行不通的。有任何想法吗?

0 投票
2 回答
2653 浏览

c# - n*n 矩阵的行列式

我正在尝试实现此处找到的代码和算法:

矩阵的行列式 和这里: 如何计算矩阵行列式?n*n 或 5*5

但我坚持下去。

我的第一个问题是这个算法实际上使用了什么规则(因为在数学中显然有几个规则可以用来计算行列式) - 所以我想首先检查算法是否正确应用。

我的第二个问题是我做错了什么(我的意思是实现)或算法本身有什么问题,因为它看起来对于 3x3 和 4x4 它工作正常,但对于 5x5 它给出了 NaN。使用几个在线矩阵行列式计算器检查结果,除了 5x5 之外,它们都很好。

这是我的代码: