问题标签 [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.
c++ - 在 Eigen 中获取大矩阵的行列式时避免数值下溢
我已经使用 Eigen 库在 C++ 中实现了 MCMC 算法。该算法的主要部分是一个循环,其中首先执行一些矩阵计算,然后获得结果矩阵的行列式并将其添加到输出中。例如:
现在,在某些矩阵上,我不幸观察到数值下溢,因此行列式输出为零(实际上不是)。
我怎样才能避免这种下溢?
一种解决方案是获取行列式的对数,而不是行列式。然而,
- 我不知道该怎么做;
- 我怎么能把这些日志加起来?
任何帮助是极大的赞赏。
matlab - 行列式等于0 matlab
我正在学习如何使用 Matlab。我有一个关于矩阵 A 的问题:A=[1,2,3;4,5,6;7,8,9] 显然行列式应该等于 0。但实际上我得到了值:6.661338147750939e- 016怎么了?
我知道它几乎为零。我想要的是结果为零。有没有办法得到 0(精确结果)或 6.661338147750939e-016 是我能得到的吗?
matlab - 如何在matlab中以给定的矩阵顺序计算所有未成年人
我有一个矩阵 m*n,我想从中得到 p 阶的所有次要数(子矩阵的行列式)。
我在文档中没有找到任何好的东西,我可以使用我自己编写的函数来完成它,但我更喜欢开箱即用的东西。
我真正需要的是检查何时,在一个符号矩阵中,我的等级下降了,并且当该等级及以上的所有未成年人都为零时,就会发生这种情况。
有什么想法用纯matlab命令来做吗?由于有一个评估排名的功能,它以某种方式获得了未成年人。
matlab - 给定矩阵的 LUP 分解,如何在 MATLAB 中找到行列式?
我想从 MATLAB 中的 LUP 分解中计算矩阵的行列式。行列式可以从公式中找到:
P 是一个置换矩阵,S 是将 P 转换为单位矩阵所需的行交换数。如何在 MATLAB 的上述公式中找到 S?它是否有任何预定义的功能等?
c++ - 矩阵行列式算法 C++
我是编程新手,我一直在寻找一种方法来找到矩阵的行列式。我在网上找到了这段代码,但我无法理解这里的算法。我对 recursion 的基础没有任何问题,但是我无法理解 continue 和 main 循环。非常感谢任何可以向我解释算法的人。
runtime - 为什么一个简单的商会导致这么多开销?
我正在为行列式 a 编写解析表达式,如下所示:
行列式的真值是以第一大部分为分母,以 ga3 为分子。我发现当我不计算这个行列式时,我的代码(总共约 176,000 行代码)大约需要 0.07 秒,而计算这个行列式会使整个程序花费大约 2.5 秒。此外,我发现罪魁祸首是 line detW = ga3/detW
。当我注释掉这条线时,运行时间又回落到 0.07。
detW
仅当线上的值detW = ga3/detW
恰好为 1.0时才需要这么长时间。为什么会出现这种情况?为什么除以 1.0 会导致程序运行 3571% 的时间?
matlab - 如何计算 PCA 中的行列式?
我要编程 PCA,但为此,我必须计算特征向量和特征值。
我的问题是在计算特征值时,我们必须计算所有(对角线值 - lamda)的矩阵的行列式。
在这种情况下,我们可以考虑 lamda 的数量取决于矩阵维度。
我可以在 lamda 减去对角线之前为矩阵手动编程。
但是对于被lamda减去后的对角线,如何计算呢?
因为,最终我们必须进行因式分解才能得到 lamda (x1,x2,..,xn)。
这是示例:
然后我们必须用特征值减去对角线值,在这种情况下,因为我们不知道它,我们将它视为x。
行列式是 (3-x) (7-x) (9-x)。
我已经尝试将它相乘,但 matlab 给出了错误。你知道如何计算 (3-x) (7-x) (9-x) 吗?
我知道有matlab函数,但我不允许使用它!
我真的很感谢任何帮助:)
matlab - MATLAB 中的矩阵计算
有人可以帮我在 Matlab 中解决这个问题。假设我有这个 Matriks
其中det(A)=0;
所以,它可以写成:(计算行列式)
但是在matlab中我不能在定义它之前放x..
会有一个错误:
请帮我!!我不允许使用 Matlab 中的 det 函数!!!
java - 在 3-D 空间中生成随机共面点
我需要在 3-D 空间中生成随机共面点。平面方程为:
我通过随机化 a、b、c 和 d 来生成平面。为了在该平面上生成随机点,我使用以下代码:
但是当我使用Cayley-Menger 行列式检查点是否共面时,行列式永远不会等于零(即点不共面)。
有趣的是,当我在 x = 0 平面上生成点时,Cayley-Menger 行列式工作得非常好!
这是舍入错误还是其他?
编辑:长度、宽度和高度是整数值。
matlab - matlab中的函数det()是否使用并行计算
我有这个非常讨厌的矩阵,其中包含长多项式,这些多项式来自两个变量中两个多项式的结果的解。我需要得到这个矩阵的行列式,我应该尝试找到一种算法来使用并行计算还是 matlab 无论如何都会这样做?
谢谢