数值常用的插值方法解析.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数值分析 报告 班 级: 专 业: 流水号: 学 号: 姓 名: 常用的插值方法 序言 在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,算出函数在其他点处的近似值。 早在6世纪,中国的刘焯已将等距二次插值用于天文计算。17世纪之后,牛顿拉格朗日分别讨论了等距和非等距的一般插值公式。在近代,插值法仍然是数据处理和编制函数表的常用工具,又是数值积分、数值微分、非线性方程求根和微分方程数值解法的重要基础,许多求解计算公式都是以插值为基础导出的。插值问题的提法是:假定区间[a,b〕上的实值函数f(x)在该区间上 n+1个互不相同点x0,x1……xn 处的值是f(x0),……f(xn),要求估算f(x)在[a,b〕中某点的值。其做法是:在事先选定的一个由简单函数构成的有n+1个参数C0,C1,……Cn的函数类Φ(C0,C1,……Cn)中求出满足条件P(xi)=f(xi)(i=0,1,…… n)的函数P(x),并以P(x)作为f()的估值。此处f(x)称为被插值函数,0,x1,……xn称为插值结(节)点,Φ(C0,C1,……Cn)称为插值函数类,上面等式称为插值条件,Φ(C0,……Cn)中满足上式的函数称为插值函数,R(x)= f(x)-P(x)称为插值余项。 求解这类问题,它有很多种插值法,其中以拉格朗日(Lagrange)插值和牛顿(Newton)插值为代表的多项式插值最有特点,常用的插值还有Hermit插值,分段插值和样条插值。 一.拉格朗日插值 1.问题提出: 已知函数在n+1个点上的函数值,求任意一点的函数值。 说明:函数可能是未知的;也可能是已知的,但它比较复杂,很难计算其函数值。 2.解决方法: 构造一个n次代数多项式函数来替代未知(或复杂)函数,则用作为函数值的近似值。 设,构造即是确定n+1个多项式的系数。 3.构造的依据: 当多项式函数也同时过已知的n+1个点时,我们可以认为多项式函数逼近于原来的函数。根据这个条件,可以写出非齐次线性方程组: 其系数矩阵的行列式D为范德萌行列式: 故当n+1个点的横坐标各不相同时,方程组系数矩阵的行列式D不等于零,故方程组有唯一解。即有以下结论。 结论:当已知的n+1个点的横坐标各不相同时,则总能够构造唯一的n次多项式函数,使也过这n+1个点。 4.几何意义 5.举例: 已知函数,求。 分析:本题理解为,已知“复杂”函数,当x=81,100,121,144时,其对应的函数值为:y=9,10,11,12,当x=115时,求函数值。 解: (1)线性插值:过已知的(100,10)和(121,11)两个点,构造1次多项式函数,于是有 则 。 (2)抛物插值:构造2次多项式函数,使得它过已知的(100,10)、(121,11)和(144,12)三个点。于是有2次拉格朗日插值多项式: 则有 10.72275550536420 6.拉格朗日n次插值多项式公式: 其中称为基函数(k=0,1,….,n),每一个基函数都是关于x的n次多项式,其表达式为: 拉格朗日公式特点: 1.把每一点的纵坐标单独组成一项; 2.每一项中的分子是关于x的n次多项式,分母是一个常数; 3.每一项的分子和分母的形式非常相似,不同的是: 分子是,而分母是 7.误差分析(拉格朗日余项定理) , 其中在所界定的范围内。 针对以上例题的线性插值,有 函数在[100,115]区间绝对值的极大值为, 则有: 于是近似值有三位有效数字。 针对以上例题的抛物线插值,有 函数在[100,115]区间绝对值的极大值为,则有 于是近似值10.72275550536420有四位有效数字。 8.拉格朗日插值公式的优点 公式有较强的规律性,容易编写程序利用计算机进行数值计算。 9. 拉格朗日插值通用程序 程序流程图如下: 文件lagrange.m如下: %拉格朗日插值 close all n=input(已知的坐标点数n=?); x=input(x1,x2,...,xn=?); y=input(y1,y2,...,yn=?); xx=input(插值点=?); syms t %定义t为符号量 p=0; for k=1:n l=1; for j=1:k-1 l=l*(t-x(j))/(x(k)-x(j)); end for j=k+1:n l=l*(t-x(j))/(x(k)-x

文档评论(0)

美洲行 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档