插值及其误差

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(1)用tan x 表格直接计算tan 1.569 5。

(2)用sin 1.569 5和cos 1.569 5来计算tan 1.569 5。并讨论这两个结果中误差变化的原因。

插值:求过已知有限个数据点的近似函数。 1 插值方法

下面介绍几种基本的、常用的插值:拉格朗日多项式插值、牛顿插值、分段线性插

值、Hermite 插值和三次样条插值。 1.1 拉格朗日多项式插值 1.1.1 插值多项式

用多项式作为研究插值的工具,称为代数插值。其基本问题是:已知函数

()f x 在区间[],a b 上1n +个不同点01,,,n x x x 处的函数值

()()0,1,

,i i y f x i n ==,求一个至多n 次多项式 ()01n n n x a a x a x ϕ=++

+(1)

使其在给定点处与()f x 同值,即满足插值条件

()()n i i i x f x y ϕ==(2)

()n i x ϕ称为插值多项式,()0,1,,i x i n =称为插值节点,简称节点,[],a b 称为插

值区间。从几何上看,n 次多项式插值就是过1n +个点()()(),0,1,,i i x f x i n =,

作一条多项式曲线()n y x ϕ=近似曲线()y f x =。

n 次多项式(1)有1n +个待定系数,由插值条件(2)恰好给出1n +个方程

01000

01111

01n

n n n n n

n n n

a a x a x y a a x a x y a a x a x y ⎧+++=⎪

+++=⎪⎨⎪

⎪+++=⎩(3)

记此方程组的系数矩阵为A ,则

()0

1111det 1n n

n n

n

x x x x A x x =

是范德蒙特(Vandermonde)行列式。当01,,,n x x x 互不相同时,此行列式值不为

零。因此方程组(3)有唯一解。这表明,只要1n +个节点互不相同,满足插值要求(2)的插值多项式(1)是唯一的。 插值多项式与被插函数之间的差

()()()n n R x f x x ϕ=-

称为截断误差,又称为插值余项。当()f x 充分光滑时,

()()()()()

()()()11,,1!

n n n n f R x f x L x x a b n ξωξ++=-=

∈+

其中()()10

n

n j j x x x ω+==∏-。

1.1.2 拉格朗日插值多项式

实际上比较方便的作法不是解方程(3)求待定系数,而是先构造一组基函数

()()()()()()()()()

()

0110110,0,1,,i i n i i i i i i i n n

j j i j

j i

x x x x x x x x l x x x x x x x x x x x i n x x -+-+=≠----=

-----=∏

=-

()i l x 是n 次多项式,满足 ()0

1i j j i l x j i

≠⎧=⎨

=⎩

()()000

n

n

n j

n i i i j i i i j j i x x L x y l x y x x ===≠⎛⎫

- ⎪==∏

⎪-⎝⎭

∑∑(4) 上式称为n 次 Lagrange 插值多项式,由方程(3)解的唯一性,1n +个节点的n 次Lagrange 插值多项式存在唯一。 1.1.3 用Matlab 作Lagrange 插值

Matlab 中没有现成的Lagrange 插值函数,必须编写一个M 文件实现Lagrange 插值。

设n 个节点数据以数组0,0x y 输入,m 个插值点以数组x 输入,输出数组y 为

m 个插值。编写一个名为lagrange.m 的M 文件: function y=lagrange(x0,y0,x); n=length(x0);m=length(x); for i=1:m z=x(i); s=0.0; for k=1:n p=1.0;

for j=1:n if j~=k

p=p*(z-x0(j))/(x0(k)-x0(j)); end end s=p*y0(k)+s; end y(i)=s; end

sin 1.5695=0.9999991749999999 cos 1.5695=0.001296300000000056 tan 1.5695=819.0342874999274 1.2 分段线性插值

1.2.1 插值多项式的振荡

用Lagrange 插值多项式()n L x 近似()f x ()a x b ≤≤,虽然随着节点个数的增加,()n L x 的次数n 变大,多数情况下误差()n R x 会变小。但是n 增大时,()n L x 的光滑性变坏,有时会出现很大的振荡。理论上,当n →∞,在[],a b 内并不能保证()n L x 处处收敛于()f x 。Runge 给出了一个有名的例子:

()[]2

1

,5,51f x x x

=

∈-+

对于较大的x ,随着n 的增大,()n L x 振荡越来越大,事实上可以证明,仅当

3.63x ≤时,才有()()lim n n L x f x →∞

=,而在此区间外,()n L x 是发散的。

高次插值多项式的这些缺陷,促使人们转而寻求简单的低次多项式插值。 1.2.2 分段线性插值 简单地说,将每两个相邻的节点用直线连起来,如此形成的一条折线就是分段线性插值函数,记作()n I x ,它满足()n i i I x y =,且()n i i I x y =在每个小区间

[]1,i i x x +上是线性函数()0,1,

,i n =。

()n I x 可以表示为

相关文档
最新文档