问题标签 [eigen]
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++ - 特征和 Cholesky 分解:不稳定问题?
我正在研究 3-D 表面网格,并尝试通过将二次多项式拟合到每个顶点邻域来获得高斯曲率值。为了获得多项式系数,我使用 Eigen 包 (C++) 中包含的标准 Cholesky 分解 (LL^T) 来求解我的系统 Ax = b,其中 A 是对称的正定矩阵。
在解决系统问题时,我只获得了其中一个解决方案(大约 2000 个顶点!)的最奇怪的值。这是我的对称正定矩阵的逆矩阵的示例:
只需比较每个矩阵的第一个元素,您就可以看到差异:288(顶点 85)、496411(顶点 86)和顶点 87 上的正常值:523.131...
这是我正在使用的部分代码(B 是我的对称正定矩阵):
我不知道我是否遗漏了什么......这可能是一个不稳定的问题,也许是舍入错误?如何摆脱这些意想不到的结果?谢谢,米格尔
c# - 在 C# 中解决本征系统?
你知道我可以用来解决 C# 中的特征系统的好库/方法吗?
我的数据是 2D/3D,我想获得第一个和第二个特征向量的方向和长度,以评估我的数据在 2D 空间中是如何被拉长的。
谢谢
opencv - 将选择行复制到新矩阵中
我想按此顺序将矩阵 A 的第 0、2 和 4 行复制到 B 中。让 A = [a0, a1, a2, a3, a4]^T ,其中 a_i 是行向量,那么 B 应该是:[a0, a2, a4]^T。
下面的代码可以满足我的要求,但我想知道是否有更漂亮的解决方案(可能使用 Eigen)?
c++ - eigen library selfadjointView问题
每当我尝试使用 eigen 库使用任何矩阵或稀疏矩阵的 selfadjointView 属性时,我都会不断收到错误消息。下面是一个简单的代码来检查。在我的程序中,我尝试使用自伴随矩阵:
我得到的错误消息是:错误:没有匹配函数调用“Eigen::SparseMatrix::selfadjointView()”</p>
c++ - 在 C++ 中实现大于 2 维的多元高斯概率密度函数
我正在努力在 C++ 中实现多元高斯的概率密度函数,我一直坚持如何最好地处理维度 > 2 的情况。
高斯的pdf可以写成
其中 (A)' 或 A' 表示通过从 x 的所有元素中减去平均值创建的“矩阵”的转置。在这个方程中,k是我们拥有的维数,sigma代表协方差矩阵,也就是akxk矩阵。最后,|X| 表示矩阵 X 的行列式。
在单变量情况下,实现 pdf 是微不足道的。即使在双变量 (k = 2) 的情况下,它也是微不足道的。然而,当我们超越二维时,实现起来就困难得多。
在双变量情况下,我们有
其中 rho 是 x 和 y 之间的相关性,相关性等于
在这种情况下,我可以使用Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>
第一个方程来实现,或者只使用第二个方程自己计算所有内容,而无需受益于 Eigen 的简化线性代数接口。
我对多变量情况的尝试可能会从将上述方程扩展到多变量情况开始
和
我的问题是:
- 将 a 用于 n 维数组是否合适/建议
boost::multi_array
,还是我应该尝试利用 Eigen? - 我应该为单变量/双变量案例设置单独的函数,还是应该使用 boost::multi_array (或适当的替代方法)将其全部抽象为多变量案例?
c++ - 具有可参数化“零”的稀疏矩阵类
我正在对日志域中的浮点稀疏矩阵进行一些计算,因此“空”条目实际上是-Inf(使用-FLT_MAX)。我现在正在使用自定义稀疏矩阵类,但我渴望更换现成的替代品。
这是在 C++ 中。我倾向于查看 Eigen 和 Boost uBlas 中的压缩列矩阵。但是,不清楚是否支持“零”的自定义值(可能由模板参数提供)。有人有建议吗?
澄清:
我想要的是:对于之前没有“设置”的任何单元格 (i,j),我希望 mat[i,j] 返回 -Inf ...所以这可能更好地描述为“默认”稀疏矩阵的“空”条目的值。
我正在使用它来执行 HMM 递归(Viterbi,sum-product),概率保存在日志域中以避免下溢。
我没有做任何矩阵运算……本质上,我只是在填写动态规划表。我想使用稀疏矩阵类,因为我只填充矩阵的一个带,并且我希望有效地使用内存。压缩带矩阵将提供良好的性能,因为我正在“按顺序”填充矩阵。
iphone - 如何在 iPhone 中编译 Eigen
我想编译 Eigen 并在具有 NEON 功能的 iPhone 中使用它。如何在 iPhone 中编译 Eigen?是否需要针对特定的 ARM 芯片进行编译?我需要修改构建脚本吗?
干杯。
math - 给定 A 和 B 的 Trace(AB^{-1}) 的有效计算
我有两个方阵 A 和 B。A 是对称的,B 是对称正定的。我想计算 $trace(AB^{-1})$。现在,我计算 B 的 Cholesky 分解,在方程 $A=CB$ 中求解 C,并对对角线元素求和。
有没有更有效的处理方式?
我打算使用 Eigen。如果矩阵稀疏(A 通常可以是对角线,B 通常是带对角线),您能否提供一个实现?
c++ - 如何在 Eigen 中初始化 SparseVector
如何在 Eigen 中初始化 SparseVector ?以下代码:
给我以下错误
错误:在没有适当的 operator() 或将函数转换为指针函数类型 vec(0)=1.0 的情况下调用类类型的对象;
顺便说一句, vec[0]=1.0 也不起作用。
c++ - 使用特征向量化表达式
在我的程序中——使用 Eigen 库——我需要对 2D 向量进行操作。在我的内部循环中,我有以下功能:
这个表达式虽然很混乱,但似乎是矢量化的主要候选者,因为x()
和y()
计算都遵循相同的路径。我的问题是如何使用 Eigen 来完成,而无需手动下拉到组装。