等距点插值公式_第1页
等距点插值公式_第2页
等距点插值公式_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2012-2013 (1)专业课程实践论文等距节点插值公式柳希元,0818180127, R数学08-1班、算法理论将Newton差商插值多项式中各阶差商用相应差分替代,就可得到各种形 式的等距节点插值公式。如果节点込F +馳=0丄 ,.要计算_附近点X的函数- 值,可令护眼專腌腮L于是Nn(x + =禹 + tA/a + 耳®+- + - " + - A"/fl为Newton前插公式。其中也=&mfk - AraffcAfjr = Ar+1 一 fk如果要求表示函数在工屛付近的值此时应用Newton插值公式,插值点应按'-| ;:? i 1 &q

2、uot;4 L的次序排列,有叫(刃=x91) + /xB,x_vx_2(z - XJ(z-Xn_t) + f 北和场i-W衍仗一兀” (工 寓1)做变换応口徨/感*广农住灼;:鏈带入公式得” vt(t - 1) ,t(t 一 1) ft - n +1)凡仗+tft) = 4 +冈人+七+计旷启为Newton后插公式。其中严人=% -严人负二 /fc+i- fk二、算法框图三、算法程序class Interpolationpublic :Interpolation(int num, double x1, double x2, double func);double ComputeForwardV

3、alue( double x);/ compute forward interpolation valueln terpolati on();private :void GetForwardTable(); / get the forward differential tableprivate :int m_num; / the number of interpolation pointsdouble m_x1, m_x2;/ the first point m_x1 and last point m_x2double m_step; / the in terpolati on stepdou

4、ble * m_func; / the function value of interpolation pointsdouble * m_ftable; / the forward differential table;#in clude <iostream>#i nclude <limits>using namespacestd;#define NUM 11/上l?面?输o?入?需要°&多0少|个?样本a?#define MIN 0/上|?面?输o?入?区?间?的1最 a?小?值| 1#define MAX 10/上|?面?输o?入?区?间?的1最a

5、大?值| 1int main()/下?面?输o?入?y的1值| 1double funcNUM=0,1,4,9,16,25,36,49,64,81,100;/上I?面?输o?入?y的值| 1double x1=MIN, x2=MAX, x;int num=NUM;char flag= 'Y'In terpolati on test (n um, x1, x2, fun c);while (flag= Y )cout<< "I nput x:"cin»x;if (!cin)/ checking failure stateci n.clea

6、r(); / clear failure tagcin .ig nore(n umeric_limits<int >:max(),'n' ); / clear in put buffercontinue ;if (x<x1 | x>x2)cout<<"-I nvalid in put: "<<x<<"-" <<e ndl;<<e ndl;cout<<"Only the number between " vvx1<v&q

7、uot; and " <<x2<<" is valid."elsecout<< "Forward in terpolati on value:"<<test.ComputeForwardValue(x+0.001)<<e ndl;cout<<endl<< "Do you want to process? please input(Y/N):"<<endl;cin> >flag;return 0;In terpolati

8、o n:l nterpolatio n(int num, double x1, double x2, double func)m_num = num;m_x1 = x1;m_x2 = x2;m_step = (m_x2-m_x1)/( num-1); m_func = new double m_num; m_ftable = new double m_num;for ( int i=0; i<m_num; +i) m_fu nci = fun ci; m_ftablei = fun ci;GetForwardTable();In terpolatio n:l nterpolatio n(

9、)delete m_func;delete m_ftable;void Interpolation:GetForwardTable()/ get the forward differe ntial tableint i, j;for (i=1; i<m_num; +i)for (j=m_num-1; j>=i; -j) m_ftablej = m_ftablej-m_ftablej-1;double x) double In terpolati on:ComputeForwardValue( / compute forward in terpolati on valuedouble

10、 * coef; /coefficient talbedouble result, t;int i;coef = new double m_num;/compute the coefficie nt tablet = (x-m_x1)/m_step;for (i=1, coef0=1; i<m_num; +i)coefi = coefi-1*(t-i+1)/i;for (i=0, result=0; i<m_num; +i) result += m_ftablei*coefi;delete coef;return result;四、算法实现例i当心时求.在范围m内任意他刑的值解:(

11、1) 在程序中输入11个样本:0,1,4,9,16,25,36,49,64,81,100且输入MIN : 0, MAX : 10,样本容量:11。(2) 在运行程序中输入范围内的任意.的值,如:1.2, 1.4等。(3) 程序提示答案和提示是否继续,是则输入大写丫,否则输入大写NfE3 C A'ind q-a system32cmd,exeInput x: 1_ 2Forward interpolation value = 1-4424Do you uant to process? please input<¥/N>:Y1nput x: 1.4Forward in

12、terpolation ualue: 1.9628Do you want to process? please injiut (¥/N): NPress any key to cont inue , 例2.当给出15个亠:1.38, 1.48, 1.58, 1.69, 1.81,1.94, 2.10, 2.28, 2.50, 2.76,3.06, 3.41, 3.83, 4.33, 4.93,且给出范围: m 二二二求出任意厂对的值。解:(1) 给出15个题目上显示的值:1.38, 1.48, 1.58, 1.69, 1.81,1.94, 2.10, 2.28, 2.50, 2.76

13、,3.06, 3.41, 3.83, 4.33, 4.93,且输入 MIN : 4000, MAX : 11000,样本容量:15。(2) 在运行程序中输入范围内的任意的值,如:1001,5200等。(3) 程序提示答案和提示是否继续,是则输入大写 丫,否则输入大写Nral C :W i ndowssystem3 2cmd .exeInput x: 4001 Forward interpolation value =3?4?Do sroti viant to process? please input <V/N>:*Input x: 5200Forward inteppolat ion value: 1.61375Douant

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论