第一篇:两点边值问题地有限差分法偏微分方程数值解课程实验报告
学
生
实
验
报
告
实验课程名称
偏微分方程数值解
开课实验室
数统学院
学
院
数统
年级
2013 专业班
信计 2 2 班
学
生
姓
名
学
号
开
课
时
间
2015 至
2016 学年第2
学期
总
成绩
教师签名
数学与统计学院制
开课学院、实验室:
数统学院
实验时间
:2016 年
月
日
实验项目
名
称
两点边值问题的有限差分法
实验项目类型
验证
演示
综合设计
其他
指导教师
曾芳
成绩
是
一.实验目的通过该实验,要求学生掌握求解两点问题的有限差分法,并能通过计算机语言编程实现。
二.实验容
考虑如下的初值问题:
, ,du x du x dLu p x r x q x u x f x x a bdx dx dx
(1) , u a u b
(2)其中 1, p x C a b , , , , r x q x f x C a b , min0 p x p , 0 q x ,, 是给定常数。
将区间 N 等分,设b ahN,网点 , 0,1,...,ix a ih i N 。
1.在第三部分写出问题(1)和(2)的差分格式,并给出该格式的局部截断误差。
2.根据你写出的差分格式,编写一个有限差分法程序。将所写程序放到第四部分。
3.给定参数 0, 1 a b ,3, 1, 2 p r q ,0 ,1 ,问题(1)的精确解 2 1 xu x x e,其 中 将 2 1 xu x x e 及 1, 2, 3 p r q 带 入 方 程(1)可 得 f x。
分 别 取10,20,40,80,160 N ,用所编写的程序计算问题(1)和(2)。将数值解记为iu,1,..., 1 i N ,网点处精确解记为 i u,1,..., 1 i N 。然后计算相应的误差
0maxNiici Ne u u , 1201NNiiie h u u 及收敛阶 2lnln2N Ne e,将计算结果填入第五部分的表格,并对表格中的结果进行解释? 4.将数值解和精确解画图显示,每种网格上的解画在一图。
三.实验原理、方法(算法)、步骤
1.差分格式:
错误!未找到引用源。= =--1/h^2(错误!未找到引用源。--((错误!未找到引用源。))错误!未找到引用源。+ +错误!未找到引用源。)+错误!未找到引用源。((错误!未找到引用源。)/2h+错误!未找到引用源。= =错误!未找到引用源。
错误!未找到引用源。
A,错误!未找到引用源。
2.局部阶段误差:
错误!未找到引用源。
(u)=O(h^2)
3.程序
clear all
N=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);%
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;
end
for i=2:N-2
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);
H(i,i+1)=-(2*p(a+(i+1/2)*h)/h-r(a+i*h));
g(i)=2*h*f(a+i*h);
end
for 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))*beta;
end
u=Hg;
u=[alpha;u;beta];
x=a:h:b;
y=(x.^2).*exp(x-1);
plot(x,u);
hold on
plot(x,y);
y=y"
z=y-u
四.实验环境(所用软件、硬件等)及实验数据文件
Matlab
五.实验结果及实例分析
N Nce
收敛阶 0Ne
收敛阶 10 0.00104256 …… 0.00073524 …… 20 0.00026168 1.9341 0.00018348 1.4530 40 0.00006541 2.0001 0.00004585 2.0000 80 0.00001636 1.9993 0.00001146 2.0000 160 0.00000409 2.0000 0.00000287 2.0000
N N 越大
只会使绝对误差变小,方法没变,所以收敛阶一致。
图示为:((绿线为解析解,蓝线为计算解))
N=10
N=20
N=40
N=80
N=160
教师签名
****年**月**日