2.4 Hermite插值多项式
2.5
1
的 Ln(x)
Ln(x) f (x)
n
i
( i 0 , ... , n )
2
1.5
n=10
增加插值多项式的次数 并不一定会有更好的插值结果, 这是因为高次多项式的振荡是很厉害的. n=5 n 越大, 端点附近抖动 越大,称为龙格 (Runge) 现象
1
n=2
0.5
由β'0(x0)=1 ,得
a
1 ( x 0 x1 )
2
,
于是 同理有
0 ( x ) ( x x 0 )(
x x1 x0 x1
)
2
1 ( x ) ( x x 1 )(
x x0 x1 x0
)
2
7
定理:满足插值条件(*)的三次Hermite插值 多项式H3(x)存在且唯一。
使之满足
0 ( x0 ) 1 0 ( x1 ) 0 0 ( x 0 ) 0 0 ( x1 ) 0
1 ( x 0 ) 0 1 ( x1 ) 1 1 ( x 0 ) 0 ( x ) 0 1 1
0
-0.5 -5
-4
-3
-2
-1
0
1
2
3
4
5
分段低次插值
事实上已被证明:对于 n 的高阶插值
公式 L n ( x ) 只有当 x 3 . 63 时才有 L n ( x ) f ( x ).
分段插值的概念
所谓分段插值,就是将被插值函数逐段多项式 化。一般来说,分段插值方法的处理过程分两步, 先将所考察的区间作一分划
L1 , i ( x ) x x i1 x i x i1 yi x xi x i1 x i yi1
x i x x i 1 , i 0, 1, , n 1
分段线性插值函数
L1 , 0 ( x ) ~ L 1 ,1 ( x ) L1 ( x ) L1 , n 1 ( x ) x 0 x x1 x1 x x 2 x n 1 x x n
F ( t ) f ( t ) H 3 ( t ) C ( x )( t x 0 ) ( t x1 )
2 2
10
显然,F(t)有三个零点x0, x, x1,由Rolle定理知, F'(t) 至少有两个零点t0, t1满足x0<t0<t1<x1,而x0和x1也是
F'(t)零点, 故F'(t) 至少有四个相异零点.
分段线性插值曲线图:
注:由图象可知, 在节点 处的光滑性较差,为了提高光滑性, 讨论分段三次埃尔米特插值。
~ L1 ( x )
3.分段线性插值函数的余项
定理:设 f(x) 在[a,b]上有二阶连续导数 f″(x) ,则对
x [ a , b ], 有
其中,
| R ( x ) | | f ( x ) L1 ( x ) |
: a x 0 x1 x n b
并在每个 x i , x i 1 子区间上构造插值多项式,然后 把它们装配在一起,作为整个区间 a , b 上的插值 函数,即称为分段多项式。
二、分段线性插值
1.问题的提法
定义 设f(x)是定义在[a,b]上的函数,在节点
2
4
( x ) | h M | R ( x ) | | f ( x ) L1 2 8
优点:计算简单; 适用于光滑性要求不高的插值问题。 缺点:分段插值函数只能保证连续性, 失去了原函数的光滑性。
例 : 考 虑 构 造 一 个 函 数 f ( x ) co s x的 等 距 节 点 函 数 表 , 要使分段线性插值的误差不大于 长 h应 取 多 大 ? 1 2 10 , 最 大 步
8
三次Hermite插值多项式的余项
定理
设 f(x) 在包含x0, x1的区间 [a, b]内存 在四阶导数,则对任意x[a,b] ,总存在一 个(a, b)(依赖于x)使
R3 ( x ) f ( x ) H 3 ( x ) f
(4)
( )
4!
( x x0 ) ( x x1 )
由
3 P4 (0 ) 2 B 0 2 P (1) 1 ( A B ) 1 4 2
解得A=1/4, B=-3/4 故
P4 ( x ) 1 2 x
2
3 2
x
1 4
( x 3) x ( x 1)( x 2 )
1 4
反复应用Rolle定理, 得F(4)(t)至少有一个零点设为 ξ∈(a, b)
11
F ( t ) f ( t ) H 3 ( t ) C ( x )( t x 0 ) ( t x1 )
2
2
F
(4)
( ) f
f
(4)
(4)
( ) C ( x )( 4 ! ) 0
2
2
9
证明: 由插值条件知
R3(x0)=R3'(x0)=0, R3(x1)=R3'(x1)=0
取 x 异于 x0 和 x1, 设
R 3 ( x ) C ( x )( x x 0 ) ( x x 1 )
2 2
利用 f(x) – H3(x)=C(x)(x – x0)2(x – x1)2 构造辅助函数
3
两点三次Hermit插值(续2) 其中 0 ( x ), 1 ( x ), 0 ( x ), 1 ( x )
都是次数为3的多项式
令 H 3 ( x ) y 0 0 ( x ) y1 1 ( x ) y 0 0 ( x ) y1 1 ( x )
则H3(x)是一个次数3的多项式且满足插值条件(*)
,
i=0,1,2,…,n
(3) L1 ( x ) 在区间[a , b]上连续; 则称 L1 ( x ) 是f(x)在[a ,b]上的分段线性插值函数。
2.分段线性插值函数的表达式
由定义,1 ( x ) 在每个子区间[xi ,xi+1](i=0,1,2,,n-1)上 L 是一次插值多项式;
•插值余项与节点的分布有关; •余项公式成立的前提条件是f ( x ) 有足够阶连续导 数(即函数足够光滑),但随着节点个数的增加, 这个条件一般很难成立; ( n 1) ( ) 可能会增大。 •随着节点个数的增加,f
随着节点个数增加到某个值,误差反而会增加。
例:在[5, 5]上考察 f ( x ) 2 1 x 。取 10
C (x)
( )
(4)
4!
R 3 ( x ) C ( x )( x x 0 ) ( x x 1 )
2 2
f
( )
4!
[( x x 0 )( x x 1 )]
2
12
例 求一个次数为4的多项式P4(x),使它满足 P4(0)= P'4(0)=0, P4(1)= P'4(1)=1 ,P4 (2)=1
在区间 [ a , b ]上
| R ( x ) | mΒιβλιοθήκη a x | R i ( x ) |
0 i n 1
M2 2
( x x i )( x x i 1 )
由于
m a x ( x x i )( x x i 1 )
于是
( x i 1 x i ) 4
2
2
h
第四节 Hermite 插值多项式
在实际问题中,对所构造的插值多项式,不仅 要求在节点上函数值相等,而且要求在节点上若干阶 导数也相等。即,要求插值函数P(x)满足
P ( x i ) f ( x i ), P '( x i ) f '( x i ), , P
(m )
( xi ) f
(m )
a= x0< x1<x2<…<xn-1<xn=b, 的函数值为 y0 , y1 ,y2 ,…yn-1 ,yn ,若函数 L1 ( x ) 满足条件 (1) L1 ( x ) 在每个子区间[xi , xi+1](i=0,1,2,,n-1)上是 线性插值多项式;
(2)
L1 ( x i ) y i
2
2
0 ( x ) (1 2
x x0 x1 x 0
)(
x x1 x 0 x1
)
2
5
同理
1 ( x ) (1 2
x x1 x 0 x1
)(
x x0 x1 x 0
)
2
6
设
0 ( x ) a ( x x 0 )( x x 1 )
2
H 3 ( x i ) y i
2
两点三次Hermit插值(续1)
5
2
直接设
H 3 ( x ) ax
3
bx
cx d
待定系数将使计算复杂,且不易推广到高次。回忆 Lagrange插值基函数的方法,引入四个基函数
0 ( x ), 1 ( x ), 0 ( x ), 1 ( x )
( xi )
把此类插值多项式称为埃米尔特(Hermite) 插值多项式或称带导数的插值多项式,记为H (x)。
1
两点三次Hermit插值
已知:
x y
x0 y0
y y 0
H 3 ( xi ) y i ,
x1 y1 y1
i 0,1
(*)
构造一个次数3的多项式H3(x) ,满足插值条件:
一类四次hermite插值多项式逼近的最佳常函数估计
一类四次hermite插值多项式逼近的最佳常函数估计一类四次hermite插值多项式逼近的最佳常函数估计四次hermite插值多项式逼近是指用多项式逼近某一类常函数,其中hermite插值多项式是由插值点处的函数值和导数值求得的。
在逼近过程中,为了使逼近误差最小,通常采用最佳常函数估计的方法。
最佳常函数估计的思想是,在满足一定条件的情况下,找到一类函数,使得这一类函数在所有可能的常函数中,其逼近误差最小。
四次hermite插值多项式逼近最佳常函数估计的具体方法如下:1. 选择插值点在四次hermite插值多项式逼近中,首先要选择插值点。
一般来说,插值点的选择应当满足等距或等比分布的原则。
这样可以使逼近误差均匀分布,从而使得最终的逼近效果最优。
2. 求解hermite插值多项式在选择了插值点之后,就可以开始求解hermite插值多项式了。
这一步的具体方法是,根据插值点处的函数值和导数值,求解hermite插值多项式的系数。
3. 计算逼近误差在求得her插值多项式之后,就可以开始计算逼近误差了。
逼近误差是指多项式逼近函数时所产生的误差。
计算逼近误差的具体方法是,在所有的插值点处分别计算多项式和函数的差值,然后取这些差值的最大值。
这个最大值就是逼近误差。
4. 比较逼近效果在计算出逼近误差之后,就可以比较多项式逼近函数的效果了。
如果逼近误差较小,说明多项式逼近函数的效果较好;如果逼近误差较大,则说明多项式逼近函数的效果较差。
四次hermite插值多项式逼近最佳常函数估计的方法介绍到这里。
总的来说,四次hermite插值多项式逼近是一种非常有效的方法,可以用来逼近各种常函数。
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个条件
2.4 Hermite插值多项式
i=0,1,2,…,n
(3) L1 ( x) 在区间[a , b]上连续; 则称 L1 ( x)是f(x)在[a ,b]上的分段线性插值函数。
2.分段线性插值函数的表达式
由定义,1 ( x) 在每个子区间[xi ,xi+1](i=0,1,2,,n-1)上 L 是一次插值多项式; x xi 1 x xi L1,i ( x ) yi yi 1 xi xi 1 xi 1 xi
4
基函数求法:
求
0 ( x)
1 a ( x0 x1 )2
3
0 ( x1 ) 0 0 ( x1 ) 0
0 ( x ) [a b( x x0 )]( x x1 )2
0 ( x0 ) 1
2 b ( x1 x0 )( x0 x1 ) 2
-4
-3
-2
-1
0
1
2
3
4
5
分段低次插值
事实上已被证明:对于n 的高阶插值 公式Ln ( x )只有当 x 3.63时才有Ln ( x ) f ( x ).
分段插值的概念
所谓分段插值,就是将被插值函数逐段多项式 化。一般来说,分段插值方法的处理过程分两步, 先将所考察的区间作一分划
分段三次Hermite插值多项式存在唯一
2.分段三次Hermite插值的表 达式
当 x∈[xi,xi+1]时, 两点Hermite插值
x xi x xi 1 2 x xi 1 x xi 2 S 3 ( x) (1 2 )( ) yi (1 2 )( ) yi 1 xi 1 xi xi xi 1 xi xi 1 xi 1 xi x xi 1 2 x xi 2 ( x xi )( ) yi ( x xi 1 )( ) yi1 xi xi 1 xi 1 xi
ch2-4Hermite插值
则Hermite插值多项式为:
H ( x ) hi ( x ) yi H i ( x ) y'i
i 0
n
Hermite插值多项式的构造
hi ( x )在x j ( j i )处的函数值与导数值均 为0,
故可设 : hi ( x ) [a b( x xi )] [l i ( x )]2
这里li(x)为拉格朗日插值基函数
把 hi ( xi ) 1 h'i ( xi ) 0 (i 0,1,, n) 代入得
hi ( xi ) b l ( xi ) 2[a b( x xi )]l i ( xi )l i ( xi ) a 1; b 2al i ( xi ) 0
2. Hermite插值的基本定理;
3. Hermite插值多项式的构造 4.分段三次Hermite插值; 5.一般插值问题。
对x x1 1有:h0 (1) 0, h1 (1) 1, H 0 (1) 0,
(0) 0可设 由条件h0 (0) 1, h0 (1) 0, h0 h0 ( x ) (ax b)( x 1)
(0) 0, 得b a 1 利用h0 (0) 1, h0 所以h0 ( x ) ( x 1)( x 1) 1 x
( x i ) y i ( i 0,1,2,...n) '( xi ) y
' i
( i 0,1,2,...n)
保持插值曲线在节点处有切线(光滑), 使插值函数和被插函数的密和程度更好 。
二、 Hermite插值问题的提法
设函数f(x) 在区间[ a, b] 上有 n+1个互异节点 a=x0<x1<x2<……<xn=b , 定义在[a,b]上函数f(x) 在节点上满足: f(xi) = yi, f ' (xi)=y ' i, i=0,1,2……n 求一个次数不高于2n+1次的插值多项式H(x)
埃尔米特(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插值多项式求解方法基于降阶法的Hermite插值多项式求解方法是一种数值分析方法,用于求解函数在给定点的值。
该方法的基本思想是将高阶多项式转化为低阶多项式,从而简化计算过程。
具体步骤如下:1. 定义插值点:选择一组已知的插值点 $(x_0, y_0), (x_1, y_1), \ldots, (x_n, y_n)$,其中 $x_0 < x_1 < \ldots < x_n$。
2. 构造降阶多项式:对于 $i = 0, 1, \ldots, n$,定义 $p_i(x) = (x - x_i)\cdot q_i(x)$,其中 $q_i(x)$ 是 $(n-1)$ 阶多项式。
3. 求解 $q_i(x)$:对于 $i = 0, 1, \ldots, n$,求解 $(n-1)$ 阶方程$q_i(x_j) = \delta_{ij}$,其中 $\delta_{ij}$ 是 Kronecker delta 函数。
4. 求解 $p_i(x)$:对于 $i = 0, 1, \ldots, n$,求解 $(n+1)$ 阶方程$p_i(x_j) = y_j$。
5. 计算插值多项式:最终的插值多项式为 $H(x) = \sum_{i=0}^{n} p_i(x)\cdot \varphi_i(x)$,其中 $\varphi_i(x) = \frac{(x - x_0)(x - x_1) \cdots (x - x_{i-1})(x - x_{i+1}) \cdots (x - x_n)}{(x_i - x_0)(x_i - x_1) \cdots (x_i - x_{i-1})(x_i - x_{i+1}) \cdots (x_i - x_n)}$。
通过以上步骤,可以求解出满足给定插值条件的 Hermite 插值多项式。
在实际应用中,可以根据具体问题选择合适的插值点,并利用该方法进行数值计算。
艾米特插值
若 αi ( x ) , βi ( x )( i = 0,1) ,满足
αi (x j ) = δi j
1 i = j = , , α i′( x j ) = 0 0 i ≠ j (i = 0 , 1)
β i ( x j ) = 0 , β i′( x j ) = ( x ) = ( − 2 l ( x j ) x + 1 + 2 x l ( x j )) l ( x )
' j ' j j 2 j
= (1 − 2 ( x − x j ) l ( x j )) l ( x )
' j 2 j
其中 l ( x j ) ∑ =
' j
n
k =0 k≠ j
由于
′ α 0 ( x 0 ) = 1, α 0 ( x 0 ) = 0 2.2 (2.6.2) ′ α 0 ( x1 ) = 0, α 0 ( x1 ) = 0 , (2.6.3) 2.3
由(2.6.3)可设
α0 ( x) = ( x − x1 ) a ( x − x0 ) + b ,
2.4 埃尔米特(Hermite)插值
• Hermite插值问题的提出 • 三次 Hermite 插值 • 2n+1 次Hermite 插值多项式 • Hermite插值余项 • 数值实例
一、 Hermite插值问题的提出
由于理论与实践的需要,在构造插值函数 时,不但要求在节点上函数值相等,而且还要求 它的(高阶)导数值也相等(即要求在节点上具 有一定的光滑度),使得插值函数与被插函数贴 近程度更好,满足这种要求的插值多项式就是 Hermite 插值多项式,有时也称为具有重节点插 值。
2
再由(2.6.2)可求得
实验四 Hermite插值多项式
实验四 Hermite 插值多项式1实习目的(1) 加深对Hermite 插值多项式的理解(2) 熟练掌握C 语言程序设计知识,熟练编写程序。
2班级:计算092,姓名:薛藏朋,学号:30908110723目的意义融会贯通Hermite 插值多项式,熟练编写有关程序,深化C 语言程序设计知识,培养坚韧的毅力。
4数学建模H i (x )=+--+--1321))]((2[i i i i i y h x x x x h +--+-i ii i i y h x x x x h 321))]((2[ 221))((i i i h x x x x ---y '1-i +'221)()(i ii i y h x x x x --- 5算法Step1:'),i=0,1,…,n;Step2:Step3:Step4:6(1(2)程序#include <stdio.h>#define N 50struct POINT /*定义一个点结构体*/{ double x;double y;double z;};void main(){int i,n;double x;struct POINT ps[N];/*定义一个点结构体的数组*/printf("please input n,0<=n<=50: \n");scanf("%d",&n);printf("please input xi,yi,yi'(z): \n");for(i=0;i<n;i++){ scanf("%lf,%lf,%lf",&ps[i].x,&ps[i].y,&ps[i].z);}printf("Now input x: \n");scanf("%lf",&x);/*输入差值x*/printf("please input i:\n");scanf("%d",&i);double hi,mi,ni,H;hi=ps[i].x-ps[i-1].x;mi=x-ps[i-1].x;ni=x-ps[i].x;H=(hi+2*mi)*ni*mi*ps[i-1].y/hi/hi/hi+(hi-2*ni)*mi*mi*ps[i].y/hi/hi/hi+mi*ni*ni*ps[i-1].z/hi/hi+mi*ni*ni*ps[i].z/hi/hi; printf("H%d(%lf)=%lf\n",i,x,H);}7数值算例8对计算结果进行分析评价实验结果在误差范围内,比较准确9参考文献【1】张毅坤,曹锰,张亚玲,C语言程序设计教程,西安交通大学出版社,2003. 【2】姚全珠,李薇,王晓帆,C++面向对象程序设计,北京:电子工业出版社,2010. 【3】秦新强,数值逼近,西安理工大学【4】王萼芳,石声明,高等代数,北京:高等教育出版社。
Hermite插值多项式
1 例:在[5, 5]上考察 f ( x ) 1 x2 xi 5 10 i (i 0, ... , n) n
2.5 2
的 Ln(x)。取
1.5
n=10
1
0.5
n=2
n=5
0
n 越大, 端点附近抖动 越大
3 4 5
- 0.5
-5
-4
-3
-2
-1
0
1
2
事实上已被证明:对于 n 的高阶插值 公式 Ln ( x )只有当 x 3.63时才有 Ln ( x ) f ( x ).
( xi ) yi i 0,1 H3 ( xi ) yi , H3
则可选择基函数
0 ( x),1 ( x), 0 ( x), 1 ( x)
使它们都是次数不超过3的多项式 ,且满足如下条件: 0 ( x0 ) 1 1 ( x0 ) 0 0 ( x0 ) 0 1 ( x0 ) 0 ( x ) 0 ( x ) 1 (x ) 0 (x ) 0 1 1 0 1 0 1 1 1 ( x ) 0 ( x ) 1 ( x ) 0 1 0 0 0 1( x0 ) 0 0 0 1( x1 ) 0 ( x1 ) 0 ( x ) 0 1( x1 ) 1 0 0 1
所谓分段插值,就是将被插值函数逐段多项式 化。一般来说,分段插值方法的处理过程分两步, 先将所考察的区间作一分划 :a x0 x1 xn b
并在每个 xi , xi1 子区间上构造插值多项式,然后 把它们装配在一起,作为整个区间 a, b 上的插值 函数。
