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 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: 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 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: Thanks a lot. 我找找看!
相关阅读
恭喜升级请问: 有办法看出发信人的IP吗?Speed comparison of various number crunching packages[转载] [通知]FEA已经成为公共版 OpenMP入门级问题A question about IFA300原来Maple的作者是我们学校的教授[转载] any procedures to compute and show the permutations?Re: [转载] any procedures to compute and show the permutations?Re: pls help a list of optimization methods请问谁用过NURBS++这个函数库?请教:如何用least square approach解超定方程组新年好!如何定义一个有效位数300为的浮点?Is there any documentation available for Intel Fortran 90 under linux?谁给推荐一本介绍auto软件使用的书,最好是英文的。Run a Mathematica script(notebook?) in backgroundHermite interpolationThe Future of Scientific Computingurgent question!