考察分段线性插值
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数值分析》课程设计
题目考察分段线性插值
学生黄立健丁威程发林
指导教师郭阁阳
天津工程师范学院
课程设计任务书
数理系数学班学生黄立健丁威程发林
课程设计课题:
考察分段线性插值
一、课程设计工作日自 2009 年 6 月 22 日至 2009 年 6 月 28 日
二、同组学生:黄立健丁威程发林
三、课程设计任务要求(包括课题来源、类型、目的和意义、基本要求、完成时
间、主要参考资料等):
【来源与意义】
本课题来源于教材第二章插值法,目的是从几何意义掌握分段线性插值的思想,加深对其的理解以及掌握用计算机与Matlab解决相关问题的能力。
【基本要求】
要求自编程序;掌握编程思想,学会一门编程语言;报告要有较强的理论分析;有较强说服力的数据表或图像;对结果进行分析;给出相应结论;鼓励创新;
【参考资料】
1.数值分析,李庆扬,王能超,易大义,2001,清华大学出版社(第四版)。
2.数值方法,关治,陆金甫,2006,清华大学出版社。
3.数值分析与实验学习指导,蔡大用,2001,清华大学出版社。
4.数值分析与实验,薛毅,2005,北京工业大学出版社。
指导教师签字:教研室主任签字:
天津工程师范学院
课程设计评审表系班学生
一、 问题提出:
题目:对2
1
()1f x x
=
+在【-5,5】上进行分段线性插值,取不同节点个数n ,得到不同分段线性插值函数。(要求:自编程序,报告有数据表、图像、分析、结论。)
二、 理论基础:
通过学习构造插值公式的方法,以及分析了它们的余项知道了在实际应用插值函数作近似计算时,我们总是希望插值公式余项的绝对值小一些,即使得逼近的精度良好。从插值公式余项表达式()n
R x 看,似乎提高插值多项式的次数便可达到
目的,但实际上会产生一称为Runge 现象的畸形现象,如下图所示:
从上图易知:Lagrange 插值多项式只在区间【-3.63,3.63】内收敛。因此我们通过构造分段线性插值的方法(在每个小区间上采用一次Lagrange 插值)来消除Runge 现象。
下面我们构造分段线性插值函数:
易知 在每个子区间 上是一次插值多项式
分段线性插值的余项:
其中:
1[,](0,1,)i i x x i n +=()x ϕ11111(),i i
i i i i i i i i
x x x x x y y x x x x x x x ϕ+++++--=+≤≤--2
()()()8Mh f x x R x ϕ-=≤
max ''()
a x b
M f x ≤≤=
三、 实验内容:
1、分段插值:
先对【-5,5】进行不同的等分,并分别求出节点数为n=3,5,7,9时的插值情况,用plot 函数画图观察函数的逼近情况,如下所示:
X 轴
Y 轴
2、 误差分析:
本题中我们采取的是求解分段内中点的函数值与差值函数值的差值d 的均值ave ,通过改变节点数n ,比较在xi=-5:5这些点处的误差值,并描绘出节点数从3至20时的误差均值图像:
误
差
均 值
节点数i
2468101214161820
四、结果分析:
1、分段线性插值实行时,节点加密误差变小,且插值函数只依赖于本
段的节点值,计算误差基本不扩大、稳定。
2、在节点处的插值函数不可微,光滑度不够。
3、插值函数在节点处的值与同原函数值一致。
五、结论:
运用分段线性插值的方法进行插值时,插值节点选取越是密集,则构造的插值函数越逼近原函数。
六、参考文献:
1、《数值分析》汪卉琴,刘目楼编著冶金工业出版社;
2、《数值分析》,李庆扬,王能超,易大义,清华大学出版社(第四版)
3、《数值分析与实验》,薛毅,2005,北京工业大学出版社。
附录:
1、程序:
%已知函数‘fun’
》function y=fun(x)
y=1./(1+x.^2);
%分段线性插值函数
》function f=inter1(x,y,xi)
n=length(x);
m=length(xi);
for j=1:m
for i=1:n-1
if xi(j)>=x(i)&xi(j)<=x(i+1)
f(j)=y(i)+(xi(j)-x(i))*((y(i+1)-y(i))/(x(i+1)-x(i)));
end
end
end
%分段内中点的函数值与插值函数值的差值均值;
》function [d,ave]=dif(x,xi)
n=length(xi);
y=fun(x);
s=0;
for i=1:n-1
d(i)=(fun((xi(i)+xi(i+1))./2)-inter1(x,y,(xi(i)+xi(i+1))./2));
s=s+d(i);
end
ave=abs(s/(n-1));
%描绘出节点数从3至20时的误差均值图像
》function ave2=dp(xi)
ave=[];j=[];
for i=3:20
x=linspace(-5,5,i);
[d,ave(i-2)]=dif(x,xi);
end
j=[3:20];
plot(j,ave,'r-o');
ave2=ave
%运行过程及结果:
>> xi=-5:5
xi =
-5 -4 -3 -2 -1 0 1 2 3 4 5 >> x=linspace(-5,5,3)
x =
-5 0 5
>> y=fun(x)
y =
0.0385 1.0000 0.0385
>> fplot('fun',[-5,5])
>> hold on
>> plot(x,y,'ro-')
>> x=linspace(-5,5,5)
x =
-5.0000 -2.5000 0 2.5000 5.0000
>> y=fun(x)
y =
0.0385 0.1379 1.0000 0.1379 0.0385