www.pudn.com > Fortran.zip > AGMIV0.FOR, change:1994-06-11,size:923b
DIMENSION A(4,3),U(4,4),V(3,3),B(4),C(3,4),X(3)
DIMENSION S(5),E(5),WORK(5)
DOUBLE PRECISION A,U,V,B,C,X,S,E,WORK
DATA A/1.0,2.0,1.0,-1.0,1.0,1.0,-1.0,2.0,-1.0,2*0.0,1.0/
DATA B/2.0,-3.0,1.0,4.0/
M=4
N=3
KA=5
EPS=0.000001
WRITE(*,*)
WRITE(*,10)
10 FORMAT(1X,'MAT A IS:')
WRITE(*,200) ((A(I,J),J=1,N),I=1,M)
CALL AGMIV(M,N,A,B,C,X,L,EPS,U,V,KA,S,E,WORK)
IF (L.EQ.0) THEN
WRITE(*,*)
WRITE(*,50)
50 FORMAT(1X,'MAT A+ IS:')
WRITE(*,60) ((C(I,J),J=1,M),I=1,N)
60 FORMAT(1X,4D13.6)
WRITE(*,*)
WRITE(*,*) 'THE SOLUTION TO THE LEAST SQUARES PROBLEM IS:'
WRITE(*,100) (I,X(I),I=1,N)
100 FORMAT(1X,'X(',I2,')=',D15.6)
END IF
WRITE(*,*)
CALL BGINV(N,M,C,A,L,EPS,U,V,KA,S,E,WORK)
IF (L.EQ.0) THEN
WRITE(*,70)
70 FORMAT(1X,'MAT A++ IS:')
WRITE(*,200) ((A(I,J),J=1,N),I=1,M)
200 FORMAT(1X,3D15.6)
WRITE(*,*)
END IF
END