考察分段线性插值

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档