Poisson方程九点差分格式_米瑞琪

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数值实验报告I

实验名称Poisson方程九点差分格式实验时间2016年 4 月 15 日姓名米瑞琪班级信息1303学号04成绩

一、实验目的,内容

1、理解Poisson方程九点差分格式的构造原理;

2、理解因为网格点的不同排序方式造成的系数矩阵格式的差异;

3、学会利用matlab的spdiags(),kron()函数生成系数矩阵;

二、算法描述

针对一个Poisson方程问题:

在Poisson方程五点差分格式的基础上,采用Taylor展开分析五点差分算子的截断误差,可以得到:

为了提高算子截断误差的精度,在(1)式中配凑出了差分算子的形式,将原Poisson方程代入(1)式有:

考虑,有:

将(3)代回(2)可得

得到Poisson方程的九点差分格式:

在计算机上实现(4)式,需要在五点差分格式

的基础上在等式两端分别增加一部分,将等式左侧新增的部分写成紧凑格式,有:

对于该矩阵,可以看成是两个矩阵的组合:

以及

则生成这两个矩阵可以采用Kroncker生成,方法类似于五点差分格式。

对于右端添加的关于f(x,y)的二阶导数,可以采用中心差分格式进行近似代替,即:

写成相应的紧凑格式有:

该式中的矩阵又可以分解为两个矩阵的和:

%计算误差

u_real=@(x,y)exp(pi*(x+y))*sin(pi*x).*sin(pi*y);

for i=1:N1-1

u_m((i-1)*(N2-1)+1:i*(N2-1))=u_real(x(i),y);

end

u_v=u_m';

err_d=max(abs(u_d-u_v));

sol=reshape(u_d,N2-1,N1-1);

mesh(X,Y,sol)

四. 数值结果

针对课本P93给出的问题,分别采用步长,将计算出的误差列表如下:

步长五点差分格式误差九点差分格式误差

可见采用九点差分格式可以进一步缩小误差,达到更高阶的精度。

五. 计算中出现的问题,解决方法及体会

在生成九点差分格式的时候,等号右端涉及到了对f的二阶偏导,我最初利用符号函数定义了f,随后求出其二阶偏导(仍然是符号函数)之后带入网格点,求f二阶偏导的精确解,但是代入过程相当繁琐,运行速度非常慢,最终我改变策略,选用f关于x,y的二阶中心差分格式替代精确值,最终得到了相对满意的结果。

指导教师:年月日

相关文档
最新文档