t*g
3 楼
是呀,没错。大侠给指点指点吧?
S*y
10 楼
你如果用Fortran, 试试这个:
SUBROUTINE ZGEINV (N,A)
IMPLICIT NONE
INTEGER :: N
COMPLEX*16 :: A(N,N)
INTEGER :: IPIV(N)
INTEGER :: INFO, LWORK
COMPLEX*16, ALLOCATABLE :: WORK(:)
LWORK=N*ILAENV(1,'ZGETRI',' ',N,-1,-1,-1)
ALLOCATE(WORK(LWORK))
CALL ZGETRF(N,N,A,N,IPIV,INFO)
CALL ZGETRI(N,A,N,IPIV,WORK,LWORK,INFO)
DEALLOCATE(WORK)
END SUBROUTINE ZGEINV
这个是算复数矩阵的,如果你是实数矩阵,
把complex*16都换成real*8, ZGE都换成DGE.
当然这个是算普通矩阵的,对于对称正定矩阵,
可能还有更好的方法。
最后,要用LAPACK, 一定要用optimised BLAS,
否则对大矩阵,慢上个3,4倍都很正常。
【在 t*********g 的大作中提到】
: Thanks a lot. 我找找看!
SUBROUTINE ZGEINV (N,A)
IMPLICIT NONE
INTEGER :: N
COMPLEX*16 :: A(N,N)
INTEGER :: IPIV(N)
INTEGER :: INFO, LWORK
COMPLEX*16, ALLOCATABLE :: WORK(:)
LWORK=N*ILAENV(1,'ZGETRI',' ',N,-1,-1,-1)
ALLOCATE(WORK(LWORK))
CALL ZGETRF(N,N,A,N,IPIV,INFO)
CALL ZGETRI(N,A,N,IPIV,WORK,LWORK,INFO)
DEALLOCATE(WORK)
END SUBROUTINE ZGEINV
这个是算复数矩阵的,如果你是实数矩阵,
把complex*16都换成real*8, ZGE都换成DGE.
当然这个是算普通矩阵的,对于对称正定矩阵,
可能还有更好的方法。
最后,要用LAPACK, 一定要用optimised BLAS,
否则对大矩阵,慢上个3,4倍都很正常。
【在 t*********g 的大作中提到】
: Thanks a lot. 我找找看!
相关阅读
let me ask a question againPortland fortran problem, need help!大家来谈谈科学计算的工作前景如何直接用NR的源程序需要注意什么吗?[linux cluster]高手指点!urgent question!有人在 Windows 2K + cygwin 下配置 GSL 成功吗?STrange problem in Fortran programming关于VF/VC中cannot save file...in use..的问题[转载] 有人能告诉怎样在simulation中求green-kuboHi, guys. Re: molecular simulation随机生成一个子集[转载] Is the "bench" in Matlab reliable请问: 有办法看出发信人的IP吗?limit is lifted up to 100什么时候盖了?what's Bonferroni correction of p-value[转贴]准备一次性接受一批俱乐部升级为公共版APS interview Wen ho Lee!