1、 本文末给出 Gauss-Jordan 消去法的 Fortran90 源程序。!/*! 程序:Gauss_Jordan 消去法! 过程:Gauss_Jordan(aa,b,n,sgn)! 作用:aa 为方阵,b 为 aa 的逆,n 为 aa 的阶! sgn 为标识符,1 表示求逆成功,0 表示求逆失败! 调用格式为:call Gauss_Jordan(aa,b,n,sgn)!*/subroutine Gauss_Jordan(aa,b,n,sgn)implicit noneinteger(4): n,sgnreal(8): aa(n,n),b(n,n)integer(4): i,j,kreal
2、(8),allocatable: a(:,:)real(8): tallocate(a(n,n)a=aa ! a 代替 aa 进行运算sgn=1! 初始化 b 为单位阵do i=1,ndo j=1,nif(i=j) thenb(i,j)=1elseb(i,j)=0end ifend doend do! Gauss_Jordan 消去法过程do k=1,nif(a(k,k)=0) thensgn=0;EXITend if! 化第 k 行使得 a(k,k)为 1t=1.0d0/a(k,k)do j=k,na(k,j)=a(k,j)*tend dodo j=1,nb(k,j)=b(k,j)*tend do ! 完成第 k 列的计算do i=1,nif(i/=k)thent=a(i,k)do j=k,na(i,j)=a(i,j)-a(k,j)*tend dodo j=1,nb(i,j)=b(i,j)-b(k,j)*tend doend ifend doend doend subroutine Gauss_Jordan