81-电子教材-2.3 逐次线性插值法

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

2.3 逐次线性插值法
2.3.1 逐次线性插值思想
既然(2.10)式估计误差时有一定的困难,那么实际中如何估计截断误差呢? 假设插值条件中包含2n +组数据
(),0,1,...,,1,i i f x y i n n ==+
那么利用前1n +个数据我们可以构造一个n 次Lagrange 插值多项式()n L x ,利用后1n +组数据我们可以构造另一个n 次Lagrange 插值多项式()*n L x 。

利用(2.10)式知,它们各自的插值余项为
()()()()()()(1)011
...(1)!
n n n f x L x f x x x x x x n ξ+-=---+,
()()()()()*(1)*1211
()...(1)!
n n n f x L x f x x x x x x n ξ++-=
---+。

两式相减(假设()()()()11*n n f f ξξ++≈)得
()()()()1*1101
()...()(),(1)!
n n n n n L x L x f x x x x x x n ξ++-≈
---+
即可写成
()()()()*1110
1()...()(1)!n n n n
n L x L x f x x x x n x x ξ++---≈+-。

由此可得
()()()()()()*001
n n n n n L x L x R x f x L x x x x x +-=-≈-- (2.12)
()()()()()
()**
*
110
n n n n n n L x L x R x f x L x x x x x ++-=-≈-- (2.13)
(2.12)式和(2.13)式分别给出了()n L x 和()*n L x 作近似计算时的实用误差估计式。

它们不需要计算高阶导数,也不用估计插值区间上高阶导数的界。

例 2.5 已知
()()()02,13,212f f f ===。

利用Lagrange 插值法计算未知函数()y f x =在 1.2078x =处的函数值()1.2078f ,并估计误差。

解 利用前两组数据可以构造一个1次Lagrange 插值多项式
()110
23,0110x x L x --=
⋅+⋅-- 利用后两组数据可以构造另一个1次Lagrange 插值多项式
()*121
312.1221
x x L x --=
⋅+⋅-- 因为1.2078[]1,2∈,所以
*1(1.2078)(1.2078) 4.8702,
f L ≈=
其误差
()()()()*11*1
1.2078 1.20781.2078 1.207820.65847664.20
L L R -≈-=--
基于上述分析,一种自然的想法是如果我们把()*n
L x 加上其截断误差()*
n R x ,那么所得的1n +次多项式
()()()()()**1110
n n n n
n n L x L x P x L x x x
x x +++-=+--
应该是()f x 更好的近似函数。

实际上,上述()1n P x +满足插值条件
()1,0,,...,, 1.n i i P x y i i n n +==+
就是说,()1n P x +恰好是由已知2n +个插值节点确定的Lagrange 插值多项式
()1n L x +。

这意味着从任何1n +个插值节点构造n 次Lagrange 插值多项式()n L x ,可以先选用合适的两个节点构造线性插值多项式,再利用线性插值多项式构造2次插值多项式,利用2次插值多项式又可以构造3次插值多项式,……,直到构造出n 次插值多项式。

下面我们介绍具体的算法。

2.3.2 Aitken 算法
对未知函数或复杂函数()f x ,假设已知如下信息
(),0,1,...,.i i f x y i n ==
问题是利用以上信息计算()f x 在任何一点x 处的函数值()f x ,且误差不超过上限0ε。

显然,为了尽快地计算出指定精度的函数值,我们应该尽量多地利用靠近x 的节点信息。

为此,首先对所有节点排序,与x 接近的点排在前面,比如说,这个顺序恰好是01,,...,n x x x 。

接下来,我们计算()f x 的近似值。

第一步:利用节点01,x x 构造线性插值多项式()0,1I x ,利用节点02,x x 构造另一个线性插值多项式()0,2I x 。

利用实用误差估计式估计()0,1I x 的误差
()()()()0,10,20,1,2112
I x I x R x x x x x -=
--。

若()0,10R x ε<,算法终止,记
()()()0,1,20,10,1,2,I x I x R x =+
则得()f x 的近似值()()0,1,2I x f x ≈。

一般地,设()0,1,...,k I x 是关于节点
01,,...,k
x x x 的k 次插值多项式,
()0,1,...,1,k l I x -是关于节点011,,...,,k l x x x x -的k 次插值多项式,令
()()()()
()0,1,...,0,1,...,1,0,1,...,,0,1,...,k k l k l k k k l
I x I x I x I x x x x x --=+
--, (2.14)
则()0,1,...,,k l I x 是关于节点01,,...,,k l x x x x 的1k +次多项式。

我们称(2.14)式为Aitken 逐次线性插值公式。


()()()
()0,1,...,0,1,...,1,10,1,...,,11
,k k k k k k k k I x I x R x x x x x -+++-=
--
如果计算过程是数值稳定的,则当()0,1,...,,10k k R x ε+<时,算法终止。

()f x 的近似值为
()()()0,1,...,10,1,...,0,1,...,1.k k k I x I x R x ++=+
当0k =时,为线性插值。

当1k =时,插值节点为01,,l x x x 的插值多项式为
()0,1,l I x ()()()()0,10,0,111l l
I x I x I x x x x x -=+
--。

计算时,可由0k =到1k n =-逐次求得所需要的插值多项式。

计算过程可用三角形表2-4(Aitken 算法)表示。

表2-4
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
i
i x ()i i I x y = ()0,i I x ()0,1,i I x ()0,1,2,i I x
───────────────────────────────── 0 0x ()00I x y = 1 1x ()11I x y = ()0,1I x
2 2x ()22I x y = ()0,2I x ()0,1,2I x
3 3x ()33I x y = ()0,3I x ()0,1,3I x ()0,1,2,3I x
... ... ... ... ... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 从表2-4可看到,每增加一个节点就增加计算一行,斜线上是多项式的值。

如果精度不满足要求,再增加一个节点,前面计算的结果完全有效。

这个算法适用于计算机上计算,且具有自动选节点并逐步比较精度的特点,程序也较简单。

例 2.6 已知特殊角o o o o o 0,30,45,60,90的正弦函数值。

问用多少个节点计算
o sin 50可使近似值准确到2,3,4位小数(已知o sin 500.766044=)? 解 按离o 50角的距离由近到远顺序排列插值节点,再按Aitken 算法完成三角形表2-5的计算。

表 2-5
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
i i x ()sin i x ()0,i I x ()0
,1,
i I x ()0,1,2,i I x
()0,1,2,3,i I x
────────────────────────────────
0 o 45
2
1 o 60
2
0.76008 2 o 30 0.5 0.77614
0.7654
3 o 90 1 0.73965
0.76689
0.76592
4 o 0 0 0.78567 0.7643
5 0.7661
6 0.7660
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 将计算结果与o sin 500.766044=相比,近似值0,1,20.76543I =,
0,1,2,30.76592I =和0,1,2,3,40.76603I =分别准确到了2,3,4位小数,它们分别用了
3,4,5个节点。

相关文档
最新文档