主题:重复,迭代,循环?
变量定义:
integer:: m=4,n=3
complex t0(2*m,2*m),t1(2*m,2*m),tt(2*m,2*m),t2(2*m,2*m),tt_(2*m,2*m),t3(2*m,2*m),t4(2*m,2*m) ,t(2*m,2*m),t5(2*m,2*m)
complex energy1(2*m,2*m),identity(2*m,2*m) !w用energy1表示
complex h0(2*m,2*m),h2(2*m,2*m),h1(2*m,2*m) !都是已知矩阵,且h0表示H00,h1表示(H01+),h2表示H01,tt表示ti,tt_表示ti_。
这样循环看下好不好:
t0=energy1-h0
t0=.i.t0
t0=t0.x.h2 !求t0,初始值
tt=t0 !第一个t0值
t1=energy1-h0
t1=.i.t1
t1=t1.x.h1 !求t0_,初始值
t2=t1 !将第一个t1赋给t2保存
do i=2,u !循环,计算第i个t0值
t4=-t1.x.t0
t5=-t0.x.t1
t4=identity+t4+t5
t4=.i.t4
t0=t4.x.(t0**2) !ti
t2=t2.x.t0
tt=tt+t2
t1=t4.x.(t1**2) !t1_
! if(all(t1<eps*fi) .and. all(t0<eps*fi)) exit
t2=t2.x.t1
end do
t0=energy1-h0
t0=.i.t0
t0=t0.x.h2 !求t0,初始值
t2=t0
t1=energy1-h0
t1=.i.t1
t1=t1.x.h1 !求t0_,初始值
tt_=t1
do i=2,u
t3=-t1.x.t0
t5=-t0.x.t1
t3=identity+t5+t3
t3=.i.t3
t1=t3.x.(t1**2) !ti_
t2=t2.x.t1
tt_=tt_+t2
t0=t3.x.(t0**2) !ti
! if(all(t1<eps*fi) .and. all(t0<eps*fi)) exit
t2=t2.x.t0
end do
integer:: m=4,n=3
complex t0(2*m,2*m),t1(2*m,2*m),tt(2*m,2*m),t2(2*m,2*m),tt_(2*m,2*m),t3(2*m,2*m),t4(2*m,2*m) ,t(2*m,2*m),t5(2*m,2*m)
complex energy1(2*m,2*m),identity(2*m,2*m) !w用energy1表示
complex h0(2*m,2*m),h2(2*m,2*m),h1(2*m,2*m) !都是已知矩阵,且h0表示H00,h1表示(H01+),h2表示H01,tt表示ti,tt_表示ti_。
这样循环看下好不好:
t0=energy1-h0
t0=.i.t0
t0=t0.x.h2 !求t0,初始值
tt=t0 !第一个t0值
t1=energy1-h0
t1=.i.t1
t1=t1.x.h1 !求t0_,初始值
t2=t1 !将第一个t1赋给t2保存
do i=2,u !循环,计算第i个t0值
t4=-t1.x.t0
t5=-t0.x.t1
t4=identity+t4+t5
t4=.i.t4
t0=t4.x.(t0**2) !ti
t2=t2.x.t0
tt=tt+t2
t1=t4.x.(t1**2) !t1_
! if(all(t1<eps*fi) .and. all(t0<eps*fi)) exit
t2=t2.x.t1
end do
t0=energy1-h0
t0=.i.t0
t0=t0.x.h2 !求t0,初始值
t2=t0
t1=energy1-h0
t1=.i.t1
t1=t1.x.h1 !求t0_,初始值
tt_=t1
do i=2,u
t3=-t1.x.t0
t5=-t0.x.t1
t3=identity+t5+t3
t3=.i.t3
t1=t3.x.(t1**2) !ti_
t2=t2.x.t1
tt_=tt_+t2
t0=t3.x.(t0**2) !ti
! if(all(t1<eps*fi) .and. all(t0<eps*fi)) exit
t2=t2.x.t0
end do