Hermite 插值

合集下载

hermitage插值法

hermitage插值法

hermitage插值法【实用版】目录1.概述 Hermite 插值法2.Hermite 插值法的基本原理3.Hermite 插值法的应用实例4.Hermite 插值法的优点与局限性正文1.概述 Hermite 插值法Hermite 插值法是一种基于分段多项式的插值方法,用于在给定区间内对已知数据点进行插值。

它是一种三次样条插值法,可以提供比其他低阶插值方法更精确的结果。

Hermite 插值法的名称来自于法国数学家Charles Hermite,他在 19 世纪末开发了这种方法。

2.Hermite 插值法的基本原理Hermite 插值法的基本思想是使用一个三次多项式来表示给定数据点之间的函数。

该多项式可以写成:f(x) = a0 + a1x + a2x^2 + a3x^3其中,a0、a1、a2 和 a3 是待定系数,需要通过给定的数据点来确定。

为了找到这些系数,Hermite 插值法使用了三个约束条件:(1)插值多项式在区间的端点处取到给定的函数值,即:f(x0) = a0 + a1x0 + a2x0^2 + a3x0^3 = y0f(x1) = a0 + a1x1 + a2x1^2 + a3x1^3 = y1(2)插值多项式在区间的中点处取到区间的平均值,即:f((x0 + x1) / 2) = (f(x0) + f(x1)) / 2(3)插值多项式的一阶导数在区间的中点处等于给定函数在该点的导数值,即:f"(((x0 + x1) / 2)) = (f"(x1) - f"(x0)) / (x1 - x0)通过解这组线性方程组,可以得到插值多项式的系数 a0、a1、a2 和a3。

一旦得到这些系数,就可以用插值多项式来近似表示给定函数在给定区间内的行为。

3.Hermite 插值法的应用实例Hermite 插值法广泛应用于数值分析、工程计算和计算机图形学等领域。

例如,在计算机图形学中,Hermite 插值法可以用来在给定控制点之间生成平滑的贝塞尔曲线。

埃尔米特插值

埃尔米特插值

0,则可以设:
0(x) (x 1)(ax b)
将:
0 (0) 1
0
(0)
0
带入0(x) (x 1)(ax b),则:
a 1 b 1
则:0 (x) 1 x2
同理: 1( x)为二次项式
又:
1(0) 0
1
(0)
0
则:x 0为1(x)的二重根
则:1(x) cx2 又:1(1) 1
xi
01
f(xi) 0
1
f (xi )
0
1
解: 本题利用承袭性的思想 首先利用:
xi
0
1
f(xi) 0
1
求出: L1(x)
L1 ( x)
x x1 x0 x1
y0
x x0 x1 x0
y1
x
增加:
xi 0
yi 0
求:H2 ( x), 其中H2 ( x)满足:
xi
01
f(xi) 0
1
f (xi )
则:c 1
则:1(x) x2 同理:0 (x) x(1 x)
插值余项为:
R(x)
f (x) H2(x)
f
(
3!
)
(
x
x0
)2
(
x
x1 )
仿Lagrange 或 Newton 证明
情形2. 已知: 4个条件
xi
x0 x1
yi = f(xi) y0 y1
yi f (xi ) y0 y1
一、 Hermite插值多项式的定义
插值条件中除函数值外, 还有导数值(回顾 Taylor展开式, 是某点的导数值), 如
已知: 2n+2个条件

数值分析(13)Hermite插值

数值分析(13)Hermite插值
Hermite插值中,最基本而重要的情形是只要求 一阶导数的条件。给出n 1个互异节点x0 , x1 , xn上 的函数值和导数值 yi f ( xi )和y 'i f '( xi ) ( i 0,1, 2, , n) 构造不低于2n 1次插值多项式H 2 n 1 ( x ),要求满足 插值条件 H 2 n 1 ( x i ) yi i 0, 1, 2, n H '2 n1 ( xi ) y 'ii 0 i 源自0 i 0 n i 0 nn
n
利用Lagrange插值基函数li ( x ) (
j 0 ( ji )
1)构造hi ( x )( i 0,1, 2, , n) hi ( x )应满足条件: (1)hi ( x )应是 2n 1次多项式; 1 i j (2)hi ( x j ) ij i j 0 h 'i ( x j ) 0 ( i,j 0, 1, 2, ,n)
由条件(2)可列出方程组 2 h ( x ) ( ax b ) l i i i i ( xi ) 1 h' ( x ) al 2 ( x ) 2(ax b)l ( x )l ' ( x ) 0 i i i i i i i i i
li ( xi ) 1, axi b 1, a 2l ( xi ) 0
二、Hermite插值多项式的构造
1、Lagrange型插值基函数法 设Hermite插值多项式为 H 2 n1 ( x ) hi ( x ) yi hi ( x ) y 'i
i 0 i 0 n n
使其满足插值条件 H 2 n 1 ( x i ) yi H '2 n1 ( xi ) y 'i

埃尔米特(Hermite)插值

埃尔米特(Hermite)插值

实验二埃尔米特(Hermite)插值一、实验目的:1.掌握埃尔米特插值算法原理;2.使用C语言编程实现埃尔米特插值算法。

二、实验准备:阅读《数值分析》2.4节二、实验要求:某人从甲地开车去乙地,每隔一段时间对行车距离和速率进行一次采样,得到在n+1 个采样时刻点t i 的里程s i和速率v i(i=0, 1, ..., n)。

要求编程构造埃尔米特插值多项式H2n+1(t),满足H2n+1(t i)=s i,H'2n+1(t i)=v i,对所有i=0, 1, ..., n成立,并据此计算m个给定时刻的里程和速率。

函数接口定义:void Hermite_Interpolation( int N, double t[], double s[], double v[], int m, double ht[], double hs[], double hv[] );其中N为采样点个数(注意这个N不是公式中的最大下标n,而是等于n+1),采样时刻点t i、里程s i、速率v i分别通过t、s、v传入;m是需要估算的给定时刻的个数,ht传入给定的时刻点,相应计算出的里程和速率应分别存储在hs和hv中。

裁判程序如下:裁判输入数据:20.0 1.00.0 1.00.0 0.050.0 0.2 0.5 0.8 1.030.0 0.5 1.0100.0 170.0 200.030.0 150.0 0.050.0 0.25 0.5 0.75 1.050.0 1.0 2.0 3.0 4.00.0 60.0 160.0 260.0 300.05.0 70.0 100.0 120.0 20.0100.5 1.0 1.5 2.0 2.5 3.0 3.5 3.8 3.95 4.0标准输出数据:0.0000 0.1040 0.5000 0.8960 1.00000.0000 0.9600 1.5000 0.9600 0.0000100.0000 127.9297 170.0000 195.9766 200.000030.0000 165.4688 150.0000 52.9688 0.000030.2222 60.0000 105.9303 160.0000 206.3438 260.0000 307.9764 305.7687 299.9796 300.000062.6024 70.0000 109.0488 100.0000 92.9745 120.0000 41.2374 -44.8421 -16.2783 20.0000#include<stdio.h>#define MAXN 5 /* 最大采样点个数 */#define MAXM 10 /* 最大估算点个数 */void Hermite_Interpolation( int N, double t[], double s[], double v[], int m, double ht[], double hs[], double hv[] ){double l[10],p[10],h1[10],h2[10],x,ll[10],pp[10];int kk;for(kk=0;kk<m;kk++){x=ht[kk];hs[kk]=0;hv[kk]=0;int i;for(i=0;i<N;i++){l[i]=1;ll[i]=1;int j;for(j=0;j<N;j++){if(i!=j){l[i]=l[i]*(x-t[j])/(t[i]-t[j]);}}p[i]=0;pp[i]=0;int k;for(k=0;k<N;k++){if(i!=k){p[i]=p[i]+l[i]/(x-t[k]);pp[i]=pp[i]+ll[i]/(t[i]-t[k]);}}h1[i]=(1-2*pp[i]*(x-t[i]))*l[i]*l[i];h2[i]=(x-t[i])*l[i]*l[i];hs[kk]=hs[kk]+s[i]*h1[i]+v[i]*h2[i];int kkk;for(kkk=0;kkk<N;kkk++){if(x==t[kkk])break;}if(x==t[kkk])hv[kk]=v[kkk];elsehv[kk]=hv[kk]+s[i]*(2*p[i]*l[i]-4*l[i]*p[i]*(x-t[i])*pp[i]-2*pp[i]*l[ i]*l[i])+v[i]*(l[i]*l[i]+2*l[i]*p[i]*(x-t[i]));}}}int main(){int N, m;double t[MAXN], s[MAXN], v[MAXN]; /* 用于构造的数据 */double ht[MAXM], hs[MAXM], hv[MAXM]; /* 用估算的数据 */int i;while ( scanf("%d", &N) != EOF ) {for ( i=0; i<N; i++ )scanf("%lf", &t[i]);for ( i=0; i<N; i++ )scanf("%lf", &s[i]);for ( i=0; i<N; i++ )scanf("%lf", &v[i]);scanf("%d", &m);for ( i=0; i<m; i++ )scanf("%lf", &ht[i]);Hermite_Interpolation( N, t, s, v, m, ht, hs, hv );for ( i=0; i<m; i++ )printf("%.4lf ", hs[i]);printf("\n");for ( i=0; i<m; i++ )printf("%.4lf ", hv[i]);printf("\n\n");}return 0; }。

Hermite_插值法

Hermite_插值法

, x0]
lim
xi x0
f [x0, x1,
,
xn ]
1 n!
f
(n) ( x0 )
重节点Newton插值
在 Newton 插值公式中,令 xi x0 , i = 1, … , n, 则
Nn( x) f ( x0 ) f [ x0 , x1]( x x0 )
f ( x0 ) f '( x0 )( x x0 )
( x1 x0 )( x1 x2 )
三点三次Hermite 插值
余项公式
由于 x0 , x1 , x2 是 R(x) 的零点,且 x1 是二重零点,故可设 R( x) f ( x) P( x) k( x)( x x0 )( x x1 )2 ( x x2 )
与 Lagrange 插值余项公式的推导过程类似,可得
x
x0
)
x x0
x1 x1
2
1(
x)
(
x
x1
)
x x1
x0 x0
两点三次Hermite 插值
满足插值条件
P(x0) = f(x0) = y0,P’(x0) = f’(x0) = m0 P(x1) = f(x1) = y1,P’(x1) = f’(x1) = m1
的三次 Hermite 插值多项式为
三点三次Hermite 插值
三点三次 Hermite 插值
插值节点:x0 , x1 , x2
插值条件:P(xi) = f(xi),i = 0, 1, 2,P’(x1) = f’(x1) 设 P( x) f ( x0 ) f [x0, x1]( x x0 )
f [ x0, x1, x2]( x x0 )( x x1) A( x x0 )( x x1 )( x x2 ) 将 P’(x1) = f’(x1) 代入可得 A f '( x1 ) f [ x0 , x1] f [ x0, x1, x2]( x1 x0 )

5.2Hermite插值

5.2Hermite插值

六、分段Hermite插值 (与学生一起看书学习) 6.6 分段Hermite插值(任玉杰) 1、分段Hermite插值函数(408页) (1)定义6.4(分段三次Hermite插值函数)
分段三次Hermite插值函数与一般的Hermite插值的区别:
设在节点 a x0 x1 xn b 上,
r ( xi ) 0, i 0,1,2,, n r ( xik ) 0, k 0,1,2,, m
r ( x) 的零点个数m+n+2个.
r ( x) 0
四、Hermite插值多项式的构造 设在节点 a x0 x1 xn b 上,
yi f xi , yi f xi i 0,1, n
0 ( x) y1 1 ( x) H3 ( x) y00 ( x) y11 ( x) y0
H 2 n1 x y j j x yj j x .
j 0 n
n 1 2 j x 1 2 x x j l j x. k 0 x j xk k j
提示:令
j ( x) (ax b)l 2 j ( x), j ( x) (cx d )l 2 j ( x),
例:求满足条件:
f x0 , y1 f x1 , y1 f x1 y0 f x0 , y0
的三次Hermite插值多项式 H 3 ( x) 。
要求插值多项式 H x ,满足条件
① H xi yi , H xi yi i 0,1, n .
1 H x C [a, b] ②
③在每个子区间 [ xi 1 , xi ] 上为三次多项式。 (2)分段三次Hermite插值多项式的形式

埃尔米特hermite插值

埃尔米特hermite插值

埃尔米特插值5.4.1 问题的提出面讨论的拉格朗日和牛顿插值多项式的插值条件只要求在插值节点上,插 值函数与被插值函数的函数值相等,即)(i n x L =f(i x )和n N (i x )=f(i x ),有时 不仅要求插值多项式在插值节点上与被插值函数的函数值相等,还要插值多项式的导数在这些 点上被插函数的导数值相等,即要求满足插值条件:n i x f x H x f x H i i n i i n ,...,1,0,(')('),()()1212===++ (5.4.1)的次数不超过 2n+1的插值多项式12+n H ,这就是埃尔米特 (Hermite) 插值问题。

定义:假设在区间【α,b 】上给定了n 个互不相同的点x 1,x 2,…,x n 以及一张数表(*)记m=α1+α2+…+αn 。

早在 1878年C.埃尔米特就证明:存在惟一的次数不高于m-1的代数多项式H n (x ),使得,H n (x )为表(*)的以为结点组的埃尔米特插值多项式。

如果定义在【α,b 】上的函数ƒ(x )在x k (k =1,2,…,n )处有αk-1阶导数,并取,则称相应的H n (x )为ƒ(x )的以为结点组的(α1,α2,…,αn )阶埃尔米特插值多项式。

作为特殊情况,若诸αk 都为1,则H n (x )就是ƒ(x )的拉格朗日插值多项式;若n =1,则H n (x )为ƒ(x )的α1-1阶泰勒多项式。

最使人们注意的是诸αk 都为2的情况,这时H n (x )为次数不高于2n -1的代数多项式。

如果写H n (x )可表示为在这种情况下,常取,而给以适当的限制。

5.4.2三次埃尔米特插值我们考虑只有两个节点的三次埃尔米特插值。

设插值点为(0x ,0y ),(1x ,1y ),要求一次数不超过3的多项式)(3x H ,满足下列条件:i i i i m x H y x H ==)(',)(33 i=0,1(5.4.2) 式中i m =f ′(i x ),i=01。

第2章-插值法(Hermite插值,样条插值)

第2章-插值法(Hermite插值,样条插值)
§
2.5 埃尔米特插值法
Newton插值和Lagrange插值虽然构造比较简单,但都存 在插值曲线在节点处有尖点,不光滑,插值多项式在节 点处不可导等缺点
问题的提出: 不少实际问题不但要求在节点上函数值相等,而且还要 求它的导数值也相等(即要求在节点上具有一阶光滑度), 甚至要求高阶导数也相等,满足这种要求的插值多项式就是 埃尔米特(Hermite)插值多项式。下面只讨论函数值与导数 值个数相等的情况。
由 j ( x j ) 1 ,可得
Cj
1 ( x j x0 ) 2 ( x j x1 ) 2 ( x j x j 1 ) 2 ( x j x j 1 ) 2 ( x j xn ) 2

j ( x) ( x x j )
( x x0 ) 2 ( x x1 ) 2 ( x x j 1 ) 2 ( x x j 1 ) 2 ( x xn ) 2 ( x j x0 ) 2 ( x j x1 ) 2 ( x j x j 1 ) 2 ( x j x j 1 ) 2 ( x j xn ) 2
( x x j )l j 2 ( x)
2016/8/14 6
(ii)由条件(1)可知,x0 , x1,, x j 1, x j 1,, xn都是 j ( x)的二重根,令
j ( x) C j (ax b)( x x0 ) 2 ( x x1 ) 2 ( x x j 1 ) 2 ( x x j 1 ) 2 ( x xn ) 2
17

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

n
= ∑ y j + ( x − x j )(y 'j − 2 y j l 'j ( x j ))l 2 ( x ) ( j
j =0
n
x − xi 其中l j ( x) = ∏ 为Lagrange插值基函数。 i = 0,i ≠ j x j − xi
n
定理:给定互异的节点x0 , x1 ,..., xn,给定函数值 f ( xi ) = yi , f '( xi ) = yi ', i = 0,1,..., n, 则存在唯一的Hermite插值多项式H 2 n +1 ( x) ⎧ H 2 n +1 ( xi ) = yi = f ( xi ), ⎪ 满足 ⎨ ' H 2 n +1 ( xi ) = yi ' = f ' ( xi ) ⎪ ⎩ (i = 0,1, 2,...n)
H 2 n +1 ( x)称为Hermite插值多项式。
Hermite插值多项式的求法— Lagrange方法
由插值条件 ⎧ H 2 n +1 ( xi ) = yi = f ( xi ), ⎪ ⎨ ' H 2 n +1 ( xi ) = yi ' = f ' ( xi ) ⎪ ⎩
n
(i = 0,1, 2,...n)
x−0 x−
π
6 ]2
H 3 ( x) = [[1 + 2
π
] × 0 + ( x − 0) × 1][
π
6 6 π x− 6 ] × 1 + ( x − π ) × 3 ][ x − 0 ]2 +[[1 − 2 π π 2 6 2 6 6
3 6 3 π 36 2 = x ( x − 1) + [( − x ) + ( x − )] 2 x π 2 π 2 6 π 6
Hermite插值问题的提法
给定节点x0 , x1 ,..., xn , 给定函数f ( x)
n 在节点处{xi }0 的函数值y0 , y1 ,..., yn ,
以及相应的一阶导数值y0 ', y1 ',..., yn ',
求多项式H 2 n +1 ( x), 使得
⎧ H 2 n +1 ( xi ) = yi = f ( xi ), ⎪ ⎨ ' H 2 n +1 ( xi ) = yi ' = f ' ( xi ) ⎪ ⎩ (i = 0,1, 2,...n)
函数逼近的插值法 ——Hermite插值多项式
主讲 孟纯军
Hermite 插值多项式
Lagrange插值公式所求得L(x)保证了节点处的 函数值相等,也就是保证了函数的连续性。 但不少实际问题还需要插值得光滑度,也就是 还要求它在节点处的导数值也相等,导数的阶 数越高则光滑度越高。 现代的仿生学就是一个典型的例子。在设计交 通具的外形,就是参照海豚的标本上已知点及 已知点的导数,做插值在计算机上模拟海豚的 外形制成飞机、汽车等外形。
β j ( x) = C ( x − x j )
( x − x0 ) 2 ( x − x1 ) 2 ...( x − x j −1 ) 2 ( x − x j +1 ) 2 ...( x − xn ) 2 ( x j − x0 ) 2 ( x j − x1 ) 2 ...( x j − x j −1 ) 2 ( x j − x j +1 ) 2 ...( x j − xn ) 2
0 = α j ( x0 ) = α j ( x1 ) = ... = α j ( x j −1 )
' ' '
= α j ( x j +1 ) = ... = α j ( xn )
' '
而α j ( x j ) = 1, α j ( x j ) = 0
'
则x0 , x1 ,...x j −1 , x j +1 ,..., xn是α j ( x)的二重零点。
= C ( x − x j )l 2 ( x) j
由于β j ( x)是2n + 1次多项式,故C为常数。
β j '( x j ) = Cl 2 ( x) + 2C ( x − x j )l j ( x)l j '( x) |x = C = 1 j
j
所以 β j ( x) = ( x − x j )l ( x)
如何实现
l 'j ( x j )?
1 例如:l0 ( x) = ( x − x1 )( x − x2 )...( x − xn ) A 其中 A = ( x0 − x1 )( x0 − x2 )...( x0 − xn ), 则
1 l 0 ( x) = (( x − x2 )( x − x3 )...( x − xn ) + A ( x − x1 )( x − x3 )...( x − xn ) + ...
'
j =i j≠i
i = 0,1, 2,...n
(3)β j ( xi ) = 0
⎧1 (4)β j ( xi ) = ⎨ ⎩0
'
i = 0,1, 2,...n
j =i j≠i
α j ( x)为次数不超过2n + 1的多项式,考虑它的零点 :
0 = α j ( x0 ) = α j ( x1 ) = ... = α j ( x j −1 ) = α j ( x j +1 ) = ... = α j ( xn )
例设 f ( x ) = sin x , 试用 f (0) = 0 ,
1, ' π 3 确定二点三次 , f '( ) = f (0) = 1 f( )= 6 2 6 2
Hermite 插值多项式 H 3 ( x ) 并计算 H 3 (
π
π
12
) 的值。
解: 由二点三次 Hermite 插值公式得:
' '
x − xj hj )2
)2
) y j + ( x − x j ) y j )(
x − x j −1 hj
R3 ( x) = f ( x) − H 3 ( x) 1 (4) 2 2 = f (ξ )( x − x j −1 ) ( x − x j ) 4! 其中,h j = ( x j − x j −1 ), ξ ∈ ( x j −1 , x j )
2
所以有
1 3 H 3( ) = π = 0 .2 5 8 7 6 8 6 1 6 + − 12 48 4 96
π
π
与真值 sin
π
12
= 0.258819045 相比已有三位有小数字。
x=[0,pi/6];y=sin(x);z=cos(x);u=pi/12; d=hermitchazhi(x,y,z,u) d= 0.25876861681747 e=abs(sin(u)-d) e= 5.042828505269492e-005
Hermit插值问题的一般提法
若给定插值多项式在节点xi处的j阶导数值p( j −1) ( xi ) ,
则在节点xi处的j − 2, j − 3,L,1阶导数值 p( j -1) ( xi ), p( j - 2) ( xi ),..., p '( xi ) 都给定,
此节点的函数值p( xi )也给定。
故得:
α j ( x) = (−2l ( x j ) x + 1 + 2 x l ( x j ))l ( x )
' j ' j j 2 j
= (1 + 2( x j − x)l ( x j ))l ( x )
' j 2 j
β j ( x)也为次数不超过2n + 1的多项式,它的零点 :
0 = β j ( x0 ) = β j ( x1 ) = ... = β j ( x j −1 ) = β j xn )
α j ( x) = C ( x)
= C ( x)l 2 ( x) j
由于α j ( x)是2n + 1次多项式,故C ( x)为一次多是项式。
令 C ( x) = Ax + B 即 α j ( x) = ( Ax + B)l 2 ( x) j
⎧ A = −2l 'j ( x j ) ⎪ ⎧ Ax j + B = 1 ⇒⎨ ⎨ ' B = 1 + 2 x j l 'j ( x j ) ⎪ ⎩ ⎩ A + 2( Ax j + B)l j ( x j ) = 0
则 : H 3 ( x) = α j −1 ( x) y j −1 + α j ( x) y j + β j −1 ( x) y 'j−1 + β j ( x) y 'j
= ((1 + 2 +((1 − 2
x − x j −1 hj x − xj hj
) y j −1 + ( x − x j −1 ) y j−1 )(
也就是说,在节点xi处满足j个插值条件。
0 多项式在节点 xi 满足ki插个值条件: ( j ) ( x ) = c (0 ≤ j ≤ k −1,0 ≤ i ≤ n) P i ij i
1 R( x) = f ( x) − H 2 n+1 ( x) = f (2 n+2) (ξ )ω 2 ( x) (2n + 2)!
其中, ξ ∈ (a, b),ω ( x) = ( x − x0 )( x − x1 ) ⋅⋅⋅ ( x − xn )
三次Hermite插值多项式(n=1)
相关文档
最新文档