常见插值法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
其中插值基函数是
ln (x)
n i0
(x xj) (xi x j )
,(i,j=0,1
2...n)
。
i j
其插值余项为
Rn(x)
f (x) Ln(x)
f (n1) ( ) (n 1)!
n1(
x),
(b).matlab 实现方法:
Matlab 没有直接求解的相关函数,现编译如下:
function yi = Lagarange_chazhi(x,y,xi)
______________________________________________________________________________________________________________
常见插值法
【摘 要】插值方法在数值分析中起着非常重要的作用。在此介绍一些常见的插值方法及 其应用范例。
其插值余项为
R2n1( x)
f (2n2) ( ) (2n 2)!
2 n1
(
x)
(a,b) 且与 x 有关。
图(2) 分段线性插值
(b).matlab 实现方法:
Matlab 中没有现成的函数,现编译如下:
精品资料
______________________________________________________________________________________________________________
导数。
xn yn yn
表(2) Hermite 插值法
由于若 f (x) C1[a, b]且已知 f (x) 函数表及导
数表,则存在唯一不超过 2n 1 次多项式 H 2n1(x) 满
足插值条件
H2n1(xi ) yi
H2n1(xi )
y' i
(i 0,1,....,n)
则,通过求解方程,可得出插值函数
function yi = Hermite(x,y,der_y,xi)
the evaluator PPVAL and the spline utility UNMKPP.X
%对x,y进行Hermite插值,其各节点的导数为der_y %返回值为带入矩阵xi后的函数值
must be a vector.”
end
format long
lag_hanshu = lag_hanshu+la;
%求解出插值函数
end
yi = subs( lag_hanshu,'X',xi);
%返回插值函数输入为xi时的值
End
(c).方法缺陷:当插值点个数 n 7 时,将产生
精品资料
______________________________________________________________________________________________________________
yn
表(1) 插值点 点上取已知值,在区间的其他点上用这特定函数的值 作为函数 f (x)的近似值,这种方法称为插值法。如果这 特定函数是多项式,就称它为插值多项式。
2.常见的插值法及其构造
Lagrange 插值法
(a).公式推导:
表(1)的 Lagrange 插值的插值多项式
n
Ln (x) f (xi )li (x) ,(j=0,1,2....n)。 i0
为避 龙格
x1 x2
分段 a x0
免高次产生的
xn1
现象,采用
xn b 插值,相
邻两节点间的函数为一次线性函数, 图形为线段,在[a,b]
间为折线,如图(2)。
(a).插值原理:
针对分段插值法不光滑的问题,Hermite 插值引入插
值点的
x x0 f (x) y0 f (x) y0
x1 y1 y1
if length(x) == length(y) if length(y) == length(der_y)
⑤ 插值法关系图
n = length(x); end else
%求插值个数
lagarange 插值法
龙格 现象
error('!!!y的项数应与x相同!!!');
end
%对参数的判断
lag_hanshu = 0;
syms X;
for (l = 1:m)
%构造插值基函数
la = y(l);
for a = (1:l-1)
la = la*(X-x(a))/(x(l)-x(a));
end
for a = (l+1:m)
la = la*(X-x(a))/(x(l)-x(a));
【关键字】数值分析;插值方法;应用;
1. 插值法定义
插值法又称“内插法”,是利用函数 f (x)在某区间 中插入若干点的函数值,作出适当的特定函数,在这些
其中 (a,b) ,n1(x)
n i0
(x xj) (xi x j )
i j
x0
x1
x2 ....... xn-1
xn
y0
y1
y2 ....... yn-1
end
(c).方法缺陷:在节点处曲线不平滑。
保形插值(Hermite 插值)
图(1) Lagarange 插值法的龙格现象
4,5...11,可以看出,当 n 7 后,它的\插值函数
在两个端点处发生剧烈的波动,造成较大的误差。所以拉 格朗日插值法一般不适用于高次插值。
分段线性插值法
(a).插值原理:
%求插值个数
m1 = length(y);
if m~=m1
error('!!!y的项数应与x相同!!!');
end
%对参数的判断
hold on;
for ii = 1:m-1
plot([x(ii) x(ii+1)],[y(ii) y(ii+1)]);
%画出线段
end
plot(x,y,'o');
%画出插值点
龙格现象:
经典例子,对
f
(x)
1 (1 25 x2 )
进行拉格朗日插
值图(1)中从左到右,从上到下,n分别为
(b).matlab 实现方法:
Matlab 中没有现成的函数,现编译如下:
function Fenduan_liner(x,y)
%对x,y进行分段线性插值
%用虚线画出插值后的函数
m = length(x);
% 求拉格朗日插值,并返回一个输入为xi时的函数值
% x 为插值点向量,至少有三项
% y 为插值点值的向量,项数与x相同
m = length(x);
%求插值个数
wk.baidu.com
m1 = length(y);
if m<=2
error('项数不足!');
end
if m~=m1
error('!!!y的项数应与x相同!!!');