1、学 生 实 验 报 告实验课程名称 偏微分方程数值解 开课实验室 数统学院 学 院 数统 年级 2013 专业班 信计 2 班 学 生 姓 名 学 号 开 课 时 间 2015 至 2016 学年第 2 学期总 成 绩教师签名数学与统计学院制开课学院、实验室: 数统学院 实验时间 : 2016 年 月 日实验项目类型实验项目名 称 两点边值问题的有限差分法 验证 演示 综合 设计 其他指导教师 曾芳 成 绩 是一实验目的通过该实验,要求学生掌握求解两点问题的有限差分法,并能通过计算机语言编程实现。二实验内容考虑如下的初值问题:(1), ,duxduxLuprqxfabx(2), ab其中 ,
2、, , , 是1,pxCb,rxqfxCabmin0pxqx, 给定常数。将区间 等分,设 ,网点 。 NbhN,1,.ixhiN1在第三部分写出问题(1 )和(2)的差分格式,并给出该格式的局部截断误差。2根据你写出的差分格式,编写一个有限差分法程序。将所写程序放到第四部分。3给定参数 , , , ,问题(1)的精确解0, 1ab3,12prq01,其中将 及 带入方程(1)可得 。分别取21xue2xue,3fx,用所编写的程序计算问题(1)和(2) 。将数值解记为 ,0,4,86N iu,网点处精确解记为 , 。然后计算相应的误差1.i iu1,.N, 及收敛阶 ,将计算结果填0maxN
3、icieu120Niiehu2lnNe入第五部分的表格,并对表格中的结果进行解释?4. 将数值解和精确解画图显示,每种网格上的解画在一张图。三实验原理、方法(算法) 、步骤1. 差分格式:=-1/h2( -( ) + )+ ( )/2h+ = +1/2+1 +1/2+1/2 1/21 +11 A,0= =.2. 局部阶段误差:(u)=O(h2)3.程序clear allN=10;a=0;b=1;p=(x) 1;r=(x) 2;q=(x) 3;alpha=0;beta=1;f=(x) (4*x2-2)*exp(x-1);h=(b-a)/N;H=zeros(N-1,N-1);g=zeros(N-1
4、,1); %for i=1H(i,i)=2*(p(a+(i+1/2)*h)+p(a+(i-1/2)*h)/h+2*h*q(a+i*h);H(i,i+1)=-(2*p(a+(i+1/2)*h)/h-r(a+i*h); g(i)=2*h*f(a+i*h)+(2*p(a+(i-1/2)*h)/h+r(a+i*h)*alpha;endfor i=2:N-2H(i,i-1)=-(2*p(a+(i-1/2)*h)/h+r(a+i*h);H(i,i)=2*(p(a+(i+1/2)*h)+p(a+(i-1/2)*h)/h+2*h*q(a+i*h);H(i,i+1)=-(2*p(a+(i+1/2)*h)/h-r
5、(a+i*h); g(i)=2*h*f(a+i*h);endfor i=N-1H(i,i-1)=-(2*p(a+(i-1/2)*h)/h+r(a+i*h);H(i,i)=2*(p(a+(i+1/2)*h)+p(a+(i-1/2)*h)/h+2*h*q(a+i*h);g(i)=2*h*f(a+i*h)+(2*p(a+(i+1/2)*h)/h-r(a+i*h)*beta;endu=Hg;u=alpha;u;beta;x=a:h:b;y=(x.2).*exp(x-1);plot(x,u);hold onplot(x,y);y=yz=y-u四实验环境(所用软件、硬件等)及实验数据文件Matlab五实验结果及实例分析N Nce收敛阶 0Ne收敛阶10 0.00104256 0.00073524 20 0.00026168 1.9341 0.00018348 1.453040 0.00006541 2.0001 0.00004585 2.000080 0.00001636 1.9993 0.00001146 2.0000160 0.00000409 2.0000 0.00000287 2.0000N 越大 只会使绝对误差变小,方法没变,所以收敛阶一致。图示为:(绿线为解析解,蓝线为计算解)N=10N=20N=40N=80N=160教师签名年 月 日