刘飞飞英语视频百度云:谁有 高斯消去法 解方程组的fortran程序?

来源:百度文库 编辑:神马品牌网 时间:2024/05/02 01:27:22

implicit none
integer::i,j,k,imax,t
real::max,n
real,dimension(:,:),allocatable::a,m
real,dimension(:),allocatable::x
print*,'请输入线性方程组的元数n: '
read*,t
allocate(a(t,t+1),m(t,t+1),x(t))
print*,'请依次按行输入线性方程组的增广矩阵a: '
read*,((a(i,j),j=1,t+1),i=1,t)
do 10 k =1,t-1
max=abs(a(k,k))
imax=k
do 20 i=k+1,t+1
if (abs(a(i,k))>max) then
max=abs(a(i,k))
imax=i
end if
20 continue
do 30 j=k,t+1
m(k,j)=a(k,j)
a(k,j)=a(imax,j)
a(imax,j)=m(k,j)
30 continue
do 40 i=k+1,t
m(i,k)=a(i,k)/a(k,k)
do 50 j=k+1,t+1
a(i,j)=a(i,j)-m(i,k)*a(k,j)
50 continue
40 continue
10continue
x(t)=a(t,t+1)/a(t,t)
do 60 k=t-1,1,-1
n=0
do 70 j=t,k+1,-1
n=n+a(k,j)*x(j)
70 continue
x(k)=(a(k,t+1)-n)/a(k,k)
60continue
print*,'线性方程组的解为: '
do 80 i =1,t
print*,x(i)
80continue
end