|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
方程为du/dt+2du/dx=0
初始条件为 u(x,0)=1,x=1,2; 其余u(x,0)=0
alfa=2
dx=1
dt=0.5
!定义初始条件
do i=-20,99
u(i,0)=0
end do
u(1,0)=1
u(2,0)=1
Do n=0,7
do i=-10,80
u(i,n+1)=u(i,n)-alfa*dt/dx/2*(u(i+1,n)-u(i-1,n))+
& 1/2*(u(i+1,n)-2*u(i,n)+u(i-1,n))
end do
end do
write(1,*) "************ CFL=1 ************************"
do n=0,7,2
do i= -5,70
write(*,*) "t=",n*dt
write(1,100) n*dt,i,u(i,0)
end do
end do
! CFL(alfa*dt/dx)=1/2, Lax 格式
Alfa=2
Dx=1
Dt=0.25
write(1,*) "*******************CFL=1/2***********************"
! 定义初始条件
do i=-20,99
u(i,0)=0
end do
u(1,0)=1
u(2,0)=1
Do n=0,15
do i=-10,80
u(i,n+1)=u(i,n)-alfa*dt/dx/2*(u(i+1,n)-u(i-1,n))+
& 1/2*(u(i+1,n)-2*u(i,n)+u(i-1,n))
end do
end do
do n=0,15,2
do i= -5,70
write(*,*) "t=",n*dt
write(1,100) n*dt,i,u(i,0)
end do
end do
end
|
|