主题:arpack求部分特征值,用哪个函数?
终于会用 znsimp 了,高兴啊。感谢论坛上的朋友们。有个问题想问下:如果我想求一部分特征值,不是LM,SM等系列,比如特征值在-9到9之间,我只取-1到1之间的那些值,应该用哪个程序呢?
znsimp 给出的只是一个特征值。我要求的特征值很多,而且简并,对应一个特征值有很多特征向量那种。
另外,对于下面这一系列参数的设置:
Iparam(1) 指明在IRLM的隐式重开始部分使用的位移策略,如用户对IRLM不了解,可设置iparam(1)=1,
Iparam(3) 指明允许的IRLM迭代的最大次数
Iparam(7) 指明arpack算术模式
程序中都给出来了,为什么Iparam(5)没给出来呢?直接就用了
call zneupd (rvec, 'A', select, D, V, ldv, sigma,
& workev, bmat, n, which, nev, tol, resid, ncv,
& v, ldv, iparam, ipntr, workd, workl, lworkl,
& rwork, ierr)
c
c %-----------------------------------------------%
c | Eigenvalues are returned in the one |
c | dimensional array D and the corresponding |
c | eigenvectors are returned in the first |
c | NCONV (=IPARAM(5)) columns of the two |
c | dimensional array V if requested. Otherwise, |
c | an orthogonal basis for the invariant |
c | subspace corresponding to the eigenvalues in |
c | D is returned in V. |
c %-----------------------------------------------%
c
if ( ierr .ne. 0) then
c
c %------------------------------------%
c | Error condition: |
c | Check the documentation of ZNEUPD . |
c %------------------------------------%
c
print *, ' '
print *, ' Error with _neupd, info = ', ierr
print *, ' Check the documentation of _neupd. '
print *, ' '
c
else
c
nconv = iparam(5)
最后一个问题,期待您的回复啊!!
znsimp 给出的只是一个特征值。我要求的特征值很多,而且简并,对应一个特征值有很多特征向量那种。
另外,对于下面这一系列参数的设置:
Iparam(1) 指明在IRLM的隐式重开始部分使用的位移策略,如用户对IRLM不了解,可设置iparam(1)=1,
Iparam(3) 指明允许的IRLM迭代的最大次数
Iparam(7) 指明arpack算术模式
程序中都给出来了,为什么Iparam(5)没给出来呢?直接就用了
call zneupd (rvec, 'A', select, D, V, ldv, sigma,
& workev, bmat, n, which, nev, tol, resid, ncv,
& v, ldv, iparam, ipntr, workd, workl, lworkl,
& rwork, ierr)
c
c %-----------------------------------------------%
c | Eigenvalues are returned in the one |
c | dimensional array D and the corresponding |
c | eigenvectors are returned in the first |
c | NCONV (=IPARAM(5)) columns of the two |
c | dimensional array V if requested. Otherwise, |
c | an orthogonal basis for the invariant |
c | subspace corresponding to the eigenvalues in |
c | D is returned in V. |
c %-----------------------------------------------%
c
if ( ierr .ne. 0) then
c
c %------------------------------------%
c | Error condition: |
c | Check the documentation of ZNEUPD . |
c %------------------------------------%
c
print *, ' '
print *, ' Error with _neupd, info = ', ierr
print *, ' Check the documentation of _neupd. '
print *, ' '
c
else
c
nconv = iparam(5)
最后一个问题,期待您的回复啊!!