收藏 分销(赏)

一维对流方程在A、B、C三种差分格式.doc

上传人:人****来 文档编号:3109704 上传时间:2024-06-18 格式:DOC 页数:9 大小:272KB 下载积分:6 金币
下载 相关 举报
一维对流方程在A、B、C三种差分格式.doc_第1页
第1页 / 共9页
一维对流方程在A、B、C三种差分格式.doc_第2页
第2页 / 共9页


点击查看更多>>
资源描述
一、上机目的 用数值方法计算一维对流方程在A、B、C三种差分格式下的解。取为0.05. 取值为0.5,1,2。并作相关讨论。 二、实验原理 三、上机要求: 1.学会对MS-FORTRAN的基本操作。 2.用Fortran编写程序计算一维对流方程在A、B、C三种格式下的解。 3.讨论各种格式下不同的值的差分格式解的特点。 四、实验程序 以A格式为例,对微分方程进行离散化, 得出 A 格式的差分解的表达式: B、C格式同理可以写出。由此编写如下的Fortran程序。 注:除了循环时间层的计算公式略有不同外,三个程序没有区别,因此这里只用一个主程序,并根据格式选择的不同,采用条件语句判断执行哪一部分循环体。 !空间节点321,dx=0.05 输出依次为(时间,空间,数值) program main implicit none real dx_dt !定义的值 integer abc,r_t,i,j,k !定义变量,abc为格式类型,r_t为时间网格数,其余为循环变量 real,allocatable::s(:,:) !定义存储矩阵s write(*,*) "输入dx_dt=0.5,1,2" read(*,*) dx_dt write(*,*) "选择格式,A,B,C分别输入1,2或3" read(*,*) abc !根据格式选择生成相应的文件 if(abc==1) then open(unit=8,file='out_a.csv') elseif(abc==2) then open(unit=8,file='out_b.csv') elseif(abc==3) then open(unit=8,file='out_c.csv') endif r_t=160/dx_dt !计算时间网格总数 allocate(s(r_t+1,321)) !分配存储矩阵的空间 !第一层赋初值 do i=1,140,1 s(1,i)=0 write(8,*)"1",",",i,",",s(1,i) end do do i=141,161,1 s(1,i)=1+0.05*(i-161) write(8,*)"1",",",i,",",s(1,i) end do do i=162,181,1 s(1,i)=1-0.05*(i-161) write(8,*)"1",",",i,",",s(1,i) end do do i=182,321,1 s(1,i)=0 write(8,*)"1",",",i,",",s(1,i) end do !循环时间层,根据格式的选择来判断执行哪一部分 if(abc==1) then do i=2,r_t,1 do j=i,322-i,1 s(i,j)=s(i-1,j)-(s(i-1,j+1)-s(i-1,j-1))/(dx_dt*2) write(8,*)i,',',j,',',s(i,j) end do do k=1,i-1,1 !余下部分赋值0,下同 s(i,k)=0 write(8,*)i,',',k,',',s(i,k) end do do k=322-i,321,1 s(i,k)=0 write(8,*)i,',',k,',',s(i,k) end do end do elseif(abc==2) then do i=2,r_t+1,1 do j=1,322-i,1 s(i,j)=s(i-1,j)-(s(i-1,j+1)-s(i-1,j))/dx_dt write(8,*)i,',',j,',',s(i,j) end do do k=322-i,321,1 s(i,k)=0 write(8,*)i,',',k,',',s(i,k) end do end do elseif(abc==3) then do i=2,r_t+1,1 do j=i,321,1 s(i,j)=s(i-1,j)-(s(i-1,j)-s(i-1,j-1))/dx_dt write(8,*)i,',',j,',',s(i,j) end do do k=1,i-1,1 s(i,k)=0 write(8,*)i,',',k,',',s(i,k) end do end do endif !完成提示 write(*,*)'数据已输出至源目录' pause stop end program 五、实验结果及分析 程序运行后在对应目录下生成csv表格文件,根据输入的的值不同生成对应的网格并计算各节点数值。 这里以为例,就A、B、C三种格式的结果进行分析。 首先我们用MATLAB软件画出初始波形,以便于对比(这里三个格式没有区别)。 A格式,根据输出结果,选取不同时间节点用MATLAB软件绘制波形图像,这里从初始时刻开始每隔10单位取一点(即取t=1,11,21,… 画在同一张图里,可明显看出随时间变化的趋势)。波形画出 如下:(下一页第一张) 从图中看出,随着时间推移A格式呈现明显的发散状态。 B格式图像如下(下一页第二张): 从图中看出,随着时间推移B格式也呈现明显的发散状态。 C格式图像如下: 对比之下明显可以看出,随着时间的推移,C格式能较好的保证收敛性。 同样的,附上以及时的作图结果,从图中可以看出时三种格式都呈发散状态,而时C格式能保持收敛性,A、B格式都呈发散状态。 首先给出时三种格式的波形图(依次为A、B、C格式,直接以点序数0~321位横坐标): 下面是时的波形图: 六、实验总结 经过分析,可以发现在时三种格式都不收敛,而和时C格式收敛,A、B格式发散,这与理论上的结论也相一致。 (注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。可复制、编制,期待你的好评与关注)
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服