




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数值实验报告实验名称Poisson方程九点差分格式实验时间实验名称Poisson方程九点差分格式实验时间2016年4月15日姓名米瑞琪班级信息1303学号1309010304成绩一、实验目的,内容1、理解Poisson方程九点差分格式的构造原理;2、理解因为网格点的不同排序方式造成的系数矩阵格式的差异;3、学会利用matlab的spdiags(),kron()函数生成系数矩阵;二、算法描述针对一个Poisson方程问题:在Poisson方程五点差分格式的基础上,采用Taylor展开分析五点差分算子的截断误差,可以得到:为了提高算子截断误差的精度,在(1)式中配凑出了差分算子的形式,将原Poisson方程代入(1)式有:考虑,有:将(3)代回(2)可得得到Poisson方程的九点差分格式:在计算机上实现(4)式,需要在五点差分格式的基础上在等式两端分别增加一部分,将等式左侧新增的部分写成紧凑格式,有:对于该矩阵,可以看成是两个矩阵的组合:以及则生成这两个矩阵可以采用Kroncker生成,方法类似于五点差分格式。对于右端添加的关于f(x,y)的二阶导数,可以采用中心差分格式进行近似代替,即:写成相应的紧凑格式有:该式中的矩阵又可以分解为两个矩阵的和:三.程序代码根据上述分析,可以写出程序代码为:clcclear%网格剖分xa=0;xb=1;N1=64;h1=(xb-xa)/N1;x=xa+[1:(N1-1)]*h1;ya=0;yb=1;N2=64;h2=(yb-ya)/N2;y=ya+[1:(N2-1)]*h2;%生成网格点与边界点处f的函数值,其中f_b1是中间全部为0的向量,f_b2是每一个分块中间为0的向量f=@(x,y)-(2*piA2)*exp(pi*(x+y))*(sin(pi*x)*cos(pi*y)+cos(pi*x)*sin(pi*y));f_b1=zeros((N1-1)*(N2-1),1);f_b2=zeros((N1-1)*(N2-1),1);fori=1:N1-1f_b2((i-1)*(N2-1)+1)=f(x(i),ya);f_b2(i*(N2-1))=f(x(i),yb);forj=1:N2-1f_in((i-1)*(N2-1)+j)=f(x(i),y(j));ifi==1f_b1(j)=f(xa,y(j));endifi==N1-1
f_b1((i-1)*(N2-1)+j尸f(xb,y(j));endendendf_in=f_in';%生或迭代矩阵Ae2=ones(N1-1,1);K1=spdiags([e2,-2*e2,e2],[-1,0,1],N1-1,N1-1);e3=ones(N2-1,1);I1=spdiags(e3,0,N2-1,N2-1);A=kron(K1,I1);A=A/h1A2;%生成迭代矩阵B和CI2=spdiags(e2,0,N1-1,N1-1);K2=spdiags([e3,-2*e3,e3],[-1,0,1],N2-1,N2-1);B=kron(I2,K2);C=-2*(h1A2+h2A2)/(12*h1A2*h2A2)*B;B=B/h2A2;%生成迭代矩阵DS1=spdiags([e2e2],[-11],N1-1,N1-1);S2=spdiags(e3,0,N2-1,N2-1);D=(h1A2+h2A2)/(12*h1A2*h2A2)*kron(S1,K2);%生成f的中心差分格式对应矩阵E和FE=kron(S1,S2);K3=spdiags([e3,-4*e3,e3],[-101],N2-1,N2-1);F=kron(I2,K3);f_vec=-f_in-(1/12)*((E+F)*f_in+f_b1+f_b2);%生成网格点[X,Y]=meshgrid(x,y);%计算网格函数值u_d=(A+B+C+D)\f_vec;u0=zeros(length(f_vec),1);%计算误差u_real=@(x,y)exp(pi*(x+y))*sin(pi*x).*sin(pi*y);fori=1:N1-1u_m((i-1)*(N2-1)+1:i*(N2-1))=u_real(x(i),y);endu_v=u_m';err_d=max(abs(u_d-u_v));sol=reshape(u_d,N2-1,N1-1);mesh(X,Y,sol)四.数值结果针对课本P93给出的问题,分别采用步长,将计算出的误差列表如下:Jk五点差分格式误差九点差分格式误差—0.02861330711346713.59173530739554e-06—0.007156344071610482.24435417806035e-07可见米用九点差分格式可以进一步缩小误差,达到更高阶的精度。
五.计算中出现的问题,解决方法及体会在生成九点差分格式的时候,等号右端涉及到了对f的二阶偏导,我最初利用符号函数定义了f,随后求出具二
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年建筑材料购销合同目录
- 2025年住宅交易合同纠纷解决策略
- 20XX年关于私营企业雇工劳动合同8篇
- 企业专家顾问合同范本
- 个人企业转让合同范本
- 产品技术销售合同范本
- 关于调整劳动合同范本
- 企业股权管理合同范本
- 企业接待租车合同范本
- 公路监理劳务合同范本
- 8款-组织架构图(可编辑)
- 高三二轮复习备考指导意见
- 2023年四川省公务员考试行测真题及答案解析
- 日本商务礼仪课件
- 卷内目录范例模板
- 浅谈钢琴即兴伴奏在教学中应用现状及提高方法 论文
- 2024届高考语文复习:小说阅读之叙事顺序与叙事节奏
- 太阳能光电转换西安交通大学PP课件
- 新生儿肺透明膜病的影像与临床探讨
- 动力触探检测报告超重型圆锥动力触探试验
- 职业素养的内容(含事例)课件
评论
0/150
提交评论