1、两点边值问题的有限差分法学 生 实 验 报 告实验课程名称 偏微分方程数值解 开课实验室 数统学院 学 院 数统 年级 2013 专业班 信计2班 学 生 姓 名 学 号 开 课 时 间 2015 至 2016 学年第 2 学期总 成 绩教师签名数学与统计学院制开课学院、实验室: 数统学院 实验时间 : 2016年 月 日实验项目名 称两点边值问题的有限差分法实验项目类型验证演示综合设计其他指导教师 曾芳成 绩是一实验目的通过该实验,要求学生掌握求解两点问题的有限差分法,并能通过计算机语言编程实现。二实验内容考虑如下的初值问题: (1) (2)其中,是给定常数。 将区间等分,设,网点。 1在第
2、三部分写出问题(1)和(2)的差分格式,并给出该格式的局部截断误差。2根据你写出的差分格式,编写一个有限差分法程序。将所写程序放到第四部分。3给定参数,问题(1)的精确解,其中将及带入方程(1)可得。分别取,用所编写的程序计算问题(1)和(2)。将数值解记为,网点处精确解记为,。然后计算相应的误差,及收敛阶,将计算结果填入第五部分的表格,并对表格中的结果进行解释?4. 将数值解和精确解画图显示,每种网格上的解画在一张图。 三实验原理、方法(算法)、步骤1. 差分格式:=-1/h2(-()+)+()/2h+=A,2. 局部阶段误差: (u)=O(h2)3.程序clear all N=10;a=0
3、;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,1); % for i=1 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)+(2*p(a+(i-1/2)*h)/h+r(a+i*h)*alpha;endfor i=2:N-2 H(i,i-1)=-(2*
4、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);endfor i=N-1 H(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)*bet
5、a;end u=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收敛阶收敛阶100.001042560.00073524200.000261681.93410.000183481.4530400.000065412.00010.000045852.0000800.000016361.99930.000011462.00001600.000004092.00000.000002872.0000N越大 只会使绝对误差变小,方法没变,所以收敛阶一致。图示为:(绿线为解析解,蓝线为计算解)N=10N=20N=40N=80N=160教师签名年 月 日