- 1、本文档共96页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MATLAB第十一讲插值解析
拉格朗日插值 二次Lagrange插值多项式2 三次样条插值 但是,这种做法的计算工作量大,不便于实际应用。下面介绍一种简便的求法。 设在节点xk处S(x)的二阶导数为 因为在每个子区间[xk,xk+1]上S(x)=Sk(x)是不高于三次的多项式,其二阶导数 必是线性函数(或常数)。 记hk= xk+1-xk,( k =0,1,…,n-1)则有 连续积分两次得 其中Ak,Bk为积分常数。 利用插值条件Sk(xk)= f (xk)和Sk(xk+1)= f (xk+1)易得 代入整理后可得 只要确定M0、M1、…、Mn这n+1个值,就可以定出三次样条插值函数S(x)。 为了求出Mk(k = 0,1,…, n),我们利用一阶导数在子区间连接点上连续的条件 3.3.3 三次样条函数插值法(续) 求一阶导数 3.3.3 三次样条函数插值法(续) 这样 类似得 将 、 的表达式代入 得 整理得 其中 则所得方程组可简写成 这是一个含有n+1个未知数、n-1个方程的线性方程组。要确定Mk的值,还需用到边界条件。 在第(1)种边界条件下,由于 和 已知,可以得到包含有Mk的两个线性方程。 由(4.54) 得 由(4.55) 得 得确定M0、M1、…、Mn的线性方程组 在第(2)种边界条件下,由于 和 已知,在方程组中实际上只包含有n-1个未知数M1、M2、…、Mn-1并且可以改写成 在第(3)种边界条件下,由 直接可得 由条件 ,根据(4.54)和(4.55)可得 整理后得方程 其中 不同边界条件下,所得方程组: 若取 ,则 根据定理2, 可得 若令 它可用来检验函数组 的正确性. 由题意, 取 用线性插值计算, 例1 已知 的值并估计截断误差. 用线性插值及抛物插值计算 解 取 由点斜式公式 (点斜式), 其截断误差 其中 于是 用抛物插值计算,由公式得 其中 于是 这个结果与6位有效数字的正弦函数表完全一样, 这说明查表时用二次插值精度已相当高了. 截断误差限 分段线性插值法 一般来说,高次插值多项式是不妥当的,从数值计算上可解释为高次插值多项式的计算会带来舍入误差的增大,从而引起计算失真。因此,实践上作插值时一般只用一次、二次最多用三次插值多项式。 那么如何提高插值精度呢? 采用分段插值是一种办法。 高次插值的病态分析 适当地提高插值多项式的次数,有可能提高计算结果的准确程度。 但是决不可由此得出结论,认为插值多项式的次数越高越好,利用被插函数节点信息越多,误差越小。 由插值多项式的截断误差公式可见: 其中 截断误差同f(n+1)(ξ)与ωn+1(x)有关,其绝对值不一定随次数n增加而减小。 龙格现象 考虑一个典型的例子,设 取等距节点 所构造的拉格朗日插值多项式为 在[-5,5]上取一点 计算出n=2,4,…,20的 39.994889 -39.952449 0.042440 20 -20.080751 20.123671 0.042920 18 10.217397 -10.173867 0.043530 16 -5.288409 50.332742 0.044334 14 2.800440 -2.75500 0.045440 12 -1.531662 1.578721 0.047059 10 0.880668 -0.831017 0.049651 8 -0.553416 0.607879 0.054463 6 0.423216 -0.356826 0.066390 4 -0.621684 0.759615 0.137931 2 n 随着n的增加, 不但没有减少,反而成倍地增加。 这个例子最早是在20世纪初由龙格(Runge)研究的。 这种节点变密但误差增大的现象称为龙格(Runge)现象。 不同次数的Lagrange插值多项式的比较图 Runge现象 2 分段线性插值 当插值节点很多时,使用高次插值多项式未必能够得到好的效果。 我们介绍分段插值法,就是将插值区间分成若干个子区间,然后在每个子区
文档评论(0)