- 积分
- 38420
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-6-20
- 最后登录
- 1970-1-1
成长值: 0
|
发表于 2013-3-29 09:47:21
|
显示全部楼层
cuixindong 发表于 2013-3-29 09:39
版主,您有关于四阶龙格库塔法的材料吗?能发一下吗?
我去···帅哥,程序都是针对各人的问题的···
这是朋友写针对ta的薛定谔方程写的,你肯定用不了···但是可以让你了解一下这个方法啥意思···
do g=1,mm
sum=0
aaa=0
do i=1,N
s(g,i)=u1(i)*conjg(u1(i+1))-conjg(u1(i))*u1(i+1)
sum=sum+s(g,i)
aaa=aaa+abs(u1(i))
end do
do i=1,N
if (i==ll) then
u2(i)=h/4.0*c*((u1(i-1)+u1(i+1))/2.0-(e+gm*(u1(i))**r*(conjg(u1(i)))**r)*u1(i))+u1(i)
else
u2(i)=h/4.0*c*((u1(i-1)+u1(i+1))/2.0-(gm*(u1(i))**r*(conjg(u1(i)))**r)*u1(i))+u1(i)
end if
end do
u2(0)=u2(N)
u2(N+1)=u2(1)
do i=1,N
if (i==ll) then
u3(i)=h/3.0*c*((u2(i-1)+u2(i+1))/2.0-(e+gm*(u2(i))**r*(conjg(u2(i)))**r)*u2(i))+u1(i)
else
u3(i)=h/3.0*c*((u2(i-1)+u2(i+1))/2.0-(gm*(u2(i))**r*(conjg(u2(i)))**r)*u2(i))+u1(i)
end if
end do
u3(0)=u3(N)
u3(N+1)=u3(1)
do i=1,N
if (i==ll) then
u4(i)=h/2.0*c*((u3(i-1)+u3(i+1))/2.0-(e+gm*(u3(i))**r*(conjg(u3(i)))**r)*u3(i))+u1(i)
else
u4(i)=h/2.0*c*((u3(i-1)+u3(i+1))/2.0-(gm*(u3(i))**r*(conjg(u3(i)))**r)*u3(i))+u1(i)
end if
end do
u4(0)=u4(N)
u4(N+1)=u4(1)
do i=1,N
if (i==ll) then
u5(i)=h*c*((u4(i-1)+u4(i+1))/2.0-(e+gm*(u4(i))**r*(conjg(u4(i)))**r)*u4(i))+u1(i)
else
u5(i)=h*c*((u4(i-1)+u4(i+1))/2.0-(gm*(u4(i))**r*(conjg(u4(i)))**r)*u4(i))+u1(i)
end if
end do
u5(0)=u5(N)
u5(N+1)=u5(1)
do i=0,N+1
u1(i)=u5(i)
end do
enddo
ps:改程序不针对隐士差分格式,仅回答问题···· |
|