研究生数值分析 样条插值
数值分析实验报告-插值、三次样条
实验报告:牛顿差值多项式&三次样条问题:在区间[-1,1]上分别取n=10、20用两组等距节点对龙格函数21()25f x x作多项式插值及三次样条插值,对每个n 值,分别画出插值函数及()f x 的图形。
实验目的:通过编程实现牛顿插值方法和三次样条方法,加深对多项式插值的理解。
应用所编程序解决实际算例。
实验要求:1. 认真分析问题,深刻理解相关理论知识并能熟练应用;2. 编写相关程序并进行实验;3. 调试程序,得到最终结果;4. 分析解释实验结果;5. 按照要求完成实验报告。
实验原理:详见《数值分析 第5版》第二章相关内容。
实验内容:(1)牛顿插值多项式1.1 当n=10时:在Matlab 下编写代码完成计算和画图。
结果如下:代码:clear allclcx1=-1:0.2:1;y1=1./(1+25.*x1.^2);n=length(x1);f=y1(:);for j=2:nfor i=n:-1:jf(i)=(f(i)-f(i-1))/(x1(i)-x1(i-j+1));endendsyms F x p ;F(1)=1;p(1)=y1(1);for i=2:nF(i)=F(i-1)*(x-x1(i-1));p(i)=f(i)*F(i);endsyms PP=sum(p);P10=vpa(expand(P),5);x0=-1:0.001:1;y0=subs(P,x,x0);y2=subs(1/(1+25*x^2),x,x0);plot(x0,y0,x0,y2)grid onxlabel('x')ylabel('y')P10即我们所求的牛顿插值多项式,其结果为:P10(x)=-220.94*x^10+494.91*x^8-9.5065e-14*x^7-381.43*x^6-8.504e-14*x^5+123.36*x^4+2.0202e-1 4*x^3-16.855*x^2-6.6594e-16*x+1.0并且这里也能得到该牛顿插值多项式的在[-1,1]上的图形,并和原函数进行对比(见Fig.1)。
交大硕士研究生必修基础数学-数值分析-插值与拟合方法
第5章 插值与拟合方法插值与拟合方法是用有限个函数值(),(0,1,,)i f x i n =⋅⋅⋅去推断或表示函数()f x 的方法,它在理论数学中提到的不多。
本章主要介绍有关解决这类问题的理论和方法,涉及的内容有多项式插值,分段插值及曲线拟合等。
对应的方法有Lagrange 插值,Newton 插值,Hermite 插值,分段多项式插值和线性最小二乘拟合。
1 实际案例2 问题的描述与基本概念先获得函数(已知或未知)()=在有y f x由表中数据构造一个函数P(x)作为f(x) 的近似函数,去参与有关f (x)的运算。
科学计算中,解决不易求出的未知函数的问题主要采用插值和拟合两种方法。
1)插值问题的描述已知函数()y f x =在[a,b ]上的n +1个互异点nx x x ⋅⋅⋅,,10处的函数值()i i y f x =,求f (x ) 的一个近似函数P (x ),满足()()(0,1,,)i i P x f x i n ==⋅⋅⋅ (5.1)● P (x ) 称为f (x )的一个插值函数; ● f (x ) 称为被插函数;点i x 为插值节点; ● ()()(0,1,,)i i P x f x i n ==⋅⋅⋅称为插值条件; ● ()()()R x f x P x =-称为插值余项。
当插值函数P (x )是多项式时称为代数插值(或多项式插值)。
一个代数插值函数P (x )可写为0()()()mkm k k k P x P x a x a R ===∈∑若它满足插值条件(5.1),则有线性方程组20102000201121112012m m m m m n n m n na a x a x a x y a a x a x a x y a a x a x a x y ⎧+++⋅⋅⋅=⎪+++⋅⋅⋅=⎪⎨⎪⎪+++⋅⋅⋅=⎩ (5.2)当m=n ,它的系数行列式为范德蒙行列式)(1110212110200j i ni j n nnnn nx x x x x x x x x x x D -∏==≤≤≤因为插值节点互异,0D ≠,故线性方程组(5.2)有唯一解,于是有定理 5.1 当插值节点互异时,存在一个满足插值条件()()(0,1,,)i i P x f x i n ==⋅⋅⋅的n 次插值多项式。
数值分析(15)样条插值
数值分析
于是,在[xi , xi 1 ]上
( x xi 1 )2 (hi 2( x xi )) ( x xi )2 (hi 2( xi 1 x )) Si ( x ) yi yi 1 3 3 hi hi ( x xi 1 ) 2 ( x x i ) ( x xi ) 2 ( x xi 1 ) mi mi 1 2 2 hi hi
故构造S ( x )需要4n个条件 由(1)已知节点上函数值 yi , i 0,1, 2, ..., n。 这是n+1个条件
由(2)S ( x ) C 2 [a , b], 隐含着在内节点上应有 Si 1 ( xi ) Si ( xi ), Si'1 ( xi ) Si' ( xi ), Si''1 ( xi ) Si'' ( xi ), i 1, 2, ..., n 1
数值分析
数值分析
(3)如何求mi? 利用在节点上二阶导数连续的条件 由 Si''1 ( xi ) Si'' ( xi ), i 1, 2, ..., n 1 导出三转角方程(n 1个方程要解n 1个未知数)
(4)再由三转角方程 边界条件(补充两个方程) 封闭的方程组,可求出mi ,( i 0,1, 2, ..., n)
(2)构造三弯矩方程
利用S ( x )在内节点上一阶导数连续的条件, 在区间[ x i , x i 1 ]上 ' ( x ) 3a ( x- x ) 2 2b ( x- x ) c Si i i i i i
数值分析
数值分析
三、三弯矩方程求解法
三弯矩法的基本思想 (1)yi'' f '' ( xi )未知,但可设S '' ( xi ) M i , ( M i yi'' , 只是M i yi'' ) (2)如能求出M i,则可由M i 和yi 构造S ( x ).
数值分析——样条函数及三次样条插值
S k ( x )是[ xk , xk + 1 ]上的(两点)三次样条插值多项式, 满足
Sk ( x j ) = y j
x → xk
k = 0,1,2, ⋯ , n − 1; j = k , k + 1
lim S k ( x ) = lim S k − 1 ( x ) + −
一、三次样条插值函数
定义1. 定义
a ≤ x0 , x1 ,⋯ , xn ≤ b为区间[ a , b ]的一个分割
如果函数S ( x )在区间[ a , b ]上满足条件 :
( 1) S ( x ), S ′( x ), S ′′( x )都在区间[ a , b ]上连续 ,即 S ( x ) ∈ C 2 [ a , b ]
f ( x j ) = y j , j = 0 ,1,⋯ , n 如果S ( x )是f ( x )的三次样条插值函数, 则其必满足
S ( x j ) = y j , j = 0 ,1,⋯ , n lim S ( x ) = S ( x j ) = y j , j = 1,⋯ , n − 1 x→ x xlim S ′( x ) = S ′( x j ) = m j , j = 1,⋯ , n − 1 →x lim S ′′( x ) = S ′′( x j ), j = 1 ,⋯ , n − 1
+ x → xk
Sk ( x j ) = y j
k
k = 0,1, ⋯ , n − 1; j = k , k + 1
− x → xk
k −1
k = 1 , 2 ,⋯ , n − 1 k = 1,2 ,⋯ , n − 1 ------(8) k = 1, 2 ,⋯ , n − 1
(完整word版)数值分析作业-三次样条插值..0001
数值计算方法作业实验4.3三次样条差值函数实验目的:掌握三次样条插值函数的三弯矩方法实验函数:求和的近似值实验内容:(1) 编程实现求三次样条插值函数的算法,分别考虑不同的边界条件;(2) 计算各插值节点的弯矩值;(3) 在同一坐标系中绘制函数f(x),插值多项式,三次样条插值多项式的曲线比较插值结果。
实验4.5三次样条差值函数的收敛性实验目的:多项式插值不一定是收敛的,即插值的节点多,效果不一定好。
对三次样条插值函数如何呢?理论上证明三次样条插值函数的收敛性是比较困难的,通过本实验可以证明这一理论结果。
实验内容:按照一定的规则分别选择等距或非等距的插值节点,并不断增加插值节点的个数。
实验要求:(1)随着节点个数的增加,比较被逼近函数和三样条插值函数的误差变化情况,分析所得结果并与拉格朗日插值多项式比较;(2)三次样条插值函数的思想最早产生于工业部门。
作为工业应用的例子,考虑如下例子:某汽车制造商根据三次样条插值函数设计车门曲线, 其中一 段数据X k 0 1 23 4 5678910y k 0.00.79 1.532.19 2.713.03 3.27 2.89 3.06 3.19 3.29y k0.80.2算法描述:拉格朗日插值:错误!未找到引用源。
n(x _ X ) 其中错误!未找到引用源。
是拉格朗日基函数,其表达式为:h(x)」j=0 (x i- X j )牛顿插值:N n (x) =f (X g ) f[X o ,X i ](X -xO) f[X o ,X i ,X 2〕(X - xO)(x - X i ) •…f[X g ,X i ...X n ] =(f[X i ,X 2,...X n ] - f [ X 。
,为,..人」)/(X . - X g )三样条插值:所谓三次样条插值多项式Sn(x)是一种分段函数,它在节点Xi(a<X0<X1……<Xn<b)分成的每个小区间[x i-i ,x i ]上是三次多项式,其在此区间 上的表达式如下:f[X °,X i ,X 2,...X n ](X -X °)(X -X i )...(X-Xn J )f [X i , X j ]f (X i ) - f (X j ) X i -X jf [X i , X j ,X k]=其中*.f[X j ,X k ] - f[K ,X j ]X k -X iS(x)二 M 3(X i -x) 6h i.Mi (x —Xy )3 . [ y i - y i4 h i (M i - My)6h i h i 6 h ih i M i 4 h i M iy i- 6)( 6*,皿"]因此,只要确定了 Mi 的值,就确定了整个表达式,Mi 的计算方法如下:i 4式中 Mi= S (X i ).则Mi 满足如下n-1个方程:7 M i 」■ 2M i …冷 M i i = di , i =1,2,...n —'1 常用的边界条件有如下几类:(1)给定区间两端点的斜率 m o ,m n ,即s(x 0) = y 0 =m 0,S(x n ) = y n = m n(2) 给定区间两端点的二阶导数 MO ,Mn,即S (XcH y 。
数值分析三次样条插值
若取等距节点 hi = h, i = 1,…, n –1
i
h h
h
1 2
i
1 i
1 2
di
6 2h
yi 1
2 yi h
yi 1
3 h3
( yi1
2 yi
yi1 )
i 1, 2,, n
例1. 对于给定的节点及函数值
k 0123 xk 1 2 4 5 f (xk ) 1 3 4 2 求满足自然边界条件S(x0 ) S(xn ) 0的三次样条 插值函数S(x),并求f (3)的近似值
Mi1
( x xi )2 2hi 1
yi1 hi 1
yi
hi 1 6
( M i 1
Mi )
于是
Si( xi )
hi 3
Mi
yi
yi1 hi
hi 6
M i 1
Si1( xi )
hi 1 3
Mi
yi1 hi 1
yi
hi 1 6
M i 1
解: 由M关系式
k
hk
hk hk 1
k
hk 1 hk hk 1
1 k
1
2 3
1
1 3
2
1 3
2
2 3
di
6
yi1 hi1
yi
yi
yi hi
1
hi hi1 6 f [ xi1, xi , xi1]
数值分析实验报告-插值、三次样条
实验报告:牛顿差值多项式&三次样条问题:在区间[-1,1]上分别取n=10、20用两组等距节点对龙格函数21()25f x x作多项式插值及三次样条插值,对每个n 值,分别画出插值函数及()f x 的图形。
实验目的:通过编程实现牛顿插值方法和三次样条方法,加深对多项式插值的理解。
应用所编程序解决实际算例。
实验要求:1. 认真分析问题,深刻理解相关理论知识并能熟练应用; 2. 编写相关程序并进行实验; 3. 调试程序,得到最终结果; 4. 分析解释实验结果; 5. 按照要求完成实验报告。
实验原理:详见《数值分析 第5版》第二章相关内容。
实验内容:(1)牛顿插值多项式1.1 当n=10时:在Matlab 下编写代码完成计算和画图。
结果如下:代码:clear allclcx1=-1:0.2:1;y1=1./(1+25.*x1.^2);n=length(x1);f=y1(:);for j=2:nfor i=n:-1:jf(i)=(f(i)-f(i-1))/(x1(i)-x1(i-j+1));endendsyms F x p;F(1)=1;p(1)=y1(1);for i=2:nF(i)=F(i-1)*(x-x1(i-1));p(i)=f(i)*F(i);endsyms PP=sum(p);P10=vpa(expand(P),5);x0=-1:0.001:1;y0=subs(P,x,x0);y2=subs(1/(1+25*x^2),x,x0);plot(x0,y0,x0,y2)grid onxlabel('x')ylabel('y')P10即我们所求的牛顿插值多项式,其结果为:P10(x)=-220.94*x^10+494.91*x^8-9.5065e-14*x^7-381.43*x^6-8.504e-14*x^5+123.36* x^4+2.0202e-14*x^3-16.855*x^2-6.6594e-16*x+1.0并且这里也能得到该牛顿插值多项式的在[-1,1]上的图形,并和原函数进行对比(见Fig.1)。
数值分析 插值法
第二章 插值法在科学研究与工程技术中,常常遇到这样的问题:由实验或测量得到一批离散样点,要求作出一条通过这些点的光滑曲线,以便满足设计要求或进行加工。
反映在数学上,即已知函数在一些点上的值,寻求它的分析表达式。
此外,一些函数虽有表达式,但因式子复杂,不易计算其值和进行理论分析,也需要构造一个简单函数来近似它。
解决这种问题的方法有两类:一类是给出函数()f x 的一些样点,选定一个便于计算的函数()x ϕ形式,如多项式、分式线性函数及三角多项式等,要求它通过已知样点,由此确定函数()x ϕ作为()f x 的近似,这就是插值法;另一类方法在选定近似函数的形式后,不要求近似函数过已知样点,只要求在某种意义下在这些样点上的总偏差最小。
这类方法称为曲线(数据)拟合法。
设已知区间[,]a b 上的实值函数f 在1n +个相异点[,]i x a b ∈处的函数值(),0,1,,i if f x i n ==,要求构造一个简单函数()x ϕ作为函数()f x 的近似表达式()()f x x ϕ≈使得()(),0,1,,i i i x f x f i n ϕ=== (2-1)这类问题称为插值问题。
称f 为被插值函数;()x ϕ为插值函数;0,,n x x 为插值节点;(2-1)为插值条件。
若插值函数类{()}x ϕ是代数多项式,则相应的插值问题为代数插值。
若{()}x ϕ是三角多项式,则相应的插值问题称为三角插值。
若{()}x ϕ是有理分式,则相应的插值问题称为有理插值。
§1 Lagrange 插值1.1 Lagrange 插值多项式设函数f 在1n +个相异点01,,,n x x x 上的值(),0,1,,i i f f x i n ==是已知的,在次数不超过n 的多项式集合n P 中,求()n L x 使得(),0,1,,n i i L x f n n == (2-2)定理1 存在惟一的多项式n nL P ∈满足插值条件(2-2)。
数值分析中的插值误差控制技巧探讨方向
数值分析中的插值误差控制技巧探讨方向数值分析是应用数学的一个分支,它研究利用数值方法解决数学问题的理论和算法。
其中,插值是数值分析中常用的技术之一,它通过已知数据点来估计未知数据点的值。
然而,插值过程中会引入一定的误差,因此探讨插值误差控制技巧对于优化数值计算过程具有重要意义。
本文将就数值分析中插值误差的控制技巧进行探讨,并介绍一些常用的方法。
一、拉格朗日插值法拉格朗日插值法是插值中常用的一种方法。
它通过已知的n个数据点来构造一个n次多项式,进而估计未知数据点的值。
然而,拉格朗日插值法在一些情况下可能会产生较大的误差。
为了降低插值误差,可以考虑以下几种技巧:1.1 均匀插值节点选择拉格朗日插值法中,节点的选择对插值结果的精度有较大影响。
一种常见的节点选择方式是均匀插值节点,即在插值区间上等距取点。
然而,均匀插值节点在某些函数上可能会产生较大的插值误差。
因此,在实际应用中,可以考虑非均匀插值节点选择,如Chebyshev节点,以减小插值误差。
1.2 引入高次插值多项式拉格朗日插值法是通过构造n次多项式来插值估计。
然而,低次多项式在某些情况下可能无法满足精度要求。
为了降低误差,可以考虑使用高次插值多项式。
通过增加多项式的次数,可以提高插值结果的精度,但也需要注意过高次数可能会引入过拟合问题。
二、牛顿插值法牛顿插值法是另一种常用的插值方法。
与拉格朗日插值法相比,牛顿插值法采用了差商的概念,可以简化计算过程。
然而,在插值过程中,牛顿插值法可能存在一些误差。
为了降低误差,可以考虑以下技巧:2.1 计算插值节点的差商时,采用高阶差商牛顿插值法中,通过计算差商来构建插值多项式。
一般而言,差商越高阶,插值精度越高。
因此,在计算差商时,可以考虑采用高阶差商来提高插值精度。
2.2 选择适当的插值节点与拉格朗日插值法类似,牛顿插值法中节点的选择也对插值结果有一定影响。
在实际应用中,可以根据函数的性质来选择合适的插值节点,以减小插值误差。
数值分析(样条插值)总结
3/35
三次样条插值函数满足的连续条件:
(1) S(xj–)= S(xj+) ( j = 1,· · · ,n-1) 连续
(2) S' (xj–)= S'(xj+) ( j = 1,· · · ,n-1)导数连续
(3) S'' (xj–)= S'' (xj+) ( j = 1,· · · ,n-1)二阶导数连续
xn yn
设 f(x) 在各插值节点 xj 处的一阶导数为 mj
取 xj+1 – xj = h,( j = 0,1,2,· · · ,n-1)。当 x∈[xj, xj+ 1]时,
分段三次Hermite插值
x xj h h h h x j 1 x 2 x xj 2 ( x x j )( ) m j ( x x j 1 )( ) m j 1 h h )( x j 1 x ) y j (1 2
S ( x j 0) j ( x j ) y j j 1 ( x j ) y j 1 j ( x j )m j j 1 ( x j )m j 1
18:23
6 6 4 2 S ( x j 0) 2 y j 2 y j 1 m j m j 1 h h h h
18:23
16/35
程序片段2:
Matlab Code : 三次样条插值 % Evaluate spline s = u - x(k); v = y(k) + s.*(d(k) + s.*(c(k) + s.*b(k))); % ------------------------------------------------------function d = splineslopes(h,delta) % SPLINESLOPES Slopes for cubic spline interpolation. % splineslopes(h,delta) computes d(k) = S'(x(k)). % Uses not-a-knot end conditions. % Diagonals of tridiagonal system n = length(h)+1; a = zeros(size(h)); b = a; c = a; r = a; a(1:n-2) = h(2:n-1); a(n-1) = h(n-2)+h(n-1); b(1) = h(2); b(2:n-1) = 2*(h(2:n-1)+h(1:n-2));b(n) = h(n-2); c(1) = h(1)+h(2);c(2:n-1) = h(1:n-2);
数值分析三次样条插值函数
数值分析三次样条插值函数【问题】对函数f x =ex, x∈[0,1]构造等距节点的三次样条插值函数,对以下两种类型的样条函数1. 三次自然样条2. 满足S′ 0 =1,S′ 1 =e的样条并计算如下误差:max{ f x1 −S x1 ,i=1,…,N} i−i−i这里xi−1为每个小区间的中点。
对N=10,20,40比较以上两组节点的结果。
讨论你的结果。
【三次样条插值】在每一个区间[t1,t2],…,[tn−1,tn]上,S都是不同的三次多项式,我们把在[ti−1,ti]上表示S的多项式记为Si,从而,S0 x x∈[t0,t1]∈[t1,t2] S x = S1 x x…Sn−1 x x∈[tn−1,tn]通过在节点处函数值、一阶导数和二阶导数的连续性可以得到:Si−1 ti = yi= Si ti 1≤i≤ n−1Si−1′ ti = Si′ tix→ti+limS′′ x =zi=limS′′(x) x→ti−再给定z0和zn 的值就构成了4n个条件,而三次样条插值函数共4n个系数,故可以通过这4n个条件求解三次样条函数的系数,从而求得该三次样条插值函数。
特别的,当z0=zn=0 时称为自然三次样条。
文本预览:一、自然三次样条插值【自然三次样条插值算法】1.由上面的分析可知,求解三次样条函数实际上就是求解一个矩阵:u 1h 1h1u2h2h2u3…v1 z1 v2 z2 z3=v3 … z…hn−2 n−2 vn−2 z vn−1 un−1 n−1ih3…hn−3un−2hn−26…其中hi=ti+1−ti,ui=2(hi+hi−1),ui=h(yi+1−yi),vi=bi−bi−1 所以自然三层次样条插值的算法就是在得到端点的函数值,一次导数值和二次导数值,然后根据上述求解矩阵得到v,代入自然三次样条的表达式即可。
2.根据题目中所给出的误差估计,计算在区间中点处的最大误差。
【实验】通过Mathematica编写程序得到如下结果:N=101. 计算得到zi的值为:由此可以得到各个区间的自然三次样条插值函数。
数值分析中的插值方法
数值分析中的插值方法在数值分析中,插值是一种通过在已知数据点之间估计未知数据点的方法。
它是一种常见的数据处理技术,用于填补数据间的空白,揭示数据间的关联性,或者建立数据模型。
在本文中,我们将讨论数值分析中的几种常见的插值方法。
一、拉格朗日插值拉格朗日插值是一种基于多项式的插值方法。
假设有n个离散数据点,我们想要在这些点之间插值得到未知数据点的值。
拉格朗日插值可以通过构建一个n次多项式来实现。
例如,给定三个数据点(x0, y0),(x1, y1),(x2, y2),我们可以假定插值多项式为:P(x) = y0 * L0(x) + y1 * L1(x) + y2 * L2(x)其中,L0(x),L1(x),L2(x)是拉格朗日插值多项式的基函数,由以下公式得到:L0(x) = (x - x1) * (x - x2) / ((x0 - x1) * (x0 - x2))L1(x) = (x - x0) * (x - x2) / ((x1 - x0) * (x1 - x2))L2(x) = (x - x0) * (x - x1) / ((x2 - x0) * (x2 - x1))利用这些基函数,我们可以得到插值多项式P(x),从而计算出未知点的值。
二、牛顿插值牛顿插值是另一种常见的插值方法,也是基于多项式的。
与拉格朗日插值不同的是,牛顿插值使用了差商的概念来构建插值多项式。
差商是一种表示数据间差异的指标,它可以用于计算插值多项式的系数。
对于n个数据点,差商可以由以下递归公式计算得到:f[x0] = f(x0)f[x0, x1] = (f[x1] - f[x0]) / (x1 - x0)f[x0, x1, ..., xn] = (f[x1, x2, ..., xn] - f[x0, x1, ..., xn-1]) / (xn - x0)基于差商,我们可以得到牛顿插值多项式的表达式:P(x) = f[x0] + f[x0, x1] * (x - x0) + f[x0, x1, x2] * (x - x0) * (x - x1) + ...利用牛顿插值,我们可以通过已知数据点构建插值多项式,进而估计未知点的值。
数值分析常用的插值方法
数值分析常用的插值方法数值分析中常用的插值方法有线性插值、拉格朗日插值、分段线性插值、Newton插值、Hermite插值、样条插值等。
下面将对这些插值方法进行详细介绍。
一、线性插值(linear interpolation)线性插值是最简单的插值方法之一、假设已知函数在两个点上的函数值,通过这两个点之间的直线来估计中间点的函数值。
线性插值公式为:f(x)=f(x0)+(x-x0)*(f(x1)-f(x0))/(x1-x0)其中,f(x)表示要求的插值点的函数值,f(x0)和f(x1)是已知的两个点上的函数值,x0和x1是已知的两个点的横坐标。
二、拉格朗日插值(Lagrange interpolation)拉格朗日插值是一种基于多项式的插值方法。
它通过多个已知点的函数值构造一个多项式,并利用这个多项式来估计其他点的函数值。
拉格朗日插值多项式的一般形式为:f(x) = Σ[f(xi) * Li(x)] (i=0,1,2,...,n)其中,f(x)表示要求的插值点的函数值,f(xi)是已知的多个点的函数值,Li(x)是拉格朗日基函数。
拉格朗日基函数的表达式为:Li(x) = Π[(x-xj)/(xi-xj)] (i≠j,i,j=0,1,2,...,n)三、分段线性插值(piecewise linear interpolation)分段线性插值是一种逐段线性近似函数的方法。
通过将整个插值区间分成多个小段,在每个小段上使用线性插值来估计函数的值。
分段线性插值的过程分为两步:首先确定要插值的点所在的小段,在小段上进行线性插值来估计函数值。
四、Newton插值(Newton interpolation)Newton插值也是一种基于多项式的插值方法。
利用差商的概念来构造插值多项式。
Newton插值多项式的一般形式为:f(x)=f(x0)+(x-x0)*f[x0,x1]+(x-x0)*(x-x1)*f[x0,x1,x2]+...其中,f(x)表示要求的插值点的函数值,f(x0)是已知的一个点的函数值,f[xi,xi+1,...,xi+k]是k阶差商。
数值分析--chapter3 多项式插值与样条插值
§3.3 拉格朗日(Lagrange)插值−−插值余项
Π(x )的确定方法 引进辅助函数ϕ(t ) = f (t ) − Ln (t ) − K (x )Π(t ), 视x 为(a, b )上的一 个固定点 ϕ(t )在(a, b )上有n + 2个零点:x , x0 , x1 , · · · , xn 反复运用Rolle定理,得 K (x ) = 其中ξ ∈ (a, b )且依赖于x . f (n+1) (ξ ) (n + 1)!
第二个问题,设给定一个函数f ,f 的表达式非常复杂,计算f 的值很不经济。在这种情况下,就要寻找另一个函数p ,它既易 于求值且又是对f 的一个合理的逼近。—— 连续函数的逼近问 题
第三个问题,假定表中给出的数值带有误差。比如当这些值来自 于物理实验时,就可能出现这种情况。现在要寻找一个公式,使 得它可以近似地表示这些数据。—— 离散函数的逼近问题
§3.2 拉格朗日(Lagrange)插值−−拉格朗日插值多项式
两个问题: 1.怎样估计用Ln (x )近似代替f (x )时所产生的误差? 2.是不是插值多项式的次数越高,其计算结果就越精确?
§3.3 拉格朗日(Lagrange)插值−−插值余项
记插值余项为Rn (x ) = f (x ) − Ln (x ) , Rn (x )的性质: 在节点xi 上有 Rn (xi ) = f (xi ) − Ln (xi ) = 0(i = 0, 1, · · · , n) 可设Rn (x )为 Rn (x ) = K (x )(x − x0 )(x − x1 ) · · · (x − xn ) = K (x )Π(x ) 其中,K (x )为待定系数,Π(x ) = (x − x0 )(x − x1 ) · · · (x − xn ) (10)
数值分析2 6三次样条插值
4m h j 1
j
6 h2j1
(
yj
y j1 )
由条件
S( x j 0) S( x j 0) ( j 1,...,n 1)
可得
1 h j 1
m
j
1
2(
1 h j 1
1 hj
)m
j
1 hj
m
j1
3(
y
j
1 h2j
yj
y
j
y h2j1
j1
)
( j 1,...,n 1)
进一步简化为
jm j1 2m j jm j1 g j ( j 1,...n 1)
yk k (x) yk 1 k1(x)
其中
kk1((xx))(1(122xxkxxk1xxxkkxkk11)()(xxxkkx1xxkxkkx11k))22
k(
k 1
(
x) x)
(x (x
xk
)(
x xk
xk1 xk1
)2
xk
1
)(
x x xk1
k
x
k
)2
一、 三次样条的产生和背景
2.三次样条插值函数的定义
三次样条函数 +
S(xi) = yi
3.求解三次样条插值函数的已知条件数和 未知条件数
未知参数个数
4n
已知条件个数
插值条件:
n+1
S(x)∈C2[a,b] :3(n-1)
共 计:
4n-2
缺少条件,通常在插值区间的端点给出,称 为边界条件。
4.常用的三种边界条件
1°已知两端的一阶导数值,即:
周期样条
S( x0 0) S( xn 0)
数值实验 样条插值3
实验要求
• 随节点个数的增加,比较被逼近函数和 样条插值函数误差的变化情况,分析所 得结果并与拉格朗日多项式插值比较 • 用下列数据产生出三次样条插值函数
x y y’ 0 0.0 0.8 1 0.79 2 1.53 3 2.19 4 2.71 5 3.03 6 3.27 7 2.89 8 3.06 9 3.19 10 3.29 0.2
数值实验
样条插值的收敛性
问题的提出
• 多项式插值是不收敛的,即插值的节点 多,效果不一定就好。对样条函数插值 又如何呢?理论上证明样条插值的收敛 性是比较困难的,通过本实验可以验证 这一理论结果
ห้องสมุดไป่ตู้
实验内容
• 请按一定的规则分别选择等距或非等距 的插值节点,并不断增加插值节点的个 数,考虑上一实验中的函数,用matlab的 函数“spline”作此函数的三次样条插值
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
x
-0.46 -0.40 -0.36 -0.30 -0.26 -0.20 -0.16 -0.10 -0.06 -0.00
1 1 25x2
L10 (x)
0.15898 0.24145 0.20000 0.19999 0.23585 0.18878 0.30769 0.23535
0.37175 0.31650
f (x)
L1(x)
yi 1
x xi xi1 xi
yi
x xi1 xi xi1
这种分段低次插值称为分段线性插值。
在几何上就是用折线代替曲线,故分段线 性插值又称为折线插值。
类似地,为求f(x)的近似值,也可选取距点x
最近的3个节点 xi1, xi , xi1 进行二次插值,即取
f
(x)
L2 (x)
i 1
[ yk
k i1
i 1
(
j i 1
x xj xk x j
)]
jk
这种分段低次插值叫分段二次插值。
在几何上就是用分段抛物线代替曲线,故分 段二次插值又称为抛物线插值。
3、三次样条插值 对于给定的n+1个节点,求函数的近似值,可以
作 n次插值多项式,当n较大时,高次插值不仅计算 复杂,而且还可能出现高阶导数不一致收敛的现象;
若采用分段插值,虽计算简单,也具有一致收 敛性,但光滑性比较差.
有些实际问题,比如:船体放样,飞机的机翼 设计等要求二阶光滑度(有二阶的连续导数)。过去, 工程师制图时,往往用一根富有弹性的木条(称为 样条),把它用压铁固定在样点上,其他地方让它 自由弯曲,然后画一条曲线,称为样条曲线。
它实际上是由分段三次曲线连接而成,在连接 点处有二阶连续导数。我们对工程师描绘的样条曲 线,抽象成数学模型,得出的函数称为样条函数, 它实质上是分段多项式的光滑连接。
10
L10 (x) g (xi )li (x) i0
1
g(xi ) 1 25xi2 , li (x)
10 j0
x xj xi x j
ห้องสมุดไป่ตู้
j i
计算结果列于下表,并作草图
x
1 1 25x2
L10 (x)
-1.00 0.03846 0.03846
-0.96 0.04160 1.80438
-0.90 0.04706 1.57872
Si (x) ai bi x ci x2 di x3
x [xi1, xi ]
其中 ai , bi , ci , di 为待定系数。 子区间共有n个,这样的待定系数共有4n个。
20 根据条件(2)和(3),要求分段三次 多项式函数 S(x) 及其一、二阶导数 S'(x), S''(x) 在区间 [a , b] 上都连续,只要它们在各个子 它们在各个子区间的连接点 xi, (i 1,2, , n 1) 上连续即可。
2、分段线性插值与分段二次插值
当给定了n+1个节点 x0< x1< x2<…< xn上的函 数值 y0,y1,y2 , … , yn 后,若要计算点 x(x ≠ xi) 处函数 f(x) 的近似值,可先选取两个节点 xi-1和 xi
使 x [xi1, xi ]
然后在区间 [xi1, xi ] 上作线性插值,即得
0.50000 0.50000
0.60976 0.64316
0.80000 0.84340 0.91743 0.94090 1.00000 1.00000
y 1.5 1.0
0.5
y L10 ( x) y f (x)
1
0
1x
从图中可以看出,用 L10(x) 近似代替 f (x) 时, 只有当 x 在区间 [-0.2,0.2] 内,逼近程度较好,在 其它地方误差就很大,特别在端点附近,误差就更 大。如
-0.86 0.05131 0.88808
-0.80 0.05882 0.05882
-0.76 0.06477 -0.20130
-0.70 0.07547 -0.22620
-0.66 0.08410 -0.10832
-0.60 0.10000 0.1000
-0.56 0.11312 0.19873
-0.50 0.13793 0.25376
(3) S (x i ) yi , (i 0,1, 2, , n)
则称 S(x) 为函数 f(x) 关于节点 x0 , x1, , xn
的三次样条插值函数。
10 条件(1)表明S(x)是一个分段三次多项式。
若用 Si (x) 表示S(x)在第i个子区间 [xi1, xi ] 上的表达式,则 Si (x) 形如
§3 样条插值
1、高次插值的误差分析
从多项式插值的余项估计式
Rn (x)
f ( (n1) )
(n 1)!
n 1
(
x
)
可以看出余项的大小既与插值节点的个数n+1
有关,也与 f (x) 的高阶导数有关。
以拉格朗日插值为例,如果f (x)在区间[a,b] 上存在任意阶导数,且存在于 n 无关的常数 M
使得
且高阶导数要有一致的界。
例如,对于给定区间[-1,1]上的函数
1 g(x) 1 25x2
可以证明
max g (n) ( x) 1 (
1 x1
26
5 )n n! 26
取等距节点,譬如把[-1,1]等分,分点为
xj
1
2j 10
j 0,1, ,10
可以构造10次插值多项式,用拉格朗日公式有
其中
f (0.86) 0.05131, L10 (0.86) 0.88808; f (0.96) 0.04160, L10 (0.96) 1.80438
对于高次插值所发生的这种现象,称为龙格 (Runge) 现象。它表明加密节点并不能保证所得到 的插值多项式能更好地逼近 f (x) 。由于以上原因, 一般都避免使用高次插值,常用的方法就是分段 低次插值。
max f (n1) ( x) M
a xb
则由⑦式有
max
axb
f (x) Ln (x)
M (b a)n1 0 (n 1)!
(n )
可以看出,当插值节点的个数越多,误差越
小,我们还不能简单的认为对所有的插值问题当
插值节点的个数越多,误差就越小。
上面的估计式是有条件的。
即在 [a,b]上函数 f(x) 要有高阶导数,而
下面我们主要讨论常用的三次样条插值函数。
定义4 对于给定函数表
x
x0
x1
…
xn
f (x) y0
y1
…
yn
其中 a x0 x1 xn b ,若函数 S(x) 满足条件
(1)S(x)在每个子区间 [xi1, xi ], (i 1, 2, , n)
上都是不高于三次的多项式;
(2 ) S(x), S(x), S(x) 在区间[a,b]上都连续;