program main
real A(4,5),B(1,5)
do u=1,4
do v=1,5
write(*,*)"请输入增广矩阵",u,",",v,"位置上的数字"
read(*,*) A(u,v)
enddo
enddo
B=0
do i=1,3
if(A(i,i)==0)then
do x=i+1,4
if(A(x,i)/=0)then
B(1,:)=A(i,:)
A(i,:)=A(x,:)
A(x,:)=B(1,:)!如果执行到某一行出现0,那么交换两行。
exit
endif
enddo
endif
do j=(i+1),4
A(j,:)=A(j,:)-(A(j,i)/A(i,i))*A(i,:)
enddo
enddo
!至此得到三角化矩阵
do k=4,2,-1
do l=k-1,1,-1
A(l,:)=A(l,:)-(A(l,k)/A(k,k))*A(k,:)
enddo
enddo
!完全化为我们想要的东西
do n=1,4
c=A(n,5)/A(n,n)
write(*,*) c
enddo
!输出结果
end
Fortran高斯消元法解满秩线性方程组(自留档)
于 2023-04-07 11:33:07 首次发布