分段线性插值
- 格式:wps
- 大小:62.53 KB
- 文档页数:2
1.4分段插值 一.分段线性插值
即用折线代替曲线。
设f (x )连续 优点:计算简单,适用于光滑性要求不高的插值问题。
缺点:分段插值函数只能保证连续性,失去了原函数的光滑性。
二.分段三次(Hermite )插值
不少实际插值问题不仅要求函数值相等,而且还要求导数值也相等。
这就导致下面的Hermite 插值。
并满足: 从而
由此条件可得: 类似可得的表达式。
下面是matlab 函数pieceline (x ,y ,u )实现分段线性插值多项式的计算。
function v=pline(x,y,u) delta=diff(y)./diff(x); n=length(x); k=ones(size(u)); for j=2:n-1
k(x(j)<=u)=j; end
s=u-x(k);
v=y(k)+s.*delta(k);
在每个区间 上,用1阶多项式 (直线) 逼近 f (x):
]
,[1+i i x x 1111
1)()(++++--+--=≈i i
i i
i i i i y x x x x y x x x x x P x f ]
,[for 1+∈i i x x x 记 易证:当 ||max 1i i x x h -=+0→h )()(1x f x P h →一致
给定
000
,...,;,...,;,...,,n n n x x y y y y ''在 上利用两端点的 y 及 y' 构造3次Hermite 函数。
]
,[1+i i x x 31111()()()()()i i i i i i i i S x y x y x y x y x ααββ++++=+++'
'
3311'331 1.
(), (),(), ()i i i i i i i i S x y S x y S x y S x y ++++===='''
1111111111111()1, ()0, ()0, ()0,()0, ()1, ()0, ()0,
()0, ()0, ()1, ()0,
()0, ()i i i i i i i i i i i i i i i i i i i i i i i i i i i i x x x x x x x x x x x x x x ααββααββααββαα+++++++++++++==============''''''1110, ()0, () 1.i i i i x x ββ+++==''
1111122()12,2()().i i i i i i i i i i i
i x x x x x x x x x x x x x x x x αβ+++++--⎛⎫⎛
⎫=+ ⎪ ⎪--⎝⎭⎝
⎭-⎛⎫
=- ⎪-⎝⎭
程序中,pline是分段线性插值函数;
输入参数x——给定的数据点的横坐标所组成的向量
Y——给定的数据点的纵坐标所组成的向量
U——需要计算的点所组成的向量
输出参数v——u所对应的分段线性插值多项式的值,即v(i)=s1(u(i)),其中s1是未来满足分段线性插值多项式
Detla是计算差商的最后计算s、v。