分段插值
- 格式:ppt
- 大小:191.50 KB
- 文档页数:12


分段三次埃尔米特插值
分段线性插值函数的导)(Ix
h数是间断的,若在节点kx(k=0,1,…,n)上除已知函数值
外还给kf出导数值kkmf'(k=0,1,…,n),这样就可构造一个导数连续的分段插值
函数)(Ix
h,它满足条件:
(1).),(,)(I11baCbaCx
h代表区间一ba,阶导数连续的函数集合.
(2)kkhfx)(I,'')(I
kkhfx(k=0,1,…n).
(3))(Ix
h在每个小区间上是三次
1,
kkxx多项式.
由两点三次插值多项式可以知道在)(Ix
h区间上表达
1,
kkxx式为
'2
11
112
112
11)()(21*)()21()()(I
kk
kkk
kkk
kkk
k
kkk
kkk
hfxx
xxxx
xxxx
xxxx
f
xxxx
xxxx
x
)(+'
112
1)(
kk
kkkfxx
xxxx
)(.
分段三次埃尔米特插值比分段线性插值效果明显改善,但这种插值要求给出节点上的导数
值,所要提供的信息太多,其光滑度也不高(只有一阶导数连续),改进这种以克服其缺
点就导致三次样条插值的提出.
三次样条插值
上面讨论的分段插值函数都有一致收敛性,但光滑性比较差,对于像告诉飞机的机翼
形线,船体放样等型值线往往要求有二阶光滑度,即有二阶连续导数.早起工程师制图是,
把富有弹性的细长木条(所谓样条)用压铁固定在样点上,在其他地方让它自由的弯曲,
然后画下长条的曲线,称为样条曲线.样条曲线实际上有分段三次曲线并接而成,在连接点
即样点上要求二阶导数连续,从而数学上加以概括就得到数学样条这一概念.
三次样条函数 定义 若函数baCxS,)(2,并且在每个小区间上是
1,
jjxx三次多项式,其中是给定
分段线性插值
分段线性插值是一种在机器学习、数学、信号处理等领域中广泛应用的方法。分段线性插值的主要目的是为漏洞、持续时间等数据展示提供更好的视觉效果,同时也可以使数据更容易进行处理。
在分段线性插值中,每一段数据都可以看作是一条直线段。通过在相邻数据点之间插入一条直线来实现插值。每个数据点或任意数段可以称为一个插值区间,插值区间内部的数据点都采用一条直线进行插值,直线的斜率由插值区间上下数据点构成。
例如:在一个区间(x1,y1)和(x2,y2)之间进行插值,其中x1
x1计算。最后,我们就可以通过已知的数据点,估计同一段中任意点的y值。
下面我们通过一个实例来进一步解释分段线性插值的应用。
比如我们有一组工作时间数据如下:
|年份| 工作时间 |
|----|----|
| 2010 | 6.5 |
| 2011 | 7.0 |
| 2013 | 7.5 |
| 2015 | 8.0 |
目前,我们需要在2012年估计工作时间。
首先,我们需要找到分段线性插值的区间。2012年的数据点在2011年和2013年之间。因此,我们可以使用2011年和2013年之间的数据点进行插值。
然后,通过计算斜率来确定m和b的值。斜率可以通过公式m = (y2-y1)/(x2-x1)来计算。2011年和2013年的工作时间分别是7.0和7.5,年份分别是2011和2013。因此,斜率为:
(7.5-7.0)/(2013年-2011年)= 0.25/2 = 0.125 插值区间的y截距b可以通过公式b = y1 - m x1来计算。这使得我们可以计算出截距:
接下来,我们就可以使用斜率和截距来计算2012年的工作时间,这将是我们所需的数据点的估计值:
y = mx + b
数值分析作业
姓名:虞驰程
题目:
函数:f(x)=11+x2在[-5,5]上,取n=10,对其进行分段线性插值和拉格朗日插值,在Matlab中实现且绘图。
Matlab实现:
首先定义函数f,在Matlab中用function.m文件编写,具体代码如图1所示:
图1 f(x)函数
定义分段线性插值的基本函数,用function.m文件编写,具体代码如图2所示:
图2 分段线性插值基本函数
定义拉格朗日插值的基本函数,用function.m文件编写,具体代码如图3所示:
图3 拉格朗日插值的基本函数
进行分段线性插值并绘图和原函数进行对比的Matlab实现代码如图4所示:
图4 分段线性插值函数绘制
其结果如图5所示,其中红色代表分段线性插值结果,蓝色代表原函数:
图5 分段线性插值和原函数对比
同理可以进行拉格朗日插值并绘图,其Matlab实现代码如图6所示,其结果如图7所示:
图6 拉格朗日插值函数绘制
图7 拉格朗日插值和原函数对比 最后我们可以将分段线性插值、拉格朗日插值和原函数进行对比,其实现代码如图8所示,最终结果如图9所示(黑色代表原函数,蓝色是分段线性插值,红色是拉格朗日插值):
图8 两种插值方法和原函数对比实现
图9 两种插值方法和原函数对比
1 实验报告
实验项目 插值法 实验日期 2016/9/30
理论内容 分段线性插值与三次样条插值 授课日期 2016/9/0
实验室名称 文理管203 微机编号 E1
实验目的及要求:
1、学会常用的插值方法,求函数的近似表达式,以解决其它实际问题;
2、明确插值多项式和分段插值多项式各自的优缺点;
3、熟悉插值方法的程序编制;如果绘出插值函数的曲线,观察其光滑性。
实验内容:
编写分段线性插值法及三次样条插值法通用子程序,依据数据表
ix 2.0 2.1 2.2 2.3 2.4
ix 1.414214 1.449138 1.483340 1.516575 1.549193
构造相应的插值多项式,并计算函数xxf)(在15.2x的近似值。
2 实验步骤及程序:
1、分段线性插值法流程图
是 否 是 输入xi,yi, i=1,⋯,n 及x
ia⟵1,ib⟵n
ib−ia>1?
im⟵ia+ib2的整数部分
xm<𝑥?
ia⟵im ib⟵im 执行求拉格朗日插值的程序,计算以ia,ib为节点的线性插值函数在插值点的函数值P1 x
输出p1(𝑥) 否
3 2、分段线性插值法源程序:
function [f] = fenduan(~,~,~,~)
x=[2.0 2.1 2.2 2.3 2.4];
y=[1.414214 1.449138 1.483340 1.516575 1.549193];
y_1=0.5*y.^(-0.5);
x0=2.15;
f = 0.0;
if(length(x) == length(y))
if(length(y) == length(y_1))
n = length(x);
else
disp('y和y的导数的维数不相等!');
return;
end
else
disp('x和y的维数不相等!');