问题标签 [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 回答
771 浏览

c++ - C++:包括库、多个定义(ARPACK++)


我目前正在尝试使用 ARPACK++ 等其他 C++ 库,但在 ARPACK++ 的包含文件夹中遇到了多个定义问题。
这是我的编译行,其中包括我需要的几个库:

编译器将这个错误交给我:

这有点奇怪,因为包含头文件“ arerrorh.h ”被包裹在一个正确的里面:

难道是我在链接或编译部分做错了什么?因为这几乎是我最不自信的部分。如果有人能告诉我我在这里做错了什么,我会很高兴。
提前致谢!

0 投票
0 回答
148 浏览

python - scipy.sparse.linalg.eigs 的迭代次数

是否有可能找出 eigs/eigsh 需要多少次迭代才能收敛?

0 投票
1 回答
762 浏览

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 作为参数包含在内。但是,我想知道如果出现任何潜在的兼容性问题,它是如何正确完成的。

谢谢!

0 投票
2 回答
1498 浏览

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 并没有挑选出来。

可能是什么问题呢?你能帮我解决这个问题吗?非常感谢。

0 投票
0 回答
471 浏览

python - scipy.sparse.linalg.arpack.eigsh 对于正半定稀疏矩阵的特征分解的稳定性?

我正在研究一种光谱聚类算法的变体,该算法多次对更新的相似性矩阵执行标准光谱嵌入Wn_iters因此我必须检查在特征分解之前L_rw通过更新W每次迭代生成的归一化拉普拉斯矩阵的 PSD。问题是,即使初始化L_rw在理论上总是 PSD,arpack有时也会产生负特征值(有时并非总是如此)。总之,arpack并不总是保证半定对称矩阵的非负特征值。下面是示例代码来说明我遇到的问题。

当我运行它时:

然后我pdb.run('L_rw = my_laplacian(W)'),但它没有ValueError

我又跑了一遍:

好像arpack不是很稳定?还是我弄错了什么?有没有人可以解释一下?

0 投票
0 回答
186 浏览

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例程不健壮?

0 投票
1 回答
708 浏览

ubuntu-12.04 - ARPACK 未在 Ubuntu 12.04 中编译

我已经相应地更改了 ARmake.inc 文件。平台改为LINUX。以下是问题:

0 投票
0 回答
251 浏览

eigenvalue - 使用 Arpack 计算特征值

我正在使用 Arpack 使用具有复杂移位的反向移位方法来计算问题的特征值 λ Mx = Ax。然后,我使用 znaupd e zneupd。一切似乎都很好。我写了一个函数,它采用 Arpack 计算的特征值和特征向量,并将它们放在原始问题中:残差的范数应该几乎为零或非常小。无论如何,我得到一个相当高的 10^-3 的错误!你知道问题出在哪里吗?

0 投票
1 回答
856 浏览

linux - 对“blacs_gridinfo_”的未定义引用

我在构建 LSDMap(局部缩放扩散图)时遇到未定义的参考错误。哪些库包含缺少的引用?

0 投票
1 回答
422 浏览

mpi - 如何在 PARPACK 中运行 MPI 示例

我能够编译,这是文件夹psndrv1.f中的一个示例。ARPACK/PARPACK/EXAMPLE/MPI但是,当我使用命令运行程序时mpirun -np 4 a.out,出现以下错误。

我正在使用岩石簇。请帮忙。