主题:紧急求助,为啥结果不同呢
请看下面的程序片段:
integer,parameter :: Max=1000
type cpx
complex,dimension(m,m) :: a
complex,dimension(m,m) :: b
end type cpx
type(cpx),dimension(Max) :: t
integer::m=8
real::s=0.002,e=1.4
complex::fi=(0.0,1.0)
real h0(m,m),h1(m,m),h2(m,m) !三个矩阵已知
complex energy1(m,m)
energy1=0.0
do i=1,m
energy1(i,i)=e+s*fi
end do
t0=energy1-h0 !
t0=.i.t0
t(1).a=t0.x.h2 !求t0,初始值,t(1).a=(.i.(energy1-h0)).x.h2
tt=t(1).a
t(1).b=t0.x.h1 !求t0_,初始值
t2=t(1).b
do i=2,2
t4=-(t(i-1).a).x.(t(i-1).b)+(t(i-1).b).x.(t(i-1).a)
t4=identity+t4
t5=identity-(t(i-1).a).x.(t(i-1).b)+(t(i-1).b).x.(t(i-1).a)
open(1,file='ddd11a.txt')
write(1,*) t4
close(1)
open(1,file='ddd11b.txt')
write(1,*) t5
close(1)
end do
问1。t(1).a=(.i.(energy1-h0)).x.h2 用下面的算法行不行:
t0=energy1-h0
t0=.i.t0
t(1).a=t0.x.h2
问2。t4和t5得到的值应该是一样的吧?但是为什么我将它们输出之后发现两个矩阵不同呢?奇怪啊
integer,parameter :: Max=1000
type cpx
complex,dimension(m,m) :: a
complex,dimension(m,m) :: b
end type cpx
type(cpx),dimension(Max) :: t
integer::m=8
real::s=0.002,e=1.4
complex::fi=(0.0,1.0)
real h0(m,m),h1(m,m),h2(m,m) !三个矩阵已知
complex energy1(m,m)
energy1=0.0
do i=1,m
energy1(i,i)=e+s*fi
end do
t0=energy1-h0 !
t0=.i.t0
t(1).a=t0.x.h2 !求t0,初始值,t(1).a=(.i.(energy1-h0)).x.h2
tt=t(1).a
t(1).b=t0.x.h1 !求t0_,初始值
t2=t(1).b
do i=2,2
t4=-(t(i-1).a).x.(t(i-1).b)+(t(i-1).b).x.(t(i-1).a)
t4=identity+t4
t5=identity-(t(i-1).a).x.(t(i-1).b)+(t(i-1).b).x.(t(i-1).a)
open(1,file='ddd11a.txt')
write(1,*) t4
close(1)
open(1,file='ddd11b.txt')
write(1,*) t5
close(1)
end do
问1。t(1).a=(.i.(energy1-h0)).x.h2 用下面的算法行不行:
t0=energy1-h0
t0=.i.t0
t(1).a=t0.x.h2
问2。t4和t5得到的值应该是一样的吧?但是为什么我将它们输出之后发现两个矩阵不同呢?奇怪啊