插值及其误差解说.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
插值及其误差 x sin x cos x tan x 1.567 0.999 992 8 0.003 796 3 263.411 25 1.568 0.999 996 1 0.002 796 3 357.611 06 1.569 0.999 998 4 0.001 796 3 556.690 98 1.570 0.999 999 7 0.000 796 3 1255.765 59 用表中的数据和任一插值公式求: (1)用tan x表格直接计算tan 1.569 5。 (2)用sin 1.569 5和cos 1.569 5来计算tan 1.569 5。并讨论这两个结果中误差变化的原因。 插值:求过已知有限个数据点的近似函数。 1 插值方法 下面介绍几种基本的、常用的插值:拉格朗日多项式插值、牛顿插值、分段线性插 值、Hermite 插值和三次样条插值。 1.1 拉格朗日多项式插值 1.1.1 插值多项式 用多项式作为研究插值的工具,称为代数插值。其基本问题是:已知函数在区间上个不同点处的函数值,求一个至多次多项式 (1) 使其在给定点处与同值,即满足插值条件 (2) 称为插值多项式,称为插值节点,简称节点,称为插值区间。从几何上看,次多项式插值就是过个点,作一条多项式曲线近似曲线。 次多项式(1)有个待定系数,由插值条件(2)恰好给出个方程 (3) 记此方程组的系数矩阵为,则 是范德蒙特(Vandermonde)行列式。当互不相同时,此行列式值不为零。因此方程组(3)有唯一解。这表明,只要个节点互不相同,满足插值要求(2)的插值多项式(1)是唯一的。 插值多项式与被插函数之间的差 称为截断误差,又称为插值余项。当充分光滑时, 其中。 1.1.2 拉格朗日插值多项式 实际上比较方便的作法不是解方程(3)求待定系数,而是先构造一组基函数 是次多项式,满足 令 (4) 上式称为次 Lagrange 插值多项式,由方程(3)解的唯一性,个节点的次Lagrange 插值多项式存在唯一。 1.1.3 用Matlab作Lagrange插值 Matlab中没有现成的Lagrange插值函数,必须编写一个M文件实现Lagrange插值。 设个节点数据以数组输入,个插值点以数组输入,输出数组为个插值。编写一个名为lagrange.m的M文件: function y=lagrange(x0,y0,x); n=length(x0);m=length(x); for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j~=k p=p*(z-x0(j))/(x0(k)-x0(j)); end end s=p*y0(k)+s; end y(i)=s; end sin 1.5695=0.9999991749999999 cos 1.5695=0.001296300000000056 tan 1.5695=819.0342874999274 1.2 分段线性插值 1.2.1 插值多项式的振荡 用Lagrange插值多项式近似,虽然随着节点个数的增加,的次数变大,多数情况下误差会变小。但是增大时,的光滑性变坏,有时会出现很大的振荡。理论上,当,在内并不能保证处处收敛于。Runge给出了一个有名的例子: 对于较大的,随着的增大,振荡越来越大,事实上可以证明,仅当时,才有,而在此区间外,是发散的。 高次插值多项式的这些缺陷,促使人们转而寻求简单的低次多项式插值。 1.2.2 分段线性插值 简单地说,将每两个相邻的节点用直线连起来,如此形成的一条折线就是分段线性插值函数,记作,它满足,且在每个小区间上是线性函数。 可以表示为 有良好的收敛性,即对于, 用计算点的插值时,只用到左右的两个节点,计算量与节点个数无关。但越大,分段越多,插值误差越小。实际上用函数表作插值计算时,分段线性插值就 足够了,如数学、物理中用的特殊函数表,数理统计中用的概率分布表等。 1.2.3 用Matlab实现分段线性插值 用 Matlab 实现分段线性插值不需要编制函数程序,Matlab 中有现成的一维插值函数interp1。 y=interp1(x0,y0,x,method) method指定插值的方法,默认为线性插值。其值可为: nearest 最近项

文档评论(0)

4477769 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档