主题:没办法,又来求助了:语法没问题,为什么cmd界面上什么都没显示?
这是代码,用的编译器是ivf+vs2008
就是想编一个雅阁比矩阵方程迭代求解
能生成解决方案,但是cmd界面上什么都没有啊。。。
program number4
implicit none
integer,parameter ::n=4
integer i,j,k
real,parameter ::e=0.00001
real ::x(n),y(n),b(n),d(n),c(n)
real ::a(n,n)
real s,l,dmax,dmaxh
data b/1.38,-0.34,0.67,1.52/
data a/2.52,0.39,0.55,0.23,0.95,1.69,-1.25,-1.15,1.25,-0.45,1.96,-0.45,-0.85,0.49,-0.98,2.31/
do i=1,n
d(i)=0.
x(i)=0.
end do
dmax=1.
k=0
do while(dmax>=e)
do i=1,n
s=0.
y(i)=b(i)
do j=1,n
s=s+a(i,j)*x(j)
end do
l=s-a(i,i)*x(i)
y(i)=(y(i)-l)/a(i,i)
c(i)=y(i)-x(i)
if (abs(c(i))>d(i))then
d(i)=abs(c(i))
end if
end do !得到相邻迭代之间的差值和上次迭代的y
dmaxh=d(1)
do i=2,n
if(d(i)>=dmaxh)then
dmaxh=d(i)
end if
end do !得到迭代差值中的最大值dmax
dmax=dmaxh
do i=1,n
x(i)=y(i)
end do
k=k+1
end do
print*,k
end program
就是想编一个雅阁比矩阵方程迭代求解
能生成解决方案,但是cmd界面上什么都没有啊。。。
program number4
implicit none
integer,parameter ::n=4
integer i,j,k
real,parameter ::e=0.00001
real ::x(n),y(n),b(n),d(n),c(n)
real ::a(n,n)
real s,l,dmax,dmaxh
data b/1.38,-0.34,0.67,1.52/
data a/2.52,0.39,0.55,0.23,0.95,1.69,-1.25,-1.15,1.25,-0.45,1.96,-0.45,-0.85,0.49,-0.98,2.31/
do i=1,n
d(i)=0.
x(i)=0.
end do
dmax=1.
k=0
do while(dmax>=e)
do i=1,n
s=0.
y(i)=b(i)
do j=1,n
s=s+a(i,j)*x(j)
end do
l=s-a(i,i)*x(i)
y(i)=(y(i)-l)/a(i,i)
c(i)=y(i)-x(i)
if (abs(c(i))>d(i))then
d(i)=abs(c(i))
end if
end do !得到相邻迭代之间的差值和上次迭代的y
dmaxh=d(1)
do i=2,n
if(d(i)>=dmaxh)then
dmaxh=d(i)
end if
end do !得到迭代差值中的最大值dmax
dmax=dmaxh
do i=1,n
x(i)=y(i)
end do
k=k+1
end do
print*,k
end program