问题标签 [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.
python - python scipy eigs:在最大迭代次数后返回特征向量,无论收敛容差如何
我想获得在给定时间内具有最佳精度的稀疏对称矩阵的特征向量。
目前我使用以下内容scipy.sparse.eigsh
:
如果它没有tol
通过迭代收敛到精度maxiter
,则会引发一个ArpackNoConvergence
错误,其中包含已收敛的特征向量/值,但不包含未收敛的特征向量/值。然而,我更喜欢使用精确的向量1.e-14
而1.e-15
不是根本没有向量。有没有办法强制返回尚未收敛的特征向量(可能与另一个库)?
就像在 Matlab 中一样,该eigs
函数无论如何都会返回特征向量,如果未达到所需的精度,则会附加一个警告。
谢谢 !
c++ - 在 Cmakelist 中添加 Arpack/Armadillo
我正在努力在 myCMakeLists(见下文)文件中添加 ARPACK,我在 Mac-OSX 下构建了我的 Qt 项目。请注意,我通过“Macport”安装了 Armadillo 库,Qt 会自动识别它,而无需将其添加到 CMakeList 文件中。但由于我使用的是犰狳的稀疏分解功能,Qt 要求我将 ARPACK 库链接到项目。我安装了 ARPACK 库,但我没有找到如何添加到我的 CMakeList 文件中。请问如何添加?
c - 从 c 调用 fortran 77 以获取 arpack
我正在尝试从 ARPACK 调用 fortran 函数 dsaupd。我使用了来自netlib-java的 C 声明
然后我在调用 dsaupd 之前在程序中将 numcols 定义为 int
代码编译并使其成为第一个“Here”打印输出,但在那之后停止。知道我做错了什么,或者如何调试这个调用?
scipy - 我可以在 scipy 中使用并行 ARPACK 吗?
我一直在一些大型矩阵上使用 scipy.sparse.linalg.eigs,毫不奇怪,这需要一段时间。所以,我一直在寻找加快速度的方法。我的理解是,在引擎盖下,scipy 代码使用ARPACK,并且有一个使用 MPI 的 ARPACK 并行版本。是否有可能让 scipy 使用 ARPACK 的并行版本而不会有太多痛苦?如果是这样,怎么做?
(我应该注意到 MATLAB 的 eigs 等价物似乎是多线程的,所以这可能是最不痛苦的选择。)
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 function
std::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 function
std::vector >::max_size() const' 的多重定义:
arpackpp
链接所有.o
文件时的几个功能。正如我在几个线程中所读到的,问题在于我实际上包含了函数的实例化,这通常应该避免。因为我不想更改整个库,所以我使用arpackpp
了类 in包含了所有类和函数main.cpp
,这变得非常混乱。这个问题有解决方法吗?为什么不包括警卫来(#ifndef...#endif)
防止这个问题?
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 '似乎无法正常工作'?
有什么解决方法吗?
这是误报还是错误?
c++ - 使用 gcc - ld 链接库:找不到 -larpack
我在没有 root 权限的服务器上安装软件。我在安装过程中遇到以下错误:
由于找不到库arpack,于是我把它安装在这里/seq/.../SOFTWARE/hgaprec/ARPACK,发现进程生成了一个静态文件libarpack_LINUX.a。要将此静态库链接到 gcc,请使用以下命令:
但是,在安装未找到 larpack 的软件时,我不断收到相同的错误。我是否使用了错误的链接命令?
r - kknn 中的 specClust() - arpack 迭代限制增加
我正在将光谱聚类应用于具有 4200 行和 2 列的数据集。
我有以下错误。
我如何增加 arpack 的迭代次数,因为这不起作用:
python - Hermitian 矩阵的 ARPACK 的奇怪行为
我想以数字方式获得某个厄米特矩阵的基态能量(参见以下代码中该矩阵的定义)并根据矩阵参数“相位”绘制它。
我已经使用 Python 中的 ARPACK 来处理 Hermitian 矩阵,这是使用sparse.linalg.eigs
. 问题是,如下图所示,基态能量没有正确计算,有很多峰值,这意味着基态没有正确找到。实际上似乎对于这个峰值,ARPACK 没有找到基态并且它获得了第一个激发态。
这是一个非常奇怪的问题,因为我正在使用的这个矩阵(来自量子力学)可以通过分析和使用 Mathematica 来解决,并且在 Python 中使用 ARPACK 不起作用。有人知道为什么会发生这种情况以及如何解决?谢谢
我正在使用 scipy 0.19.1 的最新版本