问题标签 [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.
c++ - C++:包括库、多个定义(ARPACK++)
我目前正在尝试使用 ARPACK++ 等其他 C++ 库,但在 ARPACK++ 的包含文件夹中遇到了多个定义问题。
这是我的编译行,其中包括我需要的几个库:
编译器将这个错误交给我:
这有点奇怪,因为包含头文件“ arerrorh.h ”被包裹在一个正确的里面:
难道是我在链接或编译部分做错了什么?因为这几乎是我最不自信的部分。如果有人能告诉我我在这里做错了什么,我会很高兴。
提前致谢!
python - scipy.sparse.linalg.eigs 的迭代次数
是否有可能找出 eigs/eigsh 需要多少次迭代才能收敛?
c++ - 调用 ARPACK 反向通信矩阵向量例程
我正在尝试使用 ARPACK 提供的 fortran 函数在 C++ 中编写一个驱动程序来计算不对称实值稀疏矩阵的特征值,但是我在使用反向通信方法时遇到了一些麻烦。
一般来说,我试图解决正常的特征值方程:
并且与矩阵 A 的任何交互都是通过函数 'av' 在 ARPACK 中完成的:
它将数组'workd'中从位置'ipntr [0]'开始的向量相乘,并将结果插入从位置'ipntr [1]'开始的数组'workd'中。此方法的示例在http://www.caam.rice.edu/software/ARPACK/的手册中以及 ARPACK/EXAMPLES/SIMPLE/dnsimp.f 代码中给出。
我想知道的是我如何实际涉及矩阵A?如果它没有传递给例程,那么如何找到它对提供的向量的作用?
在示例代码 dnsimp.f 中,它们的矩阵 A 在函数“av”内计算,并且“源自二维对流-扩散算子的标准中心差分离散化”。但是,我相信这是特定于问题的?将矩阵 A 的推导编码到函数中似乎也不太有用。我也无法从手册中找到太多关于此的信息。
这似乎不是什么大问题,因为它是一个用户定义的函数,我可以更改“av”的定义以将矩阵 A 作为参数包含在内。但是,我想知道如果出现任何潜在的兼容性问题,它是如何正确完成的。
谢谢!
python - 使用 ARPACK 解决特征值问题,但使用 Matlab 得到的结果不一致
我是 ARPACK 的新手,我下载了如下脚本
它解决了一个非常简单的特征值问题(那里的矩阵A
不是对称的,我设置A[0,8]
为30
)。根据 ARPACK 结果,最接近3.6766133
(sigma=3.6766133
在设置中) 的 3 个特征值是
然后我去MATLAB,解决同样的特征值问题,结果是
显然,第二种模式3.642801014184622 + 0.497479798520641i
更接近于sigma=3.6766133
,但 ARPACK 并没有挑选出来。
可能是什么问题呢?你能帮我解决这个问题吗?非常感谢。
python - scipy.sparse.linalg.arpack.eigsh 对于正半定稀疏矩阵的特征分解的稳定性?
我正在研究一种光谱聚类算法的变体,该算法多次对更新的相似性矩阵执行标准光谱嵌入W
,n_iters
因此我必须检查在特征分解之前L_rw
通过更新W
每次迭代生成的归一化拉普拉斯矩阵的 PSD。问题是,即使初始化L_rw
在理论上总是 PSD,arpack
有时也会产生负特征值(有时并非总是如此)。总之,arpack
并不总是保证半定对称矩阵的非负特征值。下面是示例代码来说明我遇到的问题。
然后我pdb.run('L_rw = my_laplacian(W)')
,但它没有ValueError
好像arpack
不是很稳定?还是我弄错了什么?有没有人可以解释一下?
matlab - ARPACK 给出了来自 Matlab 和 NAG 的不同答案
我在玩 ARPACK。我在 ARPACK/EXAMPLES/COMPLEX/ 目录中查看了他们提供的示例 zndrv4.f。我也进入了 NAG Fortran 库。在 NAG 中,有一些线性问题求解器 F12***。NAG 中的 F12*** 例程相当于 ARPACK 中的 znaupd。所以我想检查它们是否会产生相同的结果。
例如,我首先查看了http://www.nag.co.uk/numeric/fl/nagdoc_fl22/pdf/F12/f12arf.pdf的 F12ARF 用户指南中提供的示例。最后,它会产生以下结果
大约班次= 500。我在 Matlab 中解决了相同的广义特征值问题。Matlab 给出了相同的结果。
但是当我使用 ARPACK 的 znaupd 来解决同样的问题时,我得到了不同的答案。4个特征值现在是
NAG 和 ARPACK 中的例程都使用 SHIFTED INVERSE 模式并解决一般问题。我不确定出了什么问题。我附上了我的 ARPACK zndrv4.f 脚本(它与 ARPACK 提供的示例文件基本相同,我只需将第 174 行周围的矩阵稍微更改为与 NAG 中的相同。)和 Matlab 文件zndrv4.m.
https://www.dropbox.com/s/b9f1btl7a2ugrh3/zndrv4.f?dl=0 https://www.dropbox.com/s/pctmennp64mkn9m/zndrv4.m?dl=0
更新:F12ARF 中的 M 矩阵被归一化(条目除以六)。我遵循了这一点,并在 ARPACK 中得到了上述错误结果。现在,如果我没有将条目除以六,ARPACK 脚本会给我正确的答案(与 Matlab 相同)。现在我更加困惑了。好像是说ARPACK例程不健壮?
ubuntu-12.04 - ARPACK 未在 Ubuntu 12.04 中编译
我已经相应地更改了 ARmake.inc 文件。平台改为LINUX。以下是问题:
eigenvalue - 使用 Arpack 计算特征值
我正在使用 Arpack 使用具有复杂移位的反向移位方法来计算问题的特征值 λ Mx = Ax。然后,我使用 znaupd e zneupd。一切似乎都很好。我写了一个函数,它采用 Arpack 计算的特征值和特征向量,并将它们放在原始问题中:残差的范数应该几乎为零或非常小。无论如何,我得到一个相当高的 10^-3 的错误!你知道问题出在哪里吗?
linux - 对“blacs_gridinfo_”的未定义引用
我在构建 LSDMap(局部缩放扩散图)时遇到未定义的参考错误。哪些库包含缺少的引用?
mpi - 如何在 PARPACK 中运行 MPI 示例
我能够编译,这是文件夹psndrv1.f
中的一个示例。ARPACK/PARPACK/EXAMPLE/MPI
但是,当我使用命令运行程序时mpirun -np 4 a.out
,出现以下错误。
我正在使用岩石簇。请帮忙。