问题描述:
谁能把每句fortran语言都给我翻译一下
integer row,i,j,k,n
real s
real,dimension(:,:),allocatable::a,l,u
real,dimension(:),allocatable::b,x,y
read*,row
allocate(a(row,row))
read*,((a(i,j),j=1,row),i=1,row)
allocate(b(row))
read*,(b(i),i=1,row)
allocate(y(row))
allocate(x(row))
do k=1,row-1
do i=k+1,row
a(i,k)=a(i,k)/a(k,k)
do j=k+1,row
a(i,j)=a(i,j)-a(i,k)*a(k,j)
end do
end do
end do
allocate(l(row,row))
do i=1,row
do j=1,row
if(i>j)then
l(i,j)=a(i,j)
elseif(i==j)then
l(i,j)=1
else if(ij)then
u(i,j)=0
end if
end do
end do
print*,'a=',((a(i,j),j=1,row),i=1,row)
print*,'l=',((l(i,j),j=1,row),i=1,row)
print*,'u=',((u(i,j),j=1,row),I=1,row)
n=10
do while(n>0)
y(1)=b(1)/l(1,1)
do i=2,row
sum=0
do j=1,i-1
sum=sum+l(i,j)*y(j)
end do
y(i)=(b(i)-sum)/l(i,i)
end do
print*,(y(i),i=1,row)
x(row)=y(row)/u(row,row)
do i=row-1,1,-1
sum1=o
do j=i+1,row
sum1=sum1+u(i,j)*x(j)
end do
x(i)=(y(i)-sum1)/u(i,i)
end do
print*,(x(i),i=1,row)
s=abs(x(1))
do j=2,row
if(abs(x(j))>s)then
s=abs(x(j))
end if
end do
do i=1,row
b(i)=x(i)/s
end do
n=n-1
end do
end
INTEGER ROW,COL,I,J,N
REAL,DIMENSION(:,:),ALLOCATABLE::B
REAL,DIMENSION(:),ALLOCATABLE::X,G
READ*,row,col
allocate(b(row,col))
read*,((b(i,j),j=1,col),i=1,row)
allocate(x(col),g(col))
read*,(x(i),i=1,col)
read*,(g(i),i=1,col)
read*,n
do while(n.ne.0)
do i=1,col
sum=0
do j=1,col
sum=sum+b(i,j)*x(j)
end do
x(i)=sum+g(i)
end do
n=n-1
print*,(x(i),i=1,col)
end do
end
integer row,i,j,k,n
real s
real,dimension(:,:),allocatable::a,l,u
real,dimension(:),allocatable::b,x,y
read*,row
allocate(a(row,row))
read*,((a(i,j),j=1,row),i=1,row)
allocate(b(row))
read*,(b(i),i=1,row)
allocate(y(row))
allocate(x(row))
do k=1,row-1
do i=k+1,row
a(i,k)=a(i,k)/a(k,k)
do j=k+1,row
a(i,j)=a(i,j)-a(i,k)*a(k,j)
end do
end do
end do
allocate(l(row,row))
do i=1,row
do j=1,row
if(i>j)then
l(i,j)=a(i,j)
elseif(i==j)then
l(i,j)=1
else if(ij)then
u(i,j)=0
end if
end do
end do
print*,'a=',((a(i,j),j=1,row),i=1,row)
print*,'l=',((l(i,j),j=1,row),i=1,row)
print*,'u=',((u(i,j),j=1,row),I=1,row)
n=10
do while(n>0)
y(1)=b(1)/l(1,1)
do i=2,row
sum=0
do j=1,i-1
sum=sum+l(i,j)*y(j)
end do
y(i)=(b(i)-sum)/l(i,i)
end do
print*,(y(i),i=1,row)
x(row)=y(row)/u(row,row)
do i=row-1,1,-1
sum1=o
do j=i+1,row
sum1=sum1+u(i,j)*x(j)
end do
x(i)=(y(i)-sum1)/u(i,i)
end do
print*,(x(i),i=1,row)
s=abs(x(1))
do j=2,row
if(abs(x(j))>s)then
s=abs(x(j))
end if
end do
do i=1,row
b(i)=x(i)/s
end do
n=n-1
end do
end
INTEGER ROW,COL,I,J,N
REAL,DIMENSION(:,:),ALLOCATABLE::B
REAL,DIMENSION(:),ALLOCATABLE::X,G
READ*,row,col
allocate(b(row,col))
read*,((b(i,j),j=1,col),i=1,row)
allocate(x(col),g(col))
read*,(x(i),i=1,col)
read*,(g(i),i=1,col)
read*,n
do while(n.ne.0)
do i=1,col
sum=0
do j=1,col
sum=sum+b(i,j)*x(j)
end do
x(i)=sum+g(i)
end do
n=n-1
print*,(x(i),i=1,col)
end do
end
问题解答:
我来补答展开全文阅读