集邮用英语怎么说:求LU(列主元)算法ForTran源代码.

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 12:03:15
解代数方程(N元)

program LU
integer r,n,ir
real sum,m
real,allocatable::A(:,:),B(:)
read(*,*) n
allocate(A(n,n),B(n))
write(*,*)'输入A矩阵:'
read(*,*)((A(i,j),j=1,n),i=1,n)
write(*,*)'输入B矩阵:'
read(*,*)(B(i),i=1,n)
do r=1,n
do i=r,n
do k=1,r-1
A(i,r)=A(i,r)-A(i,k)*A(k,r)
end do
end do
m=ABS(A(r,r))
do i=r,n
if(A(i,r).gt.m)then
m=A(i,r)
ir=i
end if
end do
sum=0
do j=1,n
sum=A(r,j)
A(r,j)=A(ir,j)
A(ir,j)=sum
sum=B(r)
B(r)=B(ir)
B(ir)=sum
end do
do j=r+1,n
do k=1,r-1
A(r,j)=A(r,j)-A(r,k)*A(k,j)
end do
end do
do i=r+1,n
A(i,r)=A(i,r)/A(r,r)
end do
do k=1,r-1
B(r)=B(r)-A(r,k)*B(k)
end do
end do
do i=n,1,-1
do k=i+1,n
B(i)=B(i)-A(i,k)*B(k)
end do
B(i)=B(i)/A(i,i)
end do
write(*,*)'输出结果:'
write(*,100)(B(i),i=1,n)
100 format(1X,3F10.6)
end program