- 积分
- 9
- 注册时间
- 2004-1-3
- 仿真币
-
- 最后登录
- 1970-1-1
|
我用IMSL库的子程序DLINRG来求矩阵A的逆(放在AINV中),然后演算结果是否正确,发现:
AINV*A=I(单位阵),但A*AINV≠I
不知是怎么回事?计算过程中并没有警告出现。
程序如下:
REAL*8 A(80,80),AINV(80,80),SUM
OPEN(2,FILE='G1.TXT')
N=80
READ(2,*) ((A(I,J),I=1,N),J=1,N)
CALL DLINRG (N, A, N, AINV, N)
AINV=MATMUL(A,AINV)
SUM=0.0d0
DO I=1,N
SUM=SUM+DABS(A(I,I)-1.0d0)
ENDDO
WRITE(*,*) "SUM |A(i,i)-1| =",SUM
SUM=0.0d0
DO 2,I=1,N
DO 2,J=1,N
IF(I.EQ.J) GOTO 2
SUM=SUM+DABS(A(I,J))
2 CONTINUE
WRITE(*,*) "SUM |A(i,j)| =",SUM
CLOSE(2)
END
运行结果:
SUM |A(i,i)-1| = 1.973305759124577E-003
SUM |A(i,j)| = 2562.604705789780000
Press any key to continue
SUM |A(i,j)| 不为零。输入文件G1.TXT |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|