网站大量收购独家精品文档,联系QQ:2885784924

计算方法实验插值法.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验 一 : 插值法 一、实验目的 通过本次上机实习,掌握拉格朗日算法、牛顿算法、三次样条插值算法的计算机编程实现方法。使学生能够进一步加深对各种插值算法的理解;培养学生能够独立地、有个性化的、有创新地用表现力丰富的图形曲线来真实地演绎算法的计算机编程能力。 用三种类型的插值函数的数学模型、基本算法,结合相应软件(如VB/VC/Delphi/Matlab/Turbo C)编程实现数值方法的求解。并用该软件的绘图功能来显示插值函数,使其计算结果更加直观和形象化。 二、实验内容 原理和方法 先在屏幕上用随机函数按适当比例画出若干个点(至少7∽9),分别用拉格朗日插值,牛顿插值,三次样条插值对上述离散点进行拟和,并用该软件的绘图功能来显示其插值函数。 ⒈拉格朗日插值:() 方法概要: 可用双重循环来实现,内循环为连乘;外循环为连乘的累加。 计算框图:(见图1-1) 开 始 开 始 读入x 读入xi,yi,x (i=0,1,2,…,N) L=0 L=0 Li=1 L Li=Li*(x-xj)/(xi-xj) j!=i;(j=0,1,2,…,N) L=L+L L=L+Li*yi (i=0,1,2,…,N) 输出 输出LN(x) 结 束 结 束 2.牛顿插值: ⑴ 方法概要: 其中: 其中: (2)解题思路:先计算,再计算。 先造出差商表,然后按下列的公式计算X各点的插值多项式值。 差商表: (2)计算框图: 开 始 开 始 输入 输入 (=0,1,2,…,N-1) 读入 读入X L=0 L=0 L Li=1 L Li=Li*(Xk-Xj) j=0,1,…,i; (j≠k) L=L+Y[k]/L L=L+Y[k]/Li k=0,1,2,…,i f[i]=L; f[i]=L; i=0,1,…,N-1 Li=1 Li=1 Li=Li*(X-Xj) j=0,1,…,i-1 L=L+f[i]*Li L=L+f[i]*Li i=0,1,…,N-1 输出 L 输出 L 结 束 结 束 3.三次自然样条插值方法: (1)方法概要: ①三弯矩方程 其中 根据弯矩方程算出 ② 插值公式: 当 时 () 其中 (1)算法描述: 1); Input x 2) 2.1) 3) 4) 4.1) 5) 5.1) 6) 6.1) 7) 8) 8.1) 9) 10) 10.1) 11) 12) 12.1) 13) 14) 15) 16) 17)输出 S start start Input x,()(i=0,1,∧,n) y=0 k=0 K=1 t=1 t=t* j=0,1,∧,k-1,k+1,∧,n y=y+t k=N? 输出y End k=k+1 图1-1 三 运行结果: 主界面 拉格朗日差值 牛顿插值 三次样条 四 心得体会 当实际工程问题研究中我们要通过已知的几个离散的工程数据(如某些点上的函数值和导数值),来研究已十分复杂的函数和求出其他点对应的函数值。这时就需要通过这几个有限的已知点来构造一个十分接近原函数的一个简单函数,来代替原函数,通过此函数求出所需的近似结果,我认为这就是插值的方法要达到的目的。然而根据不同的精度要求、不同的工程实际需要,就要相应的选用不同的插值方法,不同的插值方法包含着不同的思想, 牛顿插值引入了差分的概念, 逼近效果较好,但发现lagrange插值会发生Runge现象,不是很可靠三次样条插值的逼近效果还是不错的,而且速度加快了许多。 三次样条函数,保证了在每个内节点上有k-1阶连续导数,使曲线充分光滑(k-1阶导数都连续)又保持一定间断性(k阶导数在节点出可能间断), 光滑性保证了曲线外形的美观,间断性使它能转折自如被灵活运用.三次样条插值的目的在于克服Lagrange插值的不收敛性和提高分段线性插值函数在节点处的光滑性。通过实验可看出三次样条插值的特点:三次条插值函数序列 一致收敛于被插的函数,因此可通过增加节点的方法提高插值的精度。 五 源程序代码: function varargout = chazhi2(varargin) % CHAZHI2 M-file for chazhi2.fig % CHAZHI2, by itself, creates a new

文档评论(0)

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

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

1亿VIP精品文档

相关文档