学生实验报告实验课程名称偏微分方程数值解开课实验室数统学院学院数统年级2013专业班信计2班学生姓名学号开课时间2015至2016学年第2学期总成绩教师签名数学与统计学院制开课学院、实验室:数统学院实验时间:2016年月日实验项目名称两点边值问题的有限差分法实验项目类型验证演示综合设计其他指导教师曾芳成绩是一.实验目的通过该实验,要求学生掌握求解两点问题的有限差分法,并能通过计算机语言编程实现。二.实验内容考虑如下的初值问题:,,duxduxdLupxrxqxuxfxxabdxdxdx(1),uaub(2)其中1,pxCab,,,,rxqxfxCab,min0pxp,0qx,,是给定常数。将区间N等分,设bahN,网点,0,1,...,ixaihiN。1.在第三部分写出问题(1)和(2)的差分格式,并给出该格式的局部截断误差。2.根据你写出的差分格式,编写一个有限差分法程序。将所写程序放到第四部分。3.给定参数0,1ab,3,1,2prq,0,1,问题(1)的精确解21xuxxe,其中将21xuxxe及1,2,3prq带入方程(1)可得fx。分别取10,20,40,80,160N,用所编写的程序计算问题(1)和(2)。将数值解记为iu,1,...,1iN,网点处精确解记为iu,1,...,1iN。然后计算相应的误差0maxNiiciNeuu,1201NNiiiehuu及收敛阶2lnln2NNee,将计算结果填入第五部分的表格,并对表格中的结果进行解释?4.将数值解和精确解画图显示,每种网格上的解画在一张图。三.实验原理、方法(算法)、步骤1.差分格式:=-1/h^2(-()+)+()/2h+=A,2.局部阶段误差:(u)=O(h^2)3.程序clearallN=10;a=0;b=1;p=@(x)1;r=@(x)2;q=@(x)3;alpha=0;beta=1;f=@(x)(4*x^2-2)*exp(x-1);h=(b-a)/N;H=zeros(N-1,N-1);g=zeros(N-1,1);%fori=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;endfori=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(a+i*h));g(i)=2*h*f(a+i*h);endfori=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=H\g;u=[alpha;u;beta];x=a:h:b;y=(x.^2).*exp(x-1);plot(x,u);holdonplot(x,y);y=y'z=y-u四.实验环境(所用软件、硬件等)及实验数据文件Matlab五.实验结果及实例分析NNce收敛阶0Ne收敛阶100.00104256……0.00073524……200.000261681.93410.000183481.4530400.000065412.00010.000045852.0000800.000016361.99930.000011462.00001600.000004092.00000.000002872.0000N越大只会使绝对误差变小,方法没变,所以收敛阶一致。图示为:(绿线为解析解,蓝线为计算解)N=10N=20N=40N=80N=160教师签名年月日