回 帖 发 新 帖 刷新版面

主题:用追赶法解线性方程组

考虑如下方程:
 
其中, 是以 为自变量的一元函数。边界条件为: 真解为: 。
1.    网格剖分: (这种网格称为一致网格(Uniform Mesh),我们在后面将介绍Shishkin网格和Bakhvolov网格,编程时请使用后两种网格。)
2.     
3.     (后面将介绍其他离散格式)
4.    离散后变成线性代数方程组AU=b。系数矩阵A为三对角矩阵,可以用追赶法、消元法、超松弛迭代法(SOR)或者其他方法求解线性代数方程组。
求数值解并用图形表示,并与真解进行比较(图形中包括数值解和真解)。填写如下表格。
 
    误差的 范数
与下一行误差之比    以2为底,左列数值的对数
N=32            
N=64            
N=128            
N=256            
N=512        (空白)    (空白)
 
    误差的 范数
与下一行误差之比    以2为底,左列数值的对数
N=32            
N=64            
N=128            
N=256            
N=512        (空白)    (空白)
提示:需要在Turbo C下画图,编辑源代码时输入line (画直线),将光标移动到该单词,按下<Ctrl> + <F1>查看帮助(或直接打开Help,选择Index,输入line),打开“line example”,将例子拷贝下来,再修改 initgraph 函数中的路径,注意反斜杠要用转义字符,例 initgraph(&gdriver, &gmode, "E:\\TC\\BGI"); 在“帮助”或其他资料中查找其他的绘图函数。
(示范)
也可以将数据输出到一个文件(文件名为学号,后缀为plt,如:2004750209.plt,用图形软件Tecplot能直接画图),文件格式如下:
 
当区间剖分为256份后,共有257个点(包括左右边界点)及相应的函数值,每个点的横坐标和纵坐标占1行,中间用空格,加上第一行,文件“2004750209.plt”共258行。
最终提交包含两个文件(若有Tecplot格式的数据文件则增加一个)的以学号命名的文件夹。一个是Word文档包括班级、学号、姓名、图形(Windows XP下不能将图形剪切到剪贴板)、表格和相关说明文字,另一个是程序源代码。
作业要求单独完成,若发现有抄袭情况,抄袭者和被抄袭者将共享所的分数。(满分100)

每个班由学习委员将所有同学的试卷保存到U盘,于2006年10月31日上午交数学楼105东,过期不候。有问题请到办公室讨论。
 
方程真解图形如下:
 
这是一个定常对流扩散方程。定常是指方程与时间无关,方程中的 是对流项, 是扩散项。如 , , , 等都是非定常方程。
该方程的解在右边存在一个边界层。(水从管道内流动,我们可以近似认为充分靠近管道内壁的那“层”水的流动速度为零,而管道中心水流速度可以达到一个很大的值。也就是说,考虑从管道中心到管道内壁流体速度的变化,即 在区间 的变化。容易知道,当 充分接近 时, 的数值急速下降为零。同样地,我们也可以把激波当成一个边界层来处理。事实上,我们在数值求解激波位置时往往用一条曲线来表示激波。)
对上述方程的数值模拟,我们应该把重点放在对边界层的模拟上。远离边界层的地方由于解函数连续且变化缓慢,大多数的数值方法都能较好地模拟出来,对网格剖分的要求也不高,一般用一致网格(Uniform Mesh)即均匀剖分。为了更好地模拟出边界层,我们建议使用Shishkin网格或Bakhvolov网格。这两种网格都会将点尽可能地分布在边界层内。假设将求解区间 分为N(偶数)份,则
Shishkin网格为:
 
 ,一般取 容易看出,Shishkin网格本质上就是分片一致网格,在 和 分别等分 等份和 等份。
Bakhvolov网格为:
 
 ,
一般取 容易看出,Bakhvolov网格在 上是一致网格,而在 上是非等距网格。
在非等距网格上 的离散:
(1) ,其中 .将 用泰勒(Taylor)公式展开,即: ,将之代入到离散格式中即得 
(2) ,同样可以用Taylor公式证明其只有一阶精度。
(3) , 
将 
和 代入离散格式,
 
为使之达到二阶精度,要求   ,解得
 
我们把离散格式(1)称为向后迎风格式,(2)称为向前迎风格式,(3)称为中心格式。为保证离散后的系数矩阵A为三对角矩阵,我们在这里无法使用更高阶的离散格式。
在非等距网格上 的离散:
设离散格式为 ,其中a, b和c为待定常数。将 和
 代入离散格式,
 为使之达到二阶精度,要求   
解得
 当 时,化简为 。
注1:对于Shishkin网格,在点 处,由于左右两边的网格距离不相等,需要用非等距网格的离散公式。
注2:对于Bakhvolov网格,在点 及右边,都需要用非等距网格的离散公式。
注3:当 时,计算 , ,
 ,故在标准C中,即使是双精度型变量也无法存储该数据,可以考虑将之变形为: 。 
(Turbo C中,双精度型数据以11位存储指数部分)
注4:(表格解释)若离散格式为k阶逼近,即真解与数值解的误差为 ,假设误差能表示为 ,C为常数。最后一列:
 ,事实上,数值解总存在误差,并且上述误差中的因子C在通常情况下不是常数,所以,我们得到的结果应该在k附近变化。
注5:误差的 范数用公式: ;误差的 范数用公式: 。

回复列表 (共1个回复)

沙发


哇噻,作业发到这来啦?![em2]

我来回复

您尚未登录,请登录后再回复。点此登录或注册