当前位置:文档之家› 第二章 插值法

第二章 插值法

第二章  插值法
第二章  插值法

第二章插值法

一、内容分析与教学建议

本章内容统称为插值法,包括Lagrange插值、逐步线性插值、Newton 插值、Hermite 插值、分段多项式插值、有理函数插值等内容,既是教学的重点。

在教学上,注意由浅入深,由直观到抽象,多用实例和图形作解释,建立插值概念,注意讲解上述插值是如何根据实际问题要求的提高而先后发展起来的。培养学生分析问题和解决问题的能力。

(一)L agrange插值

1、回顾《高等数学》的Taylor公式,讲解Taylor公式是根据某一点的多个信息得到近似多项式的插值思想。

2、将上述思想应用到多点的信息,即根据所给的多点的数据,建立插值多项式。

3、讲解过程中,沿着“发现问题→提出解决方法→方法的存在性和惟一性→建立Lagrange插值公式→误差公式”这样一个思路去讲解Lagrange插值的思想和方法。

(二)逐步线性插值

1、讲解为什么要建立逐步线性插值?这是由于Lagrange插值没有承袭性,当需要增加一个插值节点时,以前所做的工作要全部重做。

2、逐步线性插值是一个将高次插值转化成逐步线性插值的迭代过程,正是这一点使得逐步线性插值具有了承袭性。

3、强调逐步线性插值是求一点处近似值的快速方法,不太适合建立插值解析式。

(三)N ewton插值

1、Newton 插值克服了上述两类插值的缺点,继承了它们的优点:即具有承袭性,又是一个完整的解吸式,便于理论研究和分析。

2、首先掌握差分和差商的概念以及它们的性质,在此基础上建立Newton 插值公式和误差公式。

3、Newton 插值公式实际上是Lagrange插值公式的另外一种表现形式,这揭示了一种

现象:将已有成果通过引入新思想、新方法,对其进行加工、改造,完全有可能产生新的、更好的成果。

(四)H ermite插值

1、上述插值都是根据未知函数若干个点处的函数值,建立插值公式或算法。为了提高精度,与必要根据未知函数在若干个点处更多的信息(例如:一阶、二阶导数)建立插值公式。这就是Hermite插值的思想。

2、要建立Hermite插值公式,一般是根据所给条件,确定插值基函数,仿照建立Lagrange 插值公式的过程建立Hermite插值公式。

(五)分段多项式插值

1、为了克服高次多项式插值出现的Runge现象,提出将插值区间划分为若干个区间,在每个小区间上建立低次插值公式,再将各个小区间上的低次插值曲线连接起来,构成整个插值区间上的插值函数,从而达到高精度的要求,这就是分段多项式插值的思想。

2、在分段插值中,分段线性插值和分段三次Hermite插值是重点,分段二次插值可略讲。

3、这一部分的内容建议用多媒体演示,使学生有一个直观的印象,为以后的样条插值做准备。

(六)有理函数插值

1、首先阐述要引入有理函数插值的必要性:由于多项式插值无法处理含有极点的情形,而有理函数却能很好地处理上述情况,因此建立有理函数插值是完全必要的。

2、讲清楚研究有理函数插值与研究多项式插值的不同点,即多项式插值是插值、惟一的;而有理函数插值的存在性问题是一个迄今尚未完全解决的问题。

3、本节所介绍的判断有理函数插值存在性的方法是一个比较新的结果,一定程度上解决了有理函数插值存在性的问题,但还是没有彻底解决。

4、本节介绍的连分式方法是用连分式处理有理函数插值的有效方法,尤其是连分式的递推性质,它是有理函数插值的一个非常重要的算法。为了介绍连分式,首先要引入倒差商和反差商的概念,并与差商的概念进行比较。重点介绍逐步有理插值的方法。

本章结束时,建议安排一次上机实习,加深和巩固学生对本章内容和方法的了解和掌握。

二、补充例题

例1 已知函数()f x 的函数表如下:

求4次Newton 插值多项式4()P x ,并由此求(0.596)f 的近似值,然后估计误差。

分析:表中给6对数据,故最高可构造5次多项式。但由于0.596接近于00.40x =,因此可取前5对数据来构造差商表。

解 构造差商表如下

故4次Newton 插值多项式为

4()0.41075 1.11600(0.40)0.28000(0.40)(0.55)P x x x x =+-+--

0.19733(0.4)(0.55)(0.65)0.03134(0.4)(0.55)(0.65)(0.80)x x x x x x x +---+----

于是4(0.596)(0.596)0.63195f P ≈=.

由于本题没有给出()f x 的具体表达式,估计误差时只能有Newton 型插值余项

011[,,,,]()n n f x x x x x ω+ 来做,但由于(0.596)0.63195f ≈,故只能得到近似误差

401(0.596)[,,,,0.596]n R f x x x =?

(0.5960.4)(0.5960.55)(0.5960.65)(0.5960.80)(0.5960.90)-----

41.10.1960.0460.0540.2040.3040.3321510-≤?????≤?.

例2 设要将sin x 在2[0,]π的值列成等距分布的一张数表,步长h 最大不超过多少才能保证利用三点插值公式求非列表点处的sin x 的值,其截断误差不超过610-?这里假定所用

的数表值是精确的,计算时也不考虑舍入误差。

分析:本题要求h 应取多大才能保证截断误差不超过规定的界限,并不要求具体计算正弦函数值,因此只需对误差估计式进行分析计算即可。

解 由题意知,所采用的是三点等距插值,故可设插值节点为11,,k k k x x x -+;由于步长为h ,故11,k k k k x x h x x h -+=-=+. 由误差公式

(3)

21()()()()()3!k k k R x f x x h x x x x h ξ=

-+--- 11

cos ()()()()()()3!6

k k k k k k x x h x x x x h x x h x x x x h ξ=-+---≤-+---, 令()()()()k k k g x x x h x x x x h =-+---,由()0g x '=,

即223()0k x x h --=解得()g x 的

驻点:k x

x =± . 故

11

311max ()max{(),(),(),()}()k k k k k x x x g x g x g x g x g x

g x -+-+≤≤=== ,

所以 3321()6R x ≤=,令3610-≤,解得

13

6210 2.49810

h --?

≤≈???

故当22.49810h -≤?时,就能保证62()10R x -≤.

注记:估计误差界有两个关键,一个是()()k f ξ的估计,一个是()g x 上界的估计。在

()g x 上界的估计时,可能有许多别的粗糙的办法。例如,当1k k x x x +<<时,

1

2k x x h --≤,2

1()()2k k h x x x x +??--≤ ???

当1k k x x x -<<时,1

2k x x h +-≤,2

1()()2k k h x x x x -??

--≤ ???. 故2

321()26212h h R x h ??≤??= ???

.

令3

61012

h -≤,得6132(1210) 2.28910h --≤?≈?. 不同的估计方法自然有不同的h 的取值范围。用求()g x 的驻点的方法所得结果最好。

例3 求一个次数不高于3的多项式3()P x ,使它满足下列插值条件:

并估计插值误差。

分析:这是一个带导数的插值问题,但有不是Hermite 插值问题。解决着类问题的方法很多,但基本的思想是灵活运用插值法来求解。下面给出两种常见的做法。

解法一 (插值待定系数法)

设2()P x 满足222(1)2,(2)4,(3)12P P P ===,则22()376P x x x =-+. 为求出3()P x ,根

据插值条件,3()P x 应具有形式

32()()(1)(2)(3)P x P x k x x x =+---,

这样的3()P x 自然满足3()(0,1,2)i i P x y i ==. 为确定待定系数k ,可用条件3(2)3P '=.

32(2)(2)[(22)(23)(21)(23)(21)(22)]3P P k ''=+--+--+--=,

即2(2)3P k '-=,由2(2)5P '=,得2k =. 故

32()()2(1)(2)(3)P x P x x x x =+---32

29156x x x =-+-.

解法二 (插值基函数法)

设节点编号为1231,2,3x x x ===,则3()P x 可写成

311223322

()()()()()P x l x y l x y l x y l x y '=+++ , 其中()(1,2,3)i l x i =及2()l x 均为次数不超过3的多项式,且满足:

112131211

2

2

2

3

2

2

2

132********

13121()1,()0,()0,()0,

()0,()1,()0,()0,

()0,()0,()1,()0,

()0,()0,()0,()1,l x l x l x l x l x l x l x l x l x l x l x l x l x l x l x l x ============''''====

由1()l x 所满足的条件知,2123()()()l x A x x x x =--,根据11()1l x =,得212131

()()

A x x x x =--,

故有223121213()()

()()()

x x x x l x x x x x --=--. 同理可得

2321

()(1)(2),()(1)(2)(3)2

l x x x l x x x x =--=---- .

最后求2()l x . 根据2()l x 满足的条件,知

213()()()()l x ax b x x x x =+--.

利用222

2()1,()0l x l x '==,得 22123212

32213()()()1,()()()(2)0,ax b x x x x a x x x x ax b x x x +--=??--++--=? 即 21,

0,a b a +=-??

=? 解得20,1,()(1)(3)a b l x x x ==-=---. 故 32

3()29156P x x x x =-+-.

下面求误差3()R x . 根据题意,33()()()R x f x P x =-应具有形式:

23()()(1)(2)(3)R x h x x x x =---.

做辅助函数23()()()()(1)(2)(3)t f t P t h x t t t ?=-----,

则()t ?在点,1,2,3x 处有5个零点(2t =为二重零点),反复应用Rolle 定理,得:至少存在一个(1,3)ξ∈,使得(4)()0?ξ=, 即(4)(4)()()4!()0f h x ?ξξ=-?=,解得(4)()()h x f ξ=. 故

(4)23()

()(1)(2)(3)4!

f R x x x x ξ=---.

例4 设函数()y y x =在0x 处具有1n +导数,证明当0h →时,Newton 插值多项式

200

00002

()()()()1!2!n y y N x y x x x x x x h h h ??=+-+---+??

0000()()[(1)]!n n y x x x x h x x n h n h

?+------? 变为Taylor 公式

2()000000011

()()()()()()()()2!!

n n n P x y x y x x x y x x x y x x x n '''=+-+

-++- . 分析:本题()n N x 是以等距节点0000,,,(1),x x h x n h x nh ++-+ 为插值节点的Newton 插值多项式,要证明当0h →时,()()n n N x P x →. 由于

0000()()[(1)]()(0)n x x x x h x x n h x x h ------→-→ ,

只需证明当0h →时,()0

0()k k k y y x h

?→对1,2,,k n = 成立即可,而这这一点可利用差分与

导数的关系来证。

证 由用差分与导数的关系知,存在00(,)x x nh ξ∈+,使

()()0

0()()k k k k

y y y x kh h

ξθ?==+,01θ<<, 故有()()0

0000

lim lim ()()k k k k h h y y x kh y x h θ→→?=+=,1,2,,k n = .

又因为00000

lim()()[(1)]()k h x x x x h x x k h x x →------=- ,1,2,,k n = ,

所以 0

lim ()()n n h N x P x →=.

牛顿插值法原理及应用

牛顿插值法 插值法是利用函数f (x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数f (x)的近似值。如果这特定函数是多项式,就称它为插值多项式。当插值节点增减时全部插值基函数均要随之变化,这在实际计算中很不方便。为了克服这一缺点,提出了牛顿插值。牛顿插值通过求各阶差商,递推得到的一个公式: f(x)=f[x0]+f[x0,x1](x-x0)+f[x0,x1,x2](x-x0)(x-x1)+...f[x0,...xn](x-x0 )...(x-xn-1)+Rn(x)。 插值函数 插值函数的概念及相关性质[1] 定义:设连续函数y-f(x) 在区间[a,b]上有定义,已知在n+1个互异的点 x0,x1,…xn上取值分别为y0,y1,…yn (设a≤ x1≤x2……≤xn≤b)。若在函数类中存在以简单函数P(x) ,使得P(xi)=yi,则称P(x) 为f(x)的插值函数. 称x1,x2,…xn 为插值节点,称[a,b]为插值区间。 定理:n次代数插值问题的解存在且唯一。

牛顿插值法C程序 程序框图#include void main() { float x[11],y[11][11],xx,temp,newton; int i,j,n; printf("Newton插值:\n请输入要运算的值:x="); scanf("%f",&xx); printf("请输入插值的次数(n<11):n="); scanf("%d",&n); printf("请输入%d组值:\n",n+1); for(i=0;i

牛顿插值法试验报告

. 牛顿插值法一、实验目的:学会牛顿插值法,并应用算法于实际问题。 x?x)f(二、实验内容:给定函数,已知: 4832401.2)?.?1449138f(2.f.f(20)?1.414214(2.1) 549193.)?1f(2.4516575(f2.3)?1. 三、实验要求:以此作为函数2.15插值多项式在处的值,用牛顿插值法求4 次Newton( 1)2.15?N(2.15)。在MATLAB中用内部函数ezplot绘制出的近似值4次Newton插值多项式的函数图形。 (2)在MATLAB中用内部函数ezplot可直接绘制出以上函数的图形,并与作出的4次Newton插值多项式的图形进行比较。 四、实验过程: 1、编写主函数。打开Editor编辑器,输入Newton插值法主程序语句: function [y,L]=newdscg(X,Y,x) n=length(X); z=x; A=zeros(n,n);A(:,1)=Y';s=0.0; p=1.0; for j=2:n for i=j:n A(i,j)=(A(i,j-1)- A(i-1,j-1))/(X(i)-X(i-j+1)); end end C=A(n,n); for k=(n-1):-1:1 C=conv(C,poly(X(k))); d=length(C);C(d)=C(d)+A(k,k); end y(k)= polyval(C, z); L(k,:)=poly2sym(C); 0 / 3 . %%%%%%%%%%%%%%%%%% t=[2,2.1,2.2,2.3,2.4]; fx=sqrt(t); wucha=fx-Y; 以文件名newdscg.m保存。 2、运行程序。 (1)在MATLAB命令窗口输入: >> X=[2,2.1,2.2,2.3,2.4]; Y =[1.414214,1.449138,1.483240,1.516575,1.549193]; x=2.15;[y,P]=newdscg(X,Y,x) 回车得到:

第五章 信号的抽取与插值

第5章信号的抽取与插值 5.1前言 至今,我们讨论的信号处理的各种理论、算法及实现这些算法的系统都是把抽样频率f视为恒定值,即在一个数字系统中只有一个抽样率。但是,在实际工作中,我们经常会s 遇到抽样率转换的问题。一方面,要求一个数字系统能工作在“多抽样率(multirate)”状态,以适应不同抽样信号的需要;另一方面,对一个数字信号,要视对其处理的需要及其自身的特征,能在一个系统中以不同的抽样频率出现。例如: 1. 一个数字传输系统,即可传输一般的语音信号,也可传输播视频信号,这些信号的频率成份相差甚远,因此,相应的抽样频率也相差甚远。因此,该系统应具有传输多种抽样率信号的能力,并自动地完成抽样率的转换; 2. 如在音频世界,就存在着多种抽样频率。得到立体声声音信号(Studio work)所用的抽样频率是48kHz,CD产品用的抽样率是44.1kHz,而数字音频广播用的是32kHz[15]。 3. 当需要将数字信号在两个具有独立时钟的数字系统之间传递时,则要求该数字信号的抽样率要能根据时钟的不同而转换; 4.对信号(如语音,图象)作谱分析或编码时,可用具有不同频带的低通、带通及高通滤波器对该信号作“子带”分解,对分解后的信号再作抽样率转换及特征提取,以实现最大限度减少数据量,也即数据压缩的目的; 5. 对一个信号抽样时,若抽样率过高,必然会造成数据的冗余,这时,希望能在该数字信号的基础上将抽样率减下来。 以上几个方面都是希望能对抽样率进行转换,或要求数字系统能工作在多抽样率状态。近20年来,建立在抽样率转换理论及其系统实现基础上的“多抽样率数字信号处理”已成为现代信号处理的重要内容。“多抽样率数字信号处理”的核心内容是信号抽样率的转换及滤波器组。 减少抽样率以去掉过多数据的过程称为信号的“抽取(decimatim)”,增加抽样率以增加数据的过程称为信号的“插值(interpolation)。抽取、插值及其二者相结合的使用便可实现信号抽样率的转换。 滤波器组,因名思义,它是一组滤波器,它用以实现对信号频率分量的分解,然后根 124

牛顿插值法C语言程序

#include #include #define N 6 float sub(float a[],float b[],float x,float e); void main(void) { float u[N]={100,121,144,169,196,225}; float v[N]={10,11,12,13,14,15}; float x,y,e,*p1,*p2; printf("Input number x E=:"); scanf("%f%e",&x,&e); p1=u; p2=v; y=sub(p1,p2,x,e); printf("y=%f\n",y); } float sub(float *pp1,float *pp2,float x,float e) { float a[N],b[N],t[N],y,y1,c; int i,k; for(i=0;i

计算方法简明教程插值法习题解析

第二章 插值法 1.当1,1,2x =-时,()0,3,4f x =-,求()f x 的二次插值多项式。 解: 0120121200102021101201220211,1,2, ()0,()3,()4;()()1 ()(1)(2)()()2()()1 ()(1)(2) ()()6 ()()1 ()(1)(1) ()()3 x x x f x f x f x x x x x l x x x x x x x x x x x l x x x x x x x x x x x l x x x x x x x ==-===-=--==-+-----==------= =-+-- 则二次拉格朗日插值多项式为 2 20 ()()k k k L x y l x ==∑ 0223()4() 14 (1)(2)(1)(1)23 537623 l x l x x x x x x x =-+=---+ -+= +- 2.给出()ln f x x =的数值表 用线性插值及二次插值计算的近似值。 解:由表格知, 01234012340.4,0.5,0.6,0.7,0.8;()0.916291,()0.693147()0.510826,()0.356675()0.223144 x x x x x f x f x f x f x f x ======-=-=-=-=- 若采用线性插值法计算ln 0.54即(0.54)f , 则0.50.540.6<<

2 112 1 221 11122()10(0.6)()10(0.5)()()()()() x x l x x x x x x l x x x x L x f x l x f x l x -==----= =---=+ 6.9314 7(0.6) 5.10826( x x =--- 1(0.54)0.62021860.620219L ∴=-≈- 若采用二次插值法计算ln 0.54时, 1200102021101201220212001122()() ()50(0.5)(0.6) ()() ()() ()100(0.4)(0.6) ()()()() ()50(0.4)(0.5) ()() ()()()()()()() x x x x l x x x x x x x x x x x l x x x x x x x x x x x l x x x x x x x L x f x l x f x l x f x l x --==------==-------= =----=++ 500.916291(0.5)(0.6)69.3147(0.4)(0.6)0.51082650(0.4)(0.5 x x x x x x =-?--+---?--2(0.54)0.61531984 0. 615320L ∴=-≈- 3.给全cos ,090x x ≤≤ 的函数表,步长1(1/60),h '== 若函数表具有5位有效数字,研究用线性插值求cos x 近似值时的总误差界。 解:求解cos x 近似值时,误差可以分为两个部分,一方面,x 是近似值,具有5位有效数字,在此后的计算过程中产生一定的误差传播;另一方面,利用插值法求函数cos x 的近似值时,采用的线性插值法插值余项不为0,也会有一定的误差。因此,总误差界的计算应综合以上两方面的因素。 当090x ≤≤ 时, 令()cos f x x = 取0110,( )606018010800 x h ππ===?= 令0,0,1,...,5400i x x ih i =+= 则5400902 x π = = 当[]1,k k x x x -∈时,线性插值多项式为

matlab_牛顿插值法_三次样条插值法

(){} 2 1 ()(11),5,10,20: 1252 1()1,(0,1,2,,)()2,(0,1,2,,)() ()2 35,20:1100 (i i i i n n k k k Newton f x x n x f x x i i n f x n x y i n Newton N x S x n x k y f x = -≤≤=+=-+====-+ = 题目:插值多项式和三次样条插值多项式。已知对作、计算函数在点处的值;、求插值数据点 的插值多项式和三次样条插值多项式;、对计算和相应的函数值),()() (1,2,,99)4:()max ()()max ()n k n k n k n k n k n k k k N x S x k E N y N x E S y S x ==-=- 和; 、计算,; 解释你所得到的结果。 算法组织: 本题在算法上需要解决的问题主要是:求出第二问中的Newton 插值多项式 )(x N n 和三次样条插值多项式()n S x 。如此,则第三、四问则迎刃而解。计算两 种插值多项式的算法如下: 一、求Newton 插值多项式)(x N n ,算法组织如下: Newton 插值多项式的表达式如下: )())(()()(110010--???--+???+-+=n n n x x x x x x c x x c c x N 其中每一项的系数c i 的表达式如下: 1102110) ,,,(),,,(),,,(x x x x x f x x x f x x x f c i i i i i -???-???= ???=- 根据i c 以上公式,计算的步骤如下: ?? ??? ?? ?????+??????? ???????????----) ,,,,(1) ,,,(),,,,(),(,),,(2)(,),(),(11101111011010n n n n n n n n x x x x f n x x x f x x x f n x x f x x f x f x f x f 、计算、计算、计算、计算 二、求三次样条插值多项式)(x S n ,算法组织如下:

数值分析 插值法

第二章插值法 2.在区间[-1,1]上分别取n=10,20用两组等距节点对龙哥函数f(x)=1/(1+25*x^2)做多项式插值及三次样条插值,对每个n值,分别画出插值函数及f(x)的图形。 (1)多项式插值 ①先建立一个多项式插值的M-file; 输入如下的命令(如牛顿插值公式): function [C,D]=newpoly(X,Y) n=length(X); D=zeros(n,n) D(:,1)=Y' for j=2:n for k=j:n D(k,j)=(D(k,j-1)- D(k-1,j-1))/(X(k)-X(k-j+1)); end end C=D(n,n); for k=(n-1):-1:1 C=conv(C,poly(X(k))) m=length(C); C(m)= C(m)+D(k,k); end ②当n=10时,我们在命令窗口中输入以下的命令: clear,clf,hold on; X=-1:0.2:1; Y=1./(1+25*X.^2); [C,D]=newpoly(X,Y); x=-1:0.01:1; y=polyval(C,x); plot(x,y,X,Y,'.'); grid on; xp=-1:0.2:1; z=1./(1+25*xp.^2); plot(xp,z,'r') 得到插值函数和f(x)图形:

③当n=20时,我们在命令窗口中输入以下的命令:clear,clf,hold on; X=-1:0.1:1; Y=1./(1+25*X.^2); [C,D]=newpoly(X,Y); x=-1:0.01:1; y=polyval(C,x); plot(x,y,X,Y,'.'); grid on; xp=-1:0.1:1; z=1./(1+25*xp.^2); plot(xp,z,'r') 得到插值函数和f(x)图形:

第六章习题答案数值分析

第六章习题解答 2、利用梯形公式和Simpson 公式求积分2 1 ln xdx ? 的近似值,并估计两种方法计算值的最大 误差限。 解:①由梯形公式: 21ln 2 ()[()()][ln1ln 2]0.3466222 b a T f f a f b --= +=+=≈ 最大误差限 3''2 ()111 ()()0.0833******** T b a R f f ηη-=-=≤=≈ 其中,(1,2)η∈ ②由梯形公式: 13()[()4()()][ln14ln()ln 2]0.38586262 b a b a S f f a f f b -+= ++=++≈ 最大误差限 5(4)4()66 ()()0.0021288028802880 S b a R f f ηη-=-=≤≈, 其中,(1,2)η∈。 4、推导中点求积公式 3''()()()()() ()224 b a a b b a f x dx b a f f a b ξξ+-=-+<

第二章插值法与数值微分

第二章 插值法与数值微分 1. 设y = 在100,121,144x =三处的值是很容易求得的, 试以这三个点建立y = 的 二次插值多项式, 并用此多项式计算,且给出误差估计.用其中的任意两点,构造线性插值函数,用得到的三个线性插值函数, 计算,并分析其结果不同的原因. 解: 已知012012100,121,144;10,11,12x x x y y y ======, 建立二次Lagrange 插值函数可得: ()()()()()()() ()()()() ()() 21211441001441011 100121100144121100121144121100 12 144121144100x x x x L x x x ----= +------+ -- ()211510.7228L ≈=. 误差()() ()()()()2012012,,,,3! f R x x x x x x x x x x ξξξ'''= ---∈,所以 2 0.00065550.001631R << 利用前两个节点建立线性插值函数可得: ()()() ()() 11211001011100121121100x x L x --= + -- ()111510.7143L ≈=. 利用后两个节点建立线性插值可得: ()()() ()() 11441211112121144144121x x L x --= + -- ()111510.7391L ≈=. 利用前后两个节点建立线性插值可得: ()()() ()() 21441001012100144144100x x L x --= + -- ()111510.6818L ≈=. 与,二次插值比线性插值效果好,利用前两个节点的线性插值比其他两个线性插值

数值分析实验插值与拟合

《数值分析》课程实验一:插值与拟合 一、实验目的 1. 理解插值的基本原理,掌握多项式插值的概念、存在唯一性; 2. 编写MATLAB 程序实现Lagrange 插值和Newton 插值,验证Runge 现象; 3. 通过比较不同次数的多项式拟合效果,理解多项式拟合的基本原理; 4. 编写MATLAB 程序实现最小二乘多项式曲线拟合。 二、实验内容 1. 用Lagrange 插值和Newton 插值找经过点(-3, -1), (0, 2), (3, -2), (6, 10)的三次插值公式,并编写MATLAB 程序绘制出三次插值公式的图形。 2. 设 ]5,5[,11 )(2 -∈+= x x x f 如果用等距节点x i = -5 + 10i /n (i = 0, 1, 2, …, n )上的Lagrange 插值多项式L n (x )去逼近它。不妨取n = 5和n = 10,编写MATLAB 程序绘制出L 5(x )和L 10(x )的图像。 3. 在某冶炼过程中,根据统计数据的含碳量与时间关系如下表,试求含碳量与时间t 的拟合曲线。

(1) 用最小二乘法进行曲线拟合; (2) 编写MATLAB 程序绘制出曲线拟合图。 三、实验步骤 1. (1) Lagrange 插值法:在线性空间P n 中找到满足条件: ?? ?≠===j i j i x l ij j i , 0,, 1)(δ 的一组基函数{}n i i x l 0)(=,l i (x )的表达式为 ∏ ≠==--= n i j j j i j i n i x x x x x l ,0),,1,0()( 有了基函数{}n i i x l 0)(=,n 次插值多项式就可表示为 ∑==n i i i n x l y x L 0)()( (2) Newton 插值法:设x 0, x 1, …, x n 是一组互异的节点,y i = f (x i ) (i = 0, 1, 2, …, n ),f (x )在处的n 阶差商定义为 1102110] ,,,[],,,[],,,[x x x x x f x x x f x x x f n n n n --= - 则n 次多项式 ) ())(](,,[) )(](,,[)](,[)()(11010102100100----++--+-+=n n n x x x x x x x x x f x x x x x x x f x x x x f x f x N 差商表的构造过程:

MATLAB 牛顿插值法例题与程序

题目一:多项式插值 某气象观测站在8:00(AM)开始每隔10分钟对天气作如下观测,用三次多项式插值函数(Newton)逼近如下曲线,插值节点数据如上表,并求出9点30分该地区的温度(x=10)。 二、数学原理 假设有n+1个不同的节点及函数在节点上的值(x 0,y 0),……(x n ,y n ),插值多项式有如下形式: )() )(()()()(n 10n 102010n x -x )(x -x x -x x P x x x x x x -??-+??+-++=αααα (1) 其中系数i α(i=0,1,2……n)为特定系数,可由插值样条i i n y x P =) ((i=0,1,2……n)确定。 根据均差的定义,把x 瞧成[a,b]上的一点,可得 f(x)= f(0x )+f[10x x ,](0x -x ) f[x, 0x ]= f[10x x ,]+f[x,10x x ,] (1x -x ) …… f[x, 0x ,…x 1-n ]= f[x, 0x ,…x n ]+ f[x, 0x ,…x n ](x-x n ) 综合以上式子,把后一式代入前一式,可得到: f(x)= f[0x ]+f[10x x ,](0x -x )+ f[210x x x ,,](0x -x )(1x -x )+ …+ f[x, 0x ,…x n ](0x -x )…(x-x 1-n )+ f[x, 0x ,…x n ,x ]) (x 1n +ω= N n (x)+) (x n R 其中 N n (x)= f[0x ]+f[10x x ,](0x -x )+ f[210x x x ,,](0x -x )(1x -x )+ …+ f[x, 0x ,…x n ](0x -x )…(x-x 1-n ) (2)

第二章 插值法

第二章插值法 一、内容分析与教学建议 本章内容统称为插值法,包括Lagrange插值、逐步线性插值、Newton 插值、Hermite 插值、分段多项式插值、有理函数插值等内容,既是教学的重点。 在教学上,注意由浅入深,由直观到抽象,多用实例和图形作解释,建立插值概念,注意讲解上述插值是如何根据实际问题要求的提高而先后发展起来的。培养学生分析问题和解决问题的能力。 (一)L agrange插值 1、回顾《高等数学》的Taylor公式,讲解Taylor公式是根据某一点的多个信息得到近似多项式的插值思想。 2、将上述思想应用到多点的信息,即根据所给的多点的数据,建立插值多项式。 3、讲解过程中,沿着“发现问题→提出解决方法→方法的存在性和惟一性→建立Lagrange插值公式→误差公式”这样一个思路去讲解Lagrange插值的思想和方法。 (二)逐步线性插值 1、讲解为什么要建立逐步线性插值?这是由于Lagrange插值没有承袭性,当需要增加一个插值节点时,以前所做的工作要全部重做。 2、逐步线性插值是一个将高次插值转化成逐步线性插值的迭代过程,正是这一点使得逐步线性插值具有了承袭性。 3、强调逐步线性插值是求一点处近似值的快速方法,不太适合建立插值解析式。 (三)N ewton插值 1、Newton 插值克服了上述两类插值的缺点,继承了它们的优点:即具有承袭性,又是一个完整的解吸式,便于理论研究和分析。 2、首先掌握差分和差商的概念以及它们的性质,在此基础上建立Newton 插值公式和误差公式。 3、Newton 插值公式实际上是Lagrange插值公式的另外一种表现形式,这揭示了一种

第六章 函数的插值方法

习题6.1 1. 求三个一次多项式)(x g 、)(x h 和)(x f 的积)()()(x h x g x f ??.它们的零点分别为0.2,0.5,1.3. 2. 求多项式9425)(25-+-=x x x x g 被 736)(2+-=x x x f 相除后的结果. 习题6.2 1. 已知函数)(x f 在]7,1[上具有二阶连续导数, 5)("≤x f ,且满足条件12)7(,1)1(==f f .求线性插值多项式和函数值)5.3(f ,并估计其误差. 2. 求函数=)(x f e x 3-在]4,0[上线性插值多项式,并估计其误差. 3. 求将区间 [π/6, π/2] 分成n 等分)2,1(=n ,用x x f y sin )(==产生1+n 个节 点,然后根据(6.9)和(6.13)式分别作线性插值函数)(1x P 和抛物线插值函数)(2x P .用它们分别计算sin (π/5) (取四位有效数字),并估计其误差. 4.给出节点数据00.27)00.3(=-f ,00.1)00.0(=f ,00.2)00.1(=f ,00.17)00.2(=f ,作三次拉格朗日插值多项式计算)4.1(f ,并估计其误差. 5. 给出节点数据03.37)15.3(=-f ,24.7)00.1(=-f ,05.1)01.0(=f ,03.2)02.1(=f , 0 6.17)03.2(=f ,05.23)25.3(=f 作五次拉格朗日插值多项式和基函数,并写出估计其误差的公式. 6. 已知5.030sin =ο,7071.045sin =ο,190sin =ο,求ο40sin 的近似值,并估计 其误差. 习题6.3 1. 已知函数)(x f 在]7,1[上具有二阶连续导数, 5)("≤x f ,且满足条件12)7(,1)1(==f f .求一阶牛顿插值多项式和函数值)5.3(f ,并估计其误差. 2. 求函数=)(x f e x 3-在]4,0[上六阶牛顿插值多项式和估计误差的公式. 3. 将区间 [π/6, π/2] 分成n 等分)2,1(=n ,用x x f y sin )(==产生1+n 个节点,求二阶和三阶牛顿插值多项式)(2x P 和)(3x P .用它们分别计算sin (π/7) (取四位有效数字),并估计其误差. 4.给出节点数据00.27)00.3(=-f ,00.1)00.0(=f ,00.2)00.1(=f ,00.17)00.2(=f 作三阶牛顿插值多项式计算)4.1(f ,并估计其误差. 5. 给出节点数据03.37)15.3(=-f ,24.7)00.1(=-f ,05.1)01.0(=f ,03.2)02.1(=f , 0 6.17)03.2(=f ,05.23)25.3(=f 作五阶牛顿插值多项式和差商,并写出估计其误差的公式. 6. 已知5.030sin =ο,7071.045sin =ο,190sin =ο,用牛顿插值法求ο40sin 的近 似值,并估计其误差. 习题6.4 1. 给定函数)(x f 在点4/,6/10π=π=x x 处的函数值5.0)(0=x f , 1707.0)(1=x f 和导数值0866.0)(0'=x f ,1707.0)(1'=x f ,且1)()4(≤x f ,求函数 )(x f 在点10,x x 处的3阶埃尔米特插值多项式)(3x H 和误差公式. 2. 求函数=)(x f e x 3-在]4,0[上五阶埃尔米特插值多项式,并估计其误差. 3. 将区间 [π/6, π/2] 分成n 等分)2,1(=n ,用x x f y sin )(==产生1+n 个节点,然后根据(6.42)和(6.44)式分别作埃尔米特插值多项式及其误差公式.用它们分别计算sin (π/5) (取四位有效数字),并估计其误差.

第二章插值法习题及解答

一、填空题: 1. 满足()a a f x x =,()b b f x x =,()c c f x x =的拉格朗日插值余项为 。 答:()() ()()()3! a b c f R x x x x x x x ξ'''= --- 2.已知函数()f x 的函数值()()()()()0,2,3,5,6f f f f f ,以及均差如下 ()()()()() 00,0,2 4,0,2,35,0,2,3,51,0,2,3,5,60 f f f f f ===== 那么由这些数据构造的牛顿插值多项式的最高次幂的系数是 答: 1 二、选择题 1. 通过点()()0011,,,x y x y 的拉格朗日插值基函数()()01,l x l x 满足( ) A .()00l x =0,()110l x = B . ()00l x =0,()111l x = C .()00l x =1,()110l x = D . ()00l x =1,()111l x = 答:D 2.. 已知等距节点的插值型求积公式 ()()35 2 k k k f x dx A f x =≈∑?,那么3 k k A ==∑( ) A .1 B. 2 C. 3 D. 4 答:C 3.过点(x 0,y 0), (x 1,y 1),…,(x 5,y 5)的插值多项式P(x)是( )次的多项式。 (A). 6 (B).5 (C).4 (D).3. 答:B 三、证明题 1. 设 f (x) = (x-1) (x-2) .证明对任意的x 有: f [1, 2, x)]= 1 证明:f [1, 2] = [f (1) – f (2)]/ (1 – 2) = [0 – 0]/ (-1) = 0, 对任意的x 有 F[2, x] = [f (2) – f (x)]/ (2 – x) = [0 – (x-1) (x-2)]/ (2 – x) = (x-1), 所以 f [1, 2, x] = [f (1, 2) - f (2, x)]/ (1 – x) = [0 - (x-1)]/ (1 – x) = 1 2.设 在 上具有二阶连续导数,且 ,求证:

正文牛顿插值法

牛顿插值法 摘要:值法利用函数f (x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数f (x)的近似值。如果这特定函数是多项式,就称它为插值多项式。利用插值基函数很容易得到拉格朗日插值多项式,公式结构紧凑,在理论分析中甚为方便,但当插值节点增减时全部插值基函数均要随之变化,整个公式也将发生变化,这在实际计算中是很不方便的,为了克服这一缺点,提出了牛顿插值。 牛顿插值通过求各阶差商,递推得到的一个公式:f(x)=f[x0]+f[x0,x1](x-x0)+f[x0,x1,x2](x-x0)(x-x1)+...f[x0,...xn](x-x 0)...(x-xn-1)+Rn(x) 关键词:牛顿插值法流程图程序实现

一、插值法的由来 在许多实际问题及科学研究中,因素之间往往存在着函数关系,然而,这种关系经常很难有明显的解析表达,通常只是由观察与测试得到一些离散数值。有时,即使给出了解析表达式,却由于表达式过于复杂,不仅使用不便,而且不易于进行计算与理论分析。解决这类问题的方法有两种:一种是插值法,另一种是拟合法。插值法是一种古老的数学方法,它来自生产实践,早在一千多年前,我国科学家在研究历法上就应用了线性插值与二次插值,但它的基本理论却是在微积分产生之后才逐渐完善的,其应用也日益增多,特别是在计算机软件中,许多库函数,如等的计算实际上归结于它的逼近函数的计算。逼近函数一般为只含有算术运算的简单函数,如多项式、有理分式(即多项式的商)。在工程实际问题当中,我们也经常会碰到诸如此类的函数值计算问题。被计算的函数有时不容易直接计算,如表达式过于复杂或者只能通过某种手段获取该函数在某些点处的函数值信息或者导数值信息等。因此,我们希望能用一个“简单函数”逼近被计算函数,然后用该简单函数的函数值近似替代被计算函数的函数值。这种方法就叫插值逼近或者插值法。 逐次线性插值法优点是能够最有效地计算任何给定点的函数值,而不需要写出各步用到的插值多项式的表达式。但如果解决某个问题时需要插值多项式的表达式,那么,它的这个优点就成了它的缺点了。能不能根据插值条件构造一个插值多项式,它既有具体的表达式,又很容易用它计算任何点的函数值呢?牛顿插值法能作到这一点。

第二章 插值法

第二章 插值方法/* Interpolation */ 2.1 引言 函数逼近 问题的引出:现实应用中常用函数()y f x =表示某种内在规律的数量关系,但是情况往往是: 1)()y f x =在某个区间[a,b]存在,有时候是连续的,但是只能通过实验或观测得到一系列点i x 的函数值i y (得到函数表),而无法得到()f x 的表达式 2)函数表达式已知,但计算复杂(如()sin y x =,()lg y x =等)使用不方便,通常也使用函数表。如:三角函数表,对数表,平方根表,立方根表等。 问题:有时需要求不在函数表上的函数值怎么办? 解决方法:根据所给的 ()y f x =的函数表,构造一个简单的函数() P x 近似替 代()f x (存在误差!),称为函数逼近。 称()P x 为逼近函数,()f x 为被逼近函数。 ()P x 通常选择一类比较简单的函数,如代数多项式或分段代数多项式。 函数逼近的方法有很多,例如Taylor 级数,Fourier 级数,有限元方法、边界元方法,小波分析等,大学科叫逼近论。 本课程讨论连续函数的逼近,主要介绍插值法。 插值 (interpolation ) 已知()[],,y f x x a b =∈的函数表

求:()P x 使 ()i i y P x = 0,1,2,,i n = —— 插值问题 称()P x 为()f x 的插值函数;()f x 为被插值函数;0 1 n x x x 为插值结点; [],a b 为插值区间;求插值函数()P x 的方法称为插值法。 当()P x 为多项式时,相应的插值法为多项式插值;()P x 为分段的多项式,称 为分段插值;()P x 为三角多项式,称为三角插值。 插值法的几何示意图,P14图2.1 多项式插值是数值分析的基本工具,常用来计算被插函数的近似函数值,零、极点,导数、积分(第四章 数值积分和数值微分),解微分方程(第五章)、积分方程等。 2.2 拉格朗日插值 2.2.1 插值多项式的存在唯一性 问题:用不同的多项式插值方法得到的插值多项式的形式有可能不同,它们是否等价?(可以转化为相同的标准式?) 答案是肯定的! 两点确定一条直线( 一次多项式 ) 三点确定一个抛物线( 二次多项式 ) 是否n+1点确定一个n 次多项式? 给定n +1个互异的插值点0 1 n x x x ,求符合插值条件() i i y P x =的次数不 超过n 的插值多项式 ()2 012n n P x a a x a x a x =++++ ——(标准式)

第五章 插值与最小二乘法

第五章 插值与最小二乘法 5.1 插值问题与插值多项式 实际问题中若给定函数是区间上的一个列表函数 ,如果,且f(x)在区间上是连续的,要求用一个简单的,便于计算的解析表达式在区间上近似f(x),使 (5.1.1) 就称为的插值函数,点称为插值节点,包含插值节点的区间称为插值区间. 通常,其中是一组在上线性 无关的函数族,表示组成的函数空间表示为 (5.1.2) 这里是(n+1)个待定常数,它可根据条件(5.1.1)确定.当 时,表示次数不超过n次的多项式集合, ,此时 (5.1.3) 称为插值多项式,如果为三角函数,则为三角插值,同理还有 分段多项式插值,有理插值等等.由于计算机上只能使用+、-、×、÷运算,故常用的就是多项式、分段多项式或有理分式,本章着重讨论多项式插值及分段多项式插值,其他插值问题不讨论. 从几何上看,插值问题就是求过n+1个点的曲线,使它近似于已给函数,如图5-1所示.

插值法是一种古老的数学方法,它来自生产实践.早在一千多年前,我国科学家在研究历法时就应用了线性插值与二次插值,但它的基本理论却是在微积分产生以后才逐步完善的,其应用也日益广泛.特别是由于计算机的使用和航空、造船、精密机械加工等实际问题的需要,使插值法在理论上和实践上得到进一步发展.尤其是近几十年发展起来的样条(Spline)插值,获得了极为广泛的应用,并成为计算机图形学的基础. 本章主要讨论如何求插值多项式、分段插值函数、三次样条插值、插值多项式的存在唯一性及误差估计等.此外,还讨论列表函数的最小二乘曲线拟合问题与正交多项式. 讲解: 插值多项式就是根据给定n+1个点 ,求一个n次多项式: 使 即 这里是n+1个待定系数,根据n+1个条件得到的方程组是关于参数 的线性方程组。当节点互异时由于系数行列式 所以解是存在唯一的。但直接求解较复杂,也得不到统一的表达式。所以通常求插值多项式不用这种方法,而使用下节给出的基函数方法。 5.2 Lagrange插值 5.2.1 线性插值与二次插值 最简单的插值问题是已知两点及,通过此两点的插值多项式是一条直线,即两点式

牛顿插值法的c++程序

简介:本程序用牛顿插值法对函数表, X值选取为1.5测试本程序。 源程序: #include #include void main() { char L; do { double M[100][100]; double x[100],y[100]; double X=1,xx=0,w=1,N=0,P,R=1; int n; cout<<"请输入所求均差阶数:"; cin>>n; for(int i=0;i<=n;i++) { cout<<"请输入x"<>x[i]; cout<<"请输入y"<>y[i]; M[i][0]=x[i]; M[i][1]=y[i]; } for( int j=2;j<=n+1;j++) { for( i=1;i<=n;i++) { M[i][j]=(M[i][j-1]-M[i-1][j-1])/(M[i][0]-M[i-j+1][0]); } } for(i=1;i<=n;i++) { cout<<"其"<

} cout<<"请输入x的值:x="; cin>>xx; for(i=0;i>L; }while(L=='y'); } 测试结果:

第五章光学模型及其算法实现

第五章光学模型及其算法实现 一、复习要求 1.简单光反射模型 2.增量式光反射模型 3.局部光反射模型 4.光源模型 5.简单光透射模型 6.光线跟踪显示技术 二、内容提要 1.简单光反射模型 (1)基本光学原理 ①照度定律 普通物理学中的照度定律(Lambert余弦定律): π I=K f I L cosθ, θ∈ [0, 2 式中,反射常数K f与物体表面性质有关,也描述物体的颜色。 注意:按一般规定,入射光L是从表面上一点指向光源的矢量。 ②材质分配 事实上,一个物体的颜色就是它所反射出的光的颜色,取决于光源的颜色和该物体对光的反射性。例如,将一个阳光下的红球放到只有黄灯照明的室内,它就变成黑的了,因为那里没有任何红色光可被反射,而所有黄色光都被吸收了。 在使用光照时,原有的“绘图颜色”概念已不能适用,而采用“材质”一词。 定义:材质(material)被定义为一个物体对环境光、漫反射光、镜面反射光的反射性。它们分别以一个对应的RGB值表示,称为材质的Ambient,Diffuse,Specular分量(即光学定律中的反射系数K a, K d, K s)。 材质还可以包括另一种辐射性,用于描述自身发光的物体,例如汽车尾灯或夜光表。通

111 / 13 常,灯具的表面也被看成是一个自发光体。 ③ 折射和透射 Snell 正弦定律(或称折射定律)属于几何光学原理,用于确定两个物体间的入射角与折射角的关系: 1 2 21ηηθθ=sin sin 式中,θ1表示在物体1 表面处的入射角,而θ2表示在物体2内部的折射角;η1和η2分别是这两个物体的折射率。 如图5-1所示,除了从同侧光源射过来的反射光外,观察者还将会看到从另一侧光源穿过物体后射出的透射光: 图5-1 光的折射和透射 (2)简单光反射模型(Phong 模型)的导出 图5-2 光的反射 简单光反射模型只模拟物体表面对光的反射作用,并不考虑物体表面的透射和散射作用。在简单光反射模型中一个点光源照射到物体表面一点,再反射出来的光,可分为三部分:环境光(泛光)、漫反射光镜面反射光。 在Phong 模型中,物体表面的光照效果是环境反射光、光源的漫反射光和镜面反射光的

计算方法讲义课件 五 插值

第五章插值 插值在科学计算和工程技术中有广泛应用。例如由实验得到一系列点x0, x1,…, x n对应的值y0, y i,…, y n,要构造函数y = f (x),使y i=f(x i),这就是简单的插值问题。插值核心问题是:存在性、唯一性、表示方法以及误差分析。插值和逼近有广泛应用,例如构造曲线曲面等。 5.1 代数插值 用代数多项式作为工具来研究插值的方法叫做代数插值。

插值 插值问题就是根据已知数据来构造函数y = f (x )的近似表达式。常用方法就是利用多项式P n (x ),使n i y x P i i n ,2,1,0,)( == ,作为f (x )的近似。多项式求值方便,且有导数。称P n (x )为f (x )的一个插值函数,称x 0, x 1,…, x n 为插值节点。用代数多项式作为工具来研究插值的方法叫做代数插值。设x 0 < x 1< …< x n ,记a = x 0, b = x n ,则[a, b]为插值区间。 设所要构造的插值多项式为:n n n x a x a x a a x P ++++= 2210)(,由插 值条件 n i y x P i i n ,,1,0,)( ==。得到如下线性代数方程组: n i y a x a x a i n n i i ,2,1,0,110==+++?。该线性方程组的系数行列式为

∏ ≤ < ≤ - = = n i j j i n n n n n n x x x x x x x x x x x D 2 1 2 1 1 2 ) ( 1 1 1 ,为范得蒙行列式。当 j i x x≠,; ,2,1n i =n j ,2,1 =时,D ≠0,所以P n(x)由a0, a1,…, a n唯一确定。5.2 Lagrange插值 已知y = f (x)在给定点x0, x1上的值为y0,y1。线性插值就是构造一个一次多项式P1(x) = ax + b,使它满足条件P1 (x0) = y0,P1 (x1) = y1。几何解释就是一条直线。由解析几何,) ( ) ( 1 1 1 x x x x y y y x P- - - + =或 1 1 1 1 1 ) (y x x x x y x x x x x P - - + - - =。 例用线性插值求115(x* = 10.723805)。解:设x y=,取x0 = 100,x1 = 121,则y0= 10,y1= 11,从而 71428 . 10 ) 100 115 ( 100 121 10 11 10 ) 115 ( 115 1 = - - - + = ≈P。 用简单的曲线近似地代替复杂的曲线,最简单的曲线是二次曲线。设函数y=f (x) 在给定互异的自变量值x0, x1, x2上对应的函数值为y0, y1, y2,二次插值就是构造一个二次多项式2 2 1 2 ) (x a x a a x P+ + =,使之满足2,1,0 , ) ( 2 = =i y x P i i ,称抛物插值。令 2 2 1 1 2 ) ( ) ( ) ( ) (y x l y x l y x l x P+ + =,

相关主题
文本预览
相关文档 最新文档