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

下载本文档

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

文档简介

2012-2013(1)专业课程实践论文等距节点插值公式柳希元,0818180127,R数学08-1班、算法理论将Newton差商插值多项式中各阶差商用相应差分替代,就可得到各种形式的等距节点插值公式。如果节点错误!未找到弓I用源。要计算错误!未找到引用源。附近点x的函数错误!未找到引用源。值,可令错误!未找到引用源。于是- 1)亍 t(t_1)... _Tl+I)N隽咒+班)=托+丛托+'f“斤+…+ . 护斤n!为Newton前插公式。其中=A+i-fk如果要求表示函数在错误!未找到引用源。附近的值错误!未找到引用源。此时应用Newton插值公式,插值点应按错误!未找到引用源。的次序排列,有叫(x)=fg)+ xn) f[xnfxn_lfxn_2](x一兀』(无一J』+■■■+f[xnfxn_it,x0](x-xn)...(x-xj做变换错误!未找到引用源。带入公式得凡。+班)凡。+班)=人+丹打+迫]1)+…+t(t—1〉...(t—n4-n\为Newton后插公式。其中=A+i-fk二、算法框图三、算法程序classInterpolation{public:Interpolation(intnum,doublex1,doublex2,doublefunc[]);doubleComputeForwardValue(doublex);//computeforwardinterpolationvalue~Interpolation();private:voidGetForwardTable();//gettheforwarddifferentialtableprivate:intm_num;//thenumberofinterpolationpointsdoublem_x1,m_x2;//thefirstpointm_x1andlastpointm_x2doublem_step;//theinterpolationstepdouble*m_func;//thefunctionvalueofinterpolationpointsdouble*m_ftable;//theforwarddifferentialtable};#include<iostream〉#include〈limits〉usingnamespacestd;#defineNUM11//上?面?输°?入“?需―要°&多“。少厂’个?样…本A?#defineMIN0//上?面?输°?入“?区?间?的i?最A?小?值#defineMAX10//上?面?输°?入「区?间?的i?最A?大汀®值iintmain(){//下?面?输°?入“?y的i?值“doublefunc[NUM]={0,1,4,9,16,25,36,49,64,81,100};//上?面?输°?入“?y的i?值doublex1=MIN,x2=MAX,x;intnum=NUM;charflag='Y';Interpolationtest(num,x1,x2,func);while(flag=='Y'){cout〈〈"Inputx:";cin〉〉x;if(!cin)//checkingfailurestate{cin.clear();//clearfailuretagcin.ignore(numeric_limits<int〉::max(),'\n');//clearinputbuffercontinue;}if(x〈x1||x〉x2){cout〈〈" Invalidinput:"〈〈x〈〈" "〈〈endl;cout〈〈"Onlythenumberbetween"〈〈x1〈〈"and"〈〈x2〈〈"isvalid..."〈〈endl;}else{cout〈〈"Forwardinterpolationvalue:"〈〈test.ComputeForwardValue(x+0.001)〈〈endl;}cout〈〈endl〈〈"Doyouwanttoprocess?pleaseinput(Y/N):"〈〈endl;cin〉〉flag;}return0;Interpolation::Interpolation(intnum,doublex1,doublex2,doublefunc[]){m_num=num;m_x1=x1;m_x2=x2;m_step=(m_x2-m_x1)/(numT);m_func=newdouble[m_num];m_ftable=newdouble[m_num];for(inti=0;i〈m_num;++i){m_func[i]=func[i];m_ftable[i]=func[i];}GetForwardTable();}Interpolation::~Interpolation(){deletem_func;deletem_ftable;}voidInterpolation::GetForwardTable(){//gettheforwarddifferentialtableinti,j;for(i=1;i〈m_num;++i)for(j=m_num-1;j>=i;—j)m_ftable[j]=m_ftable[j]-m_ftable[jT];}doubleInterpolation::ComputeForwardValue(doublex){//computeforwardinterpolationvaluedouble*coef;//coefficienttalbedoubleresult,t;inti;coef=newdouble[m_num];t=(x-m_x1)/m_step;for(i=1,coef[0]=1;i〈m_num;++i)//computethecoefficienttablecoef[i]=coef[iT]*(t-i+1)/i;for(i=0,result=0;i〈m_num;++i)result+=m_ftable[i]*coef[i];deletecoef;returnresult;}四、算法实现例1•当错误!未找到引用源。时求错误!未找到引用源。在范围错误!未找到引用源。内任意错误!未找到引用源。的值。解:在程序中输入11个样本:0,1,4,9,16,25,36,49,64,81,100、且输入MIN:0,MAX:10,样本容量:11。在运行程序中输入范围内的任意错误!未找到引用源。的值,如:1.2,1.4等。程序提示答案和提示是否继续,是则输入大写Y,否则输入大写N。例2.当给出15个错误!未找到引用源。:1.38,1.48,1.58,1.69,1.81,1.94,2.10,2.2&2.50,2.76,3.06,3.41,3.83,4.33,4.93,且给出范围:错误!未找到引用源。求出任意错误!未找到引用源。的值。解:给出15个题目上显示的值:1.38,1.48,1.58,1.69,1.81,1.94,2.10,2.2&2.50,2.76,3.06,3.41,3.83,4.33,4.93,且输入MIN:4000,MAX:11000,样本容量:15。在运行程序中输入范围内的任意错误!未找到引用源。的值,如:1001,5200等。程序提示答案和提示是否继续,是则输入大写Y,否则输入大写N。rawC:\Windows\system32\cTnd.exeInputx:4001Forwardinterpolationvalue:1.3747Doijouwanttoprocess?pleaseinput<¥/N>:VInputx:5200Forwardinterpolationvalue:1.61375Doijouwanttoprocess?p

温馨提示

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

评论

0/150

提交评论