资源描述:
《华中科技大学计算方法实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、课程实验报告计算方法专业班级:计算机科学与技术1109学号:U201114430姓名:龙威指导教师:付才报告日期:2013.06.22计算机科学与技术学院Lagrange插值飞实验目的用C语言实现Langrange插值,并由lagrange插值多项式求输入的任一X时的函数值。二.实验内容K题目已知函数表如下:Xi0.561600.562800.564010.56521Yi0.827410.826590.825770.82495试用lagrange插值多项式求X=0.5635时的函数值。2、分析Lagrange插值基函数Lagrange插值公式x-xiJ“-Xj即用C语言实现以上两个公
2、式,并输入题目屮XiY.的值,检验其正确性三、程序源代码#includevoidmain(void){intj,i;floatx,p,y[20],xx[20],li[20];p二0;printf(uthevalueofx:");for(i=0;i<5;i++){scanf(”%f",&xx[i]);1printf("thevalueofy:");for(i=0;i<5;i++){scanf(M%r,&y[i]);}printf("pleaseinputthevalueofx:");scanf(M%f&x);for(i=0;i<5;i++)li[iJ=1.0;for
3、(i=0;i<5;i++)for(j=0;j<5;j++)if(i!=j)li[i]*=(x-xx[j])/(xx[i]-xx[j]);for(i=0;i<5;i++)p+=li[i]*y[i];printf("theresultis:%f",p);结果rfl上可知,程序运行结果为0.631691显然,其值与书上结果一致,故运行正确五、小结通过本次编程实验,我用C语言实现了Umgnmge插值。本实验其实算法很简单,只是有很多地方的细节要注意,比如变量类型一定要用Goal或double,同时变量也要初始化,开始的时候我忘了是浮点数初始化了,结果输出的结果乱七八糟,完全错误,还是通过
4、单步调试才发现这个错误的。可能是以前没怎么用浮点数,一般用的是int,也就没重视过这种类型的运用,结果很多细节没记住,容易出错。学了计算方法后,我们就要好好地看待精度这个问题了。还有就是发现其实Langrange插值法是很管用的,它很好的求出了我们所需的东西。牛顿插值飞实验目的用C语言实现f(x)的n阶差商f[x0,xhx2...xn],并由此实现Newton插值:対输入的任一X,用Newton插值计算其函数值。二、实验内容1、题目已知函数表如下:Xi0.40.550.650.80.9Yi0.410750.578150.696750.888111.02652试用Newton插值多项式
5、求X=0.596时的函数值。2、分析Newton插值公式N“(X)=f(Xo)+f[x(),X
6、](X-X())+f[Xo,X
7、,X2](X-Xo)(X-X
8、)+...+f[Xo,X
9、,...,X“](X-Xo)(X-X
10、)...(X-X“)X],Xr2,由线性知flXo,X
11、,X2…X』迈紅叶沏叶诂;;;爲)......(幻*)不含(Xj・Xj)项构造差簡表X&f(xjf[x(),x订f[x(),X
12、,x』f[x0,Xj,x2,xJf[x(),x1,x2,x3,xjX。%xiyiflXo,xJX2y2f[x0,x2]flx^XpXjX3%ffXoMffx0,xpx3]ffx0,x1
13、,x2,x3]X4%f[x0,x4]f[x0,xpx4]f[x0,Xj,x2,x4]flxo,x1,x2,x3,x4]即用C语言实现f(x)的n阶差商f[xo,xbx2...xn](n值为从0到n),并由此计算x=0.596时f(x)的函数值,检验英正确性xnccdeAstdio.hvvoidmain(void)亠B-SKfloatxpy「20LXX「22JiM0LC【20LresuFPHrrprisfuhevalueofxJifor(li-0;A5;i++=scana%「4xx三)一一priHatheVELUCofyJ八for(li-pA5T+)(scanf(・・%「4y三);一f
14、ol*(li-0K57+)(cnnp三iHlofor(kHpk〈5八k++)for(n-pAHkT+)(foIxjH.pA#j++)if(i.llj)lirfXXLvxxukCs+Hy三言;三kNl;一conyokfor(li-0;A5;i++)printf(・^%d琴®a进_%f-?-c三);prins=poaseinpu二hevalueofX3-scanf(=%f"4xwresu=HC「okfor(li-0;A4T+)(pfx—xx三八resu=+