下载此文档

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


文档分类:高等教育 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
一维对流方程在A、B、C三种差分格式
一、上机目的
用数值方法计算一维对流方程在A、B、C三种差分格式下的解。. ,1,2。并作相关讨论。
二、实验原理
三、上机要求:
-FORTRAN的基本操作。
、B、C三种格式下的解。

四、实验程序
以A格式为例,对微分方程进行离散化, 得出 A 格式的差分解的表达式:
B、C格式同理可以写出。由此编写如下的Fortran程序。
注:除了循环时间层的计算公式略有不同外,三个程序没有区别,因此这里只用一个主程序,并根据格式选择的不同,采用条件语句判断执行哪一部分循环体。
!空间节点321,dx= 输出依次为(时间,空间,数值)
program main
implicit none
real dx_dt !定义Δx/Δt的值
integer abc,r_t,i,j,k !定义变量,abc为格式类型,r_t为时间网格数,其余为循环变量
real,allocatable::s(:,:) !定义存储矩阵s
write(*,*) "输入dx_dt=,1,2"
read(*,*) dx_dt
write(*,*) "选择格式,A,B,C分别输入1,2或3"
read(*,*) abc
!根据格式选择生成相应的文件
if(abc==1) then
open(unit=8,file='')
elseif(abc==2) then
open(unit=8,file='')
elseif(abc==3) then
open(unit=8,file='')
endif
r_t=160/dx_dt !计算时间网格总数
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表格文件,根据输入的ΔxΔt的值不同生成对应的网格并计算各节点数值。
这里以ΔxΔt=1为例,就A、B、C三种格式的结果进行分析。
首先我们用MATLAB软件画出初始波形,以便于对比(这里三个格式没有区别)。
A格式,根据输出结果,选取不同时间节点用MATLAB软件绘制波形

一维对流方程在A、B、C三种差分格式 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数9
  • 收藏数0 收藏
  • 顶次数0
  • 上传人qiang19840906
  • 文件大小451 KB
  • 时间2021-07-28