主题:求逆矩阵
dengzx
[专家分:0] 发布于 2008-06-30 21:15:00
fortran中怎样求任意一个矩阵的逆矩阵?急!
回复列表 (共1个回复)
沙发
dengzx [专家分:0] 发布于 2008-07-11 21:29:00
用可调数组写的子程序,主程序自己写,很容易的 !
SUBROUTINE ANI(A,A1,A2,N)
REAL A(N,N),A1(N,2*N),A2(N,N)
!增广矩阵A
DO I=1,N
DO J=1,2*N
IF(J<=N)THEN
A1(I,J)=A(I,J)
ELSEIF(J==N+I)THEN
A1(I,J)=1.0
ELSE
A1(I,J)=0.0
ENDIF
ENDDO
ENDDO
!进行行行变换以求逆矩阵
DO I=1,N
!对第i行进行归一化
DO J=1,2*N
DO K=I+1,N
A1(I,J)=A1(I,J)+A1(K,J)
ENDDO
ENDDO
T=A1(I,I)
DO J=I,2*N
A1(I,J)=A1(I,J)/T
ENDDO
!使第i列只有一个1,其他均为0
DO K=1,N
IF(K/=I)THEN
T=A1(K,I)
DO L=I,2*N
A1(K,L)=A1(K,L)-A1(I,L)*T
ENDDO
ENDIF
ENDDO
ENDDO
!将A1后半部分存入A2
DO I=1,N
DO J=1,N
A2(I,J)=A1(I,J+N)
ENDDO
ENDDO
END
我来回复