问题标签 [arpack]

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 投票
1 回答
1235 浏览

python - python scipy eigs:在最大迭代次数后返回特征向量,无论收敛容差如何

我想获得在给定时间内具有最佳精度的稀疏对称矩阵的特征向量。
目前我使用以下内容scipy.sparse.eigsh

如果它没有tol通过迭代收敛到精度maxiter,则会引发一个ArpackNoConvergence错误,其中包含已收敛的特征向量/值,但不包含未收敛的特征向量/值。然而,我更喜欢使用精确的向量1.e-141.e-15不是根本没有向量。有没有办法强制返回尚未收敛的特征向量(可能与另一个库)?
就像在 Matlab 中一样,该eigs函数无论如何都会返回特征向量,如果未达到所需的精度,则会附加一个警告。

谢谢 !

0 投票
1 回答
382 浏览

c++ - 在 Cmakelist 中添加 Arpack/Armadillo

我正在努力在 myCMakeLists(见下文)文件中添加 ARPACK,我在 Mac-OSX 下构建了我的 Qt 项目。请注意,我通过“Macport”安装了 Armadillo 库,Qt 会自动识别它,而无需将其添加到 CMakeList 文件中。但由于我使用的是犰狳的稀疏分解功能,Qt 要求我将 ARPACK 库链接到项目。我安装了 ARPACK 库,但我没有找到如何添加到我的 CMakeList 文件中。请问如何添加?

0 投票
1 回答
313 浏览

c - 从 c 调用 fortran 77 以获取 arpack

我正在尝试从 ARPACK 调用 fortran 函数 dsaupd。我使用了来自netlib-java的 C 声明

然后我在调用 dsaupd 之前在程序中将 numcols 定义为 int

代码编译并使其成为第一个“Here”打印输出,但在那之后停止。知道我做错了什么,或者如何调试这个调用?

0 投票
1 回答
903 浏览

scipy - 我可以在 scipy 中使用并行 ARPACK 吗?

我一直在一些大型矩阵上使用 scipy.sparse.linalg.eigs,毫不奇怪,这需要一段时间。所以,我一直在寻找加快速度的方法。我的理解是,在引擎盖下,scipy 代码使用ARPACK,并且有一个使用 MPI 的 ARPACK 并行版本。是否有可能让 scipy 使用 ARPACK 的并行版本而不会有太多痛苦?如果是这样,怎么做?

(我应该注意到 MATLAB 的 eigs 等价物似乎是多线程的,所以这可能是最不痛苦的选择。)

0 投票
2 回答
1041 浏览

c++ - “...的多重定义”使用 arpackpp

在我当前的项目中,我正在使用 arpackpp 界面。整个库都写在.h文件中,所以不需要编译库。我现在面临的问题 - 当我在我的一些arpackpp文件中包含一些头文件时main.cpp,我收到以下错误:

/.../Files/Includes/../../../arpack++/include/arerror.h:163: 多重定义ArpackError::Set(ArpackError::ErrorCode, std::string const&)' /.../Files/Includes/../../../arpack++/include/arerror.h:163: first defined here /tmp/ccruWhMn.o: In functionstd::iterator_traits::iterator_category std::__iterator_category(char* const&)': / .../Files/Includes/../../../arpack++/include/arerror.h:163: ArpackError::code' /.../Files/Includes/../../../arpack++/include/arerror.h:163: first defined here /tmp/ccruWhMn.o: In functionstd::vector >::max_size() const' 的多重定义:

arpackpp链接所有.o文件时的几个功能。正如我在几个线程中所读到的,问题在于我实际上包含了函数的实例化,这通常应该避免。因为我不想更改整个库,所以我使用arpackpp了类 in包含了所有类和函数main.cpp,这变得非常混乱。这个问题有解决方法吗?为什么不包括警卫来(#ifndef...#endif)防止这个问题?

0 投票
0 回答
691 浏览

octave - 八度和警告“找到 ARPACK 库,但似乎无法正常工作;禁用 eigs 功能”

情况

我使用 Ubuntu 14.04。我正在使用 GNU 6.3.0 从源代码构建 GNU Octave 4.2.1。这个版本的 Octave 是相当新的,但我在尝试编译旧的 Octave 版本(低至 3.8.1)时也看到了这个问题。

我配置 Octave 的构建

问题

编译成功但出现了不想要的警告

我宁愿使用 eigs() 函数。

信息

我自己用相同的编译器构建了 ARPACK-ng。测试套件 ( make check) 中的所有测试均通过。环境变量LD_LIBRARY_PATH并按PKG_CONFIG_PATH预期指向 ARPACK 库目录。Octave 的配置文件可以正确识别该位置,如前所述。

libarpack2此外,如果我在另一台本地安装了 ARPACK(和libarpack2-dev版本 3.1.5-2)的计算机上编译 Octave,我会收到相同的消息。libarpack++2c2a如果我还安装相关的额外库并libarpack++2-dev使用包存储库,它不会改变任何事情。所以这个问题似乎与 ARPACK 文件的来源无关。

configure.ac引发此错误的 Octave 文件部分是

我追溯问题的最远距离是OCTAVE_CHECK_LIB_ARPACK_OK发出警告的子例程存在于文件中${octave_source}/m4/acinclude.m4。它是用m4语言写的,我不知道

问题

是否有可能理解为什么 ARPACK '似乎无法正常工作'?

有什么解决方法吗?

这是误报还是错误?

0 投票
2 回答
865 浏览

c++ - 使用 gcc - ld 链接库:找不到 -larpack

我在没有 root 权限的服务器上安装软件。我在安装过程中遇到以下错误:

由于找不到库arpack,于是我把它安装在这里/seq/.../SOFTWARE/hgaprec/ARPACK,发现进程生成了一个静态文件libarpack_LINUX.a。要将此静态库链接到 gcc,请使用以下命令:

但是,在安装未找到 larpack 的软件时,我不断收到相同的错误。我是否使用了错误的链接命令?

0 投票
1 回答
212 浏览

r - kknn 中的 specClust() - arpack 迭代限制增加

我正在将光谱聚类应用于具有 4200 行和 2 列的数据集。

我有以下错误。

我如何增加 arpack 的迭代次数,因为这不起作用:

0 投票
1 回答
1616 浏览

fortran - 如何在 Fortran 中计算第一个特征值和特征向量

我尝试通过一些示例(此处)使用 ARPACK,但我什至无法弄清楚如何输入我的矩阵。从这个问题看来,Python 和 Matlab 中的实现似乎是避免 ARPACK 复杂性的唯一解决方案。是否有一些(基于 Fortran 的)方法可以做到这一点,同时避免计算所有特征值/特征向量?

0 投票
1 回答
142 浏览

python - Hermitian 矩阵的 ARPACK 的奇怪行为

我想以数字方式获得某个厄米特矩阵的基态能量(参见以下代码中该矩阵的定义)并根据矩阵参数“相位”绘制它。

我已经使用 Python 中的 ARPACK 来处理 Hermitian 矩阵,这是使用sparse.linalg.eigs. 问题是,如下图所示,基态能量没有正确计算,有很多峰值,这意味着基态没有正确找到。实际上似乎对于这个峰值,ARPACK 没有找到基态并且它获得了第一个激发态。 在此处输入图像描述 这是一个非常奇怪的问题,因为我正在使用的这个矩阵(来自量子力学)可以通过分析和使用 Mathematica 来解决,并且在 Python 中使用 ARPACK 不起作用。有人知道为什么会发生这种情况以及如何解决?谢谢

我正在使用 scipy 0.19.1 的最新版本