分段插值程序Word文档下载推荐.docx
《分段插值程序Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《分段插值程序Word文档下载推荐.docx(9页珍藏版)》请在冰点文库上搜索。
-1
23
45
解:
在matlab中编写M-文件如下:
x=[1:
12];
fx=[1223434-13425233494523];
xi=[1:
0.2:
y=interp1(x,fx,xi);
plot(x,fx,xi,y)
得到如下结果:
12.000056.4000100.8000145.2000189.6000234.0000194.0000
154.0000114.000074.000034.000027.000020.000013.0000
6.0000-1.00006.000013.000020.000027.000034.0000
27.600021.200014.80008.40002.00002.60003.2000
3.80004.40005.00008.600012.200015.800019.4000
23.000025.200027.400029.600031.800034.000029.0000
24.000019.000014.00009.000016.200023.400030.6000
37.800045.000040.600036.200031.800027.400023.0000
以下为详细讲解:
目录
一.问题的重述………………………………………………1
二.问题的分析………………………………………………1
三.问题的假设………………………………………………1
四.分段线性插值原理………………………………………2
五.问题的求解………………………………………………2
六.插值方法的优劣性分析…………………………………5
附录……………………………………………………………6
一.问题的重述
已知
用分段线性插值法求插值,绘出插值结果图形,并观察插值误差。
1.在[-6,6]中平均选取5个点作插值
2.在[-6,6]中平均选取11个点作插值
3.在[-6,6]中平均选取21个点作插值
4.在[-6,6]中平均选取41个点作插值
二.问题的分析
在数值计算中,已知数据通常是离散的,如果要得到这些离散点以外的其他点的函数值,就需要根据这些已知数据进行插值。
而本题只提供了取样点和原函数g(x).分析问题求解方法如下:
(1)利用已知函数式
计算取样点X对应的函数值Y;
将X,Y作为两个等长的已知向量,分别描述采样点和样本值.因此被插值函数是一个单变量函数,可利用一维插值处理该数据插值问题。
一维插值采用的方法通常有拉格朗日多项式插值(本题采用3次多项式插值),3次样条插值法和分段线性插值。
(2)分别利用以上插值方法求插值。
以0.5个单位为步长划分区间[-6,6],并将每一点作为插值函数的取样点。
再根据插值函数计算所选取样点的函数值。
最后再利用所得函数值画出相应的函数图象,并与原函数g(x)的图象进行对比。
三.问题的假设
为了解决上述分析所提到的问题,本题可以作出如下假设:
(1)假设原函数g(x)仅作为求解取样点对应的样点值的函数关系式。
而其他各点的函数值都是未知量,叙用插值函数计算。
(2)为了得到理想的对比函数图象,假设g(x)为已知的标准函数。
可以选取0.5个单位为步长划分区间[-6,6],分别计算插值函数和标准函数g(x)在该区间的取样点的函数值。
画出函数图象进行对比。
四.分段线性插值原理
给定区间[a,b],将其分割成a=
<
<
…<
=b,已知函数y=f(x)在这些插值结点的函数值为
=f(
)(k=0,1,…,n)求一个分段函数
(x),使其满足:
(1)
(
)=
,(k=0,1,…,n);
(2)在每个区间[
]上,
(x)是个一次函数。
易知,
(x)是个折线函数,在每个区间[
]上,(k=0,1,…,n)
于是,
(x)在[a,b]上是连续的,但其一阶导数是不连续的。
于是即可得到如下分段线性插值函数:
其中
五.问题的求解
在MATLAB中实现分段线性插值,最近点插值,3次多项式插值,3次样条插值的命令为interp1,其调用格式为:
Y1=interp1(X,Y,X1,’method’)
函数根据X,Y的值,计算函数在X1处的值。
X,Y是两个等长的已知向量,分别描述采样点和样本值,X1是一个向量或标量,描述欲插值点,Y1是一个与X1等长的插值结果。
method是插值方法,包括:
linear:
分段线性插值。
它是把与插值点靠近的两个数据点用直线连接,然后在直线让选取对应插值点的数
nearest:
近点插值法。
根据已知两点间的插值点与这两点间的位置远近插值.当插值点距离前点远时,取前点的值,否则取后点的值。
cubic:
3次多项式插值。
根据已知数据求出一个3次多项式,然后根据多项式进行插值。
spline:
3次样条插值。
在每个分段(子区间)内构造一个3次多项式,使其插值函数除满足插值条件外,还要求个节点处具有光滑条件。
再根据已知数据求出样条函数后,按照样条函数插值。
运用Matlab工具软件编写代码(见附录),并分别画出图形如下:
(一)在[-6,6]中平均选取5个点作插值:
(二)在[-6,6]中平均选取11个点作插值:
(三)在[-6,6]中平均选取21个点作插值:
(四)在[-6,6]中平均选取41个点作插值
六.插值方法的优劣性分析
从以上对比函数图象可以看出,分段线性插值其总体光滑程度不够。
在数学上,光滑程度的定量描述是函数(曲线)的k阶导数存在且连续,则称该曲线具有k阶光滑性。
一般情况下,阶数越高光滑程度越好。
分段线性插值具有零阶光滑性,也就是不光滑。
3次样条插值就是较低次数的多项式而达到较高阶光滑性的方法。
总体上分段线性插值具有以下特点:
优点:
1.分段线性插值在计算上具有简洁方便的特点。
2.分段线性插值与3次多项式插值函数在每个小区间上相对于原函数都有很强的收敛性,(舍入误差影响不大),数值稳定性好且容易在计算机上编程实现等优点
缺点:
分段线性插值在节点处具有不光滑性的缺点(不能保证节点处插值函数的导数连续),从而不能满足某些工程技术上的要求。
而3次样条插值却具有在节点处光滑的特点。
附录:
x1=-6:
12/n:
6;
%在四个问题的解答中,n的取值分别为:
4,10,20,40;
y=1./(1+x1.^2)
X=-6:
1:
Y=1./(1+X.^2)
y1=interp1(x1,y,X,'
linear'
)
y2=interp1(x1,y,X,'
spline'
y3=interp1(x1,y,X,'
nearest'
y4=interp1(x1,y,X,'
cublic'
subplot(2,2,1);
plot(X,Y,'
k'
X,y1,'
:
.'
title('
分段线性插值'
);
gridon;
legend('
g(x)'
'
y1'
subplot(2,2,2);
X,y2,'
3次样条插值'
y2'
subplot(2,2,3);
X,y3,'
最近点插值'
y3'
subplot(2,2,4);
X,y4,'
3次多项式插值'
y4'
备注:
运行代码时请输入n的值。