回 帖 发 新 帖 刷新版面

主题:[讨论]关于evchf求复厄米矩阵的特征值和特征向量

evchf可以用来求复数厄米矩阵的特征值和特征向量,书中也给出了一个例题说明。我在用这个例题的时候出现一个情况,说error LNK2001: unresolved external symbol _EVCHF@24,我用的是带imsl数据库的fortran6.6,难道是我库里没有这些函数?


!   declare variables
  integer lda,ldevec,n
  parameter(n=3,lda=n,ldevec=n)
  
  integer nout
  real epihf,eval(n),pi
  complex a(lda,n),evec(ldevec,n)
!  external evchf
  external epihf,evchf,umach,wrcrn,wrrrn

  !    set values of a
  data a/(1.0,0.0),(1.0,7.0),(0.0,1.0),(1.0,-7.0),(5.0,0.0),(10.0,3.0),(0.0,-1.0),(10.0,-3.0),(-2.0,0.0)/

 ! find 特征值和特征向量
  call evchf(n,a,lda,eval,evec,ldevec)

  !compute performance  index
  pi=epihf(n,n,a,lda,eval,evec,ldevec)

  write(*,*) eval,evec
  !print result
  call umach(2,nout)
  call wrrrn('eval',1,n,eval,1,0)
  call wrcrn('evec',n,n,evec,ldevec,0)
  write(nout,'(/,a,f6.3)') 'performance  index=', pi
  end[em1][em21][em21][em21][em21][em21][em21][em21][em21][em21][em22][em22][em22][em22][em22][em22][em22][em18][em18][em18][em18][em18]

我查了一下EVCHF的说明,不知是否有用。

Computes all of the eigenvalues and eigenvectors of a complex Hermitian matrix.

Required Arguments
A — Complex Hermitian matrix of order N.   (Input) 
Only the upper triangle is used.

EVAL — Real vector of length N containing the eigenvalues of A in decreasing order of magnitude.   (Output)

EVEC — Complex matrix of order N.   (Output) 
The J-th eigenvector, corresponding to EVAL(J), is stored in the J-th column. Each vector is normalized to have Euclidean length equal to the value one.

Optional Arguments 
N — Order of the matrix A.   (Input)
Default: N = size (A,2).

LDA — Leading dimension of A exactly as specified in the dimension statement in the calling program.   (Input)
Default: LDA = size (A,1).

LDEVEC — Leading dimension of EVEC exactly as specified in the dimension statement in the calling program.   (Input)
Default: LDEVEC = size (EVEC,1).

FORTRAN 90 Interface
Generic:          CALL EVCHF (A, EVAL, EVEC [,…])

Specific:         The specific interface names are S_EVCHF and D_EVCHF.

FORTRAN 77 Interface
Single:            CALL EVCHF (N, A, LDA, EVAL, EVEC, LDEVEC)

Double:          The double precision name is DEVCHF.

回复列表 (共15个回复)

11 楼

vni 就是IMSL的官方网站, 不知道楼主知道了没有.

12 楼

我知道了,但是我这里进不去啊,哎。。我换台机器试下吧

13 楼

可以了,谢谢啦

14 楼

好好研究研究

15 楼

[quote]给您推荐一个网站vni
http://www.vni.com/products/imsl/documentation/index.php#fort
UMACH WRRRN WRCRN三个函数在
http://www.vni.com/products/imsl/documentation/fort06/math/NetHelp/default.htm?turl=umach.htm
http://www.vni.com/products/imsl/documentation/fort06/math/NetHelp/default.htm?turl=wrrrn.htm
http://www.vni.com/products/imsl/documentation/fort06/math/NetHelp/default.htm?turl=wrcrn.htm

好好利用vni可以解决imsl使用过程中许多问题。


[quote]另外请问,这些函数什么用呢?尤其是pi
CALL UMACH (2, NOUT)

      CALL WRRRN ('EVAL', EVAL, 1, N, 1)

      CALL WRCRN ('EVEC', EVEC)

      WRITE (NOUT,'(/,A,F6.3)') ' Performance index = ', PI
[/quote]
[/quote]你好,我把你给我的网址输进去,没找到,可以给我传一份那三个文件吗?
我邮箱 tianhy2010@163.com或者QQ254575492

我来回复

您尚未登录,请登录后再回复。点此登录或注册