ftcs格式 matlab,计算流体力学_对流方程_有限差分法_Lax格式_迎风格式_FTCS格式(8页)-原创力文档..._weixin_39796868的博客-程序员秘密

技术标签: ftcs格式 matlab  

有限差分法数值求解一维伯格斯方程

作者:潭花林

引言

本文利用有限差分法计算了一维伯格斯方程的初边值问题。采用FTCS格式,并深入讨论了它的相容性、收敛性与稳定。有限差分法在计算流体力学、数值传热学中都有众多的应用,而且可以用于高维情形。所有问题都是采用matlab编程计算。本文只是一个简单的一维问题的算例。

关键词:计算流体力学,有限差分法,一维对流方程

题目

用计算机求对流方程的初值问题

的数值解(由于对流方程的计算结果只依赖与上游,只需要给出上有的边界条件就可以了)。

(1)分别用C格式,Lax格式,FTCS格式在 ,两种情况下计算。

(2)计算范围为,取,计算80个时间步长。

(3)写出计算报告,内容为

(I)计算课题

(II)计算框图

(III)计算程序

(IV)计算结果,时的,图

(V)体会

计算原理

迎风格式

内点采用如下差分格式

初值为

边界条件为

稳定性:

差分格式的稳定性:误差方程与差分方程相同

设误差为,则

放大因子

所以

为使,应有

对于本问题,初值和边界条件并不影响稳定性和收敛性问题。

根据Lax等价定理,对于适定的处置问题,只要差分格式相容,稳定的就是收敛的。

Lax格式

内点采用如下差分格式

初值为

边界条件为

稳定性:

差分格式的稳定性:误差方程与差分方程相同

设误差为,则

放大因子

所以

为使,应有

对于本问题,初值和边界条件并不影响稳定性和收敛性问题。

根据Lax等价定理,对于适定的处置问题,只要差分格式相容,稳定的就是收敛的。

FTCS格式

内点采用如下差分格式

初值为

边界条件为

稳定性:

差分格式的稳定性:误差方程与差分方程相同

设误差为,则

放大因子

所以

所以该格式是完全不稳定的。

计算结果及其讨论

时,结果是收敛的

时刻,三种格式的处理是相同的,处理结果如 REF _Ref370418215 \h 图 1所示,这是由于还没有开始数值计算。

图 SEQ 图 \* ARABIC 1

时刻,计算结果如 REF _Ref370418250 \h 图 2所示,Lax格式和迎风格式的结果几乎是相同的,而FTCS格式却出现了很大的数值震荡。

图 SEQ 图 \* ARABIC 2

时刻,计算结果如 REF _Ref370418261 \h 图 3所示,Lax格式和迎风格式的结果几乎是相同的,并且结果已经接近稳态。而FTCS格式却数值震荡更大了,在几百的量级。

图 SEQ 图 \* ARABIC 3

时刻,三种格式的处理是相同的,处理结果如 REF _Ref370418281 \h 图 4所示,Lax格式和迎风格式的结果几乎是相同的,并且结果已经接近稳态。而FTCS格式却数值震荡更大了,在十万的量级。

图 SEQ 图 \* ARABIC 4

时,结果是不收敛的

时刻,计算结果如 REF _Ref370418173 \h 图 5所示,三种格式的处理是相同的,这是由于还没有开始数值计算。

图 SEQ 图 \* ARABIC 5

时刻,计算结果如 REF _Ref370418302 \h 图 6所示,三种格式都出现了不同程度的数值震荡,在之前的稳定性分析中,已经指出,时,即使是迎风格式和Lax格式也是不稳定的,只有几的量级。

图 SEQ 图 \* ARABIC 6

时刻,计算结果如 REF _Ref370418313 \h 图 7所示,三种格式都出现了不同程度的数值震荡,在之前的稳定性分析中,已经指出,时,即使是迎风格式和Lax格式也是不稳定的,震荡量级到了几百。

图 SEQ 图 \* ARABIC 7

时刻,计算结果如 REF _Ref370418324 \h 图 8所示,三种格式都出现了不同程度的数值震荡,在之前的稳定性分析中,已经指出,时,即使是迎风格式和Lax格式也是不稳定的,震荡量级到几千万。

图 SEQ 图 \* ARABIC 8

体会

在数值计算中,由于计算量很大,不可能通过微分方程的推导就获得解析解,编写程序已经是不可或缺的了。使用Matlab编写程序,虽然计算速度会比C、C++、Fortran等语言慢一些,但是却易于调试。本文中的程序只用了两次就调试成功。

差分格式虽然看起来都差不多,但是稳定性的各自不同。FTCS格式虽然具有二阶的精度,但是不收敛,精度再高也没有用。数值震荡在一开始或许并不大,但是随着计算的进行,震荡的量级就不容小觑了。

对于显示格式,都是条件稳定的,需要足够小才可以保证稳定条件。本文中的一维方程稳定性条件还不是很苛刻。但是如果问题是二维的,甚至是三维的,需要更小,计算量就会很大。

致读者

文章中多处用到Mathtyp

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39796868/article/details/116014166

智能推荐

分库分表:中间件方案对比_分库分表中间件_琦彦的博客-程序员秘密

背景分库分表这个词相信很多人都不陌生,在互联网公司数据到达一定规模的时候,多数都会对数据进行分库分表,或者也有人叫分片,英文翻译为Sharding;更加准确来说我们常常关心的是水平分片,即单个业务的某些表到达一定规模后,即使建立索引也无法从根本上带来很大的性能提升,这时我们会考虑把单表拆分。以MySQL为例,B+树索引的深度会随着记录的增多而逐渐加深,根据索引查询的开销也会越来越大...

接线端子名PH,XH,ZH的区别_lovebeyond1014的博客-程序员秘密

PH,XH,ZH等这些都是JST(Japan Standard Time 日本压着端子制造株式会社)的料号,因为JST用的最多,且很多工厂都在模仿制作,故也大多起这样的代号,以便选型者更为方便的知道与JST的匹配情况。每个代号都是一个系列的产品,他们最大的区别就是Pitch(俗称间距)不一样。不过现在国内做连接器的大多都在自己的产品命名后加(XH,EH,EI,VH)之类的,大多是为了,方便

初学python杂记--坐标移动_python 点沿一定方向移动一点距离得到新坐标_电子小兵的博客-程序员秘密

题目描述 开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。输入: 合法坐标为A(或者D或者W或者S) + 数字(两位以内)坐标之间以;分隔。非法坐标点需要进行丢弃。如AA10; A1A; %; YAD; 等。import sys#import...

[pytorch]——用flatten和index_select实现embedding look_up_embedding look-up_Muasci的博客-程序员秘密

代码batch_size, n_features = w.shapeemb_out = self.embeddings.index_select(0, w.flatten())x = emb_out.view(batch_size, -1) # -1 means: n_features * embed_size也就是x = self.embeddings(w)

《鸟哥linux2》-阅读摘要-第5章-linux常用的网络命令_lightty的博客-程序员秘密

介绍常见的网络命令。ifconfig——手动修改、观察、启动网络接口的相关参数。具体到那个Interface,如eth0,eth1,ppp0等的状态。ifup,ifdown——根据/etc/sysconfig/network-scripts里的ifcfg-ethx等文件设置的参数来启动。(根据文件启动)route——路由器的设置观察等。添加删除等等。ip——功能强大,集合ifcon

JavaScript——基本语法_Apocrypha!的博客-程序员秘密

第二章 基本语法变量标识符保留关键字变量的使用变量的赋值补充内容:定义常量数据类型数据类型分类基本数据类型数据类型检测数据类型转换变量标识符1.含义:在程序开发中,经常需要自定义一些符号来标记一些名称,并赋予其特定的用途,如变量名、函数名等,这些符号都被称为标识符;2.标识符定义规则:由大小写字母、数字、下划线和美元符号($)组成,但不能以数字开头;严格区分大小写;不能以JavaScript中的关键字来命名;要尽量做到“见其名知其意”,如“name”、“age”;保留关键字1.含义:

随便推点

uniapp 中uview-ui的使用教程_倘若hfl的博客-程序员秘密

1.首先创建uniapp项目2.在头部工具栏 工具→插件安装 中安装 scss/sass编译3.去uni-app插件市场下载插件ZIP,解压后放入项目根目录下载地址:https://ext.dcloud.net.cn/plugin?id=15934.引入uView主JS库在项目根目录中的main.js中,引入并使用uView的JS库,注意这两行要放在import Vue之后。// main.jsimport uView from "uview-ui";Vue.use(uView);

ubuntu双系统开机默认启动windows设置_weixin_33716557的博客-程序员秘密

一、我的电脑原来先装的Windows XP,后来由于工作需要,又装了一个Linux_Ubuntu 9.04,我设置了定时开机,但是总是默认启动到Ubuntu环境。通过下面的操作把Windows XP改为默认启动系统:启动ubuntu后,输入:sudo gedit /boot/grub/menu.lst输入正确密码,打开menu.lst。从第一行往下看,...

Dev C++ 报错: ‘to_string‘ was not declared in this scope_to_string was not declared_Simone Zeng的博客-程序员秘密

今天在dev c++中使用to_string函数的时候,发现不能使用。查找原因后发现是编译器的问题,希望能帮到其他小伙伴。Dev C++ 编译器:在菜单栏点开工具(Tools)-> 编译选项(Compile Options),加上下图所示的编译指令即可让编译器支持c++11的标准。(1)(2)在编译器指令中加入**-std=c++11**当然,我们还要注意在头文件加上#include #include using namespace std;以上就是本篇文章的内容了,如果你觉得我

ESP32利用百度智能云实现图像识别 文字识别_esp32 图像识别_Kevincoooool的博客-程序员秘密

在我的Kevincoooool/ESP_MASTER (gitee.com)项目中用到了百度AI识别,来讲讲实现过程。1、通过esp32获取jpg图像int baidu_img_ai(void){ char *base64_buf = NULL; char *urlcode_buf = NULL; camera_fb_t *fb = NULL; esp_err_t res = ESP_OK; size_t _jpg_buf_len = 0; uint8_t *_jpg_buf = N

机器学习-奇异值分解_奇异值分解 机器学习_love1005lin的博客-程序员秘密

文章目录第一章 数学基础1.1 向量和矩阵1.1.1 标量、向量、矩阵、张量之间的联系1.1.2 张量与矩阵的区别1.1.3 矩阵和向量相乘结果1.1.4 向量和矩阵的范数归纳1.1.5 如何判断一个矩阵为正定1.2 导数和偏导数1.2.1 导数偏导计算1.2.2 导数和偏导数有什么区别?1.3 特征值和特征向量1.3.1 特征值分解与特征向量1.3.2 奇异值与特征值有什么关系1.4 概率分布与随机变量1.4.1 机器学习为什么要使用概率1.4.2 变量与随机变量有什么区别1.4.3 随机变量与概率分布的

科学计算软件——Octave安装_weixin_30772261的博客-程序员秘密

Octave是一个旨在提供与Matlab语法兼容的开放源代码科学计算及数值分析的工具,是Matlab商业软件的一个强有力的竞争产品。参考:【ML:Octave Installation】GeneralInstallation files for all platforms are available at theGNU Octave Repositoryon SourceFor...

推荐文章

热门文章

相关标签