回 帖 发 新 帖 刷新版面

主题:请高手指点怎么用lapack库计算本征值啊?

我的程序如下:请高手指点一下怎么改就可以用lapack库计算本征值和本征矢了啊?
program caculation  
 

implicit none

integer i,q, k,r,p,j,a,b
real t,u
integer, parameter :: n=10
integer,parameter :: m=6
real ::     H(4*n*m,4*n*m)
real ::     S(4*n*m,4*n*m)
  t=-2.79
  u=0.3
do a=1,4*m*n
    do b=1,4*m*n
    H(b,a)=0
    end do
end do

do i=1,4*n*m-1
      H(i,i+1)=t
      H(i+1,i)=t
      S(i,i+1)=u
      S(i+1,i)=u
end do

do q=1,m-1
      H(4*q*n,4*q*n+1)=0
      H(4*q*n+1,4*q*n)=0
      S(4*q*n,4*q*n+1)=0
      S(4*q*n+1,4*q*n)=0
end do

do r=0,m-2
   do k=0,n-1
        H(4*r*n+4*k+1,4*n*(r+1)+4*k+2)=t
        H(4*r*n+4*k+2,4*n*(r+1)+4*k+1)=t
        S(4*r*n+4*k+1,4*n*(r+1)+4*k+2)=u
        S(4*r*n+4*k+2,4*n*(r+1)+4*k+1)=u
   end do
 end do
do r=0,m-2
   do p=1,n
       H(4*n*r+4*p,4*n*(r+1)+4*p-1)=t
       H(4*n*(r+1)+4*p-1,4*n*r+4*p)=t
       S(4*n*r+4*p,4*n*(r+1)+4*p-1)=u
       S(4*n*(r+1)+4*p-1,4*n*r+4*p)=u
   end do
end do

end

回复列表 (共2个回复)

沙发

调用lapack库函数就行了,我一般用的是zheev

板凳

根据你的矩阵特点找相关的子程序就行,程序里有说明。

我来回复

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