回 帖 发 新 帖 刷新版面

主题:lapack求厄米矩阵特征值和特征向量用哪个函数

为了求厄米矩阵特征值和特征向量,我是费尽脑筋啊!刚开始用imsl数据库,但是服务器上没装imsl,转而用acpark,现在跑来再找lapack。。悲催!!

该用哪个函数呢?lapack下的!guide也翻了但是没找到啊!!

回复列表 (共3个回复)

沙发

悲哀啊,查看了lapack文档,发现很多函数都是解上(下)三角矩阵的复数厄米矩阵的特征值和特征向量啊。就没有解个普通的厄米矩阵的吗

板凳

CHPEV(l)         LAPACK driver routine (version 1.1)         CHPEV(l)

NAME
  CHPEV    - compute all the eigenvalues and, optionally, eigenvectors of a com-
  plex Hermitian matrix    in packed storage

SYNOPSIS

  SUBROUTINE CHPEV( JOBZ, UPLO,    N, AP, W, Z, LDZ, WORK,    RWORK, INFO )

      CHARACTER        JOBZ, UPLO

      INTEGER        INFO, LDZ, N

      REAL        RWORK( * ),    W( * )

      COMPLEX        AP(    * ), WORK( * ),    Z( LDZ,    * )

PURPOSE
  CHPEV    computes all the eigenvalues and, optionally, eigenvectors of a    com-
  plex Hermitian matrix    in packed storage.

ARGUMENTS

  JOBZ      (input) CHARACTER*1
      = 'N':  Compute eigenvalues only;
      = 'V':  Compute eigenvalues and eigenvectors.

  UPLO      (input) CHARACTER*1
      = 'U':  Upper    triangle of A is stored;
      = 'L':  Lower    triangle of A is stored.

  N      (input) INTEGER
      The order of the matrix A.  N    >= 0.

  AP      (input/output) COMPLEX array,    dimension (N*(N+1)/2)
      On entry, the    upper or lower triangle    of the Hermitian matrix    A,
      packed columnwise in a linear    array.    The j-th column    of A is
      stored in the    array AP as follows: if    UPLO = 'U', AP(i + (j-1)*j/2)
      = A(i,j) for 1<=i<=j;    if UPLO    = 'L', AP(i + (j-1)*(2*n-j)/2) =
      A(i,j) for j<=i<=n.

      On exit, AP is overwritten by    values generated during    the reduction
      to tridiagonal form.    If UPLO    = 'U', the diagonal and    first super-
      diagonal of the tridiagonal matrix T overwrite the corresponding
      elements of A, and if    UPLO = 'L', the    diagonal and first subdiago-
      nal of T overwrite the corresponding elements    of A.

  W      (output) REAL    array, dimension (N)
      If INFO = 0, the eigenvalues in ascending order.

  Z      (output) COMPLEX array, dimension (LDZ, N)
      If JOBZ = 'V', then if INFO =    0, Z contains the orthonormal eigen-
      vectors of the matrix    A, with    the i-th column    of Z holding the
      eigenvector associated with W(i).  If    JOBZ = 'N', then Z is not
      referenced.

  LDZ      (input) INTEGER
      The leading dimension    of the array Z.     LDZ >=    1, and if JOBZ = 'V',
      LDZ >= max(1,N).

  WORK      (workspace) COMPLEX array, dimension (max(1, 2*N-1))

  RWORK      (workspace) REAL array, dimension (max(1, 3*N-2))

  INFO      (output) INTEGER
      = 0:    successful exit.
      < 0:    if INFO    = -i, the i-th argument    had an illegal value.
      > 0:    if INFO    = i, the algorithm failed to converge; i off-diagonal
      elements of an intermediate tridiagonal form did not converge    to
      zero.

3 楼

还是看看mkl文档吧, 或者查那本很老的lapack手册. 个人觉得mkl的文档分类很详细,每个函数描述也非常详细虽然大部分都是copy lapack上面的函数描述.

我来回复

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