资源描述:
《西电计算方法第三次作业.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、班级:021113学号:02111283姓名:范亚男第四章习题5.解:x01245y01646880先求差商表:kf()f(,)f()f()f()000167-2.5111630-32246213488-88450于是x(x-1)(x-2)(x-4)9.解:x0.1250.2500.3750.5000.6250.750f(x)0.796180.773340.743710.704130.656320.60228先求差分表h=0.125xf△f0.1250.79618-0.02284-0.00679-0.003160.2500.7733
2、4-0.02963-0.00995-0.001720.3750.74371-0.03958-0.00823-0.002000.5000.70413-0.04781-0.006230.6250.65632-0.054040.7500.60228故三次牛顿差分插值公式当0.125+0.125t=0.1581时,t=0.2648代入上式得f(0.1581)=0.790615当0.125t+0.125=0.636时,t=4.088代入上式得f(0.636)=0.646062上机作业例1:已知函数表:xi0.561600.562800.564
3、010.56521yi0.827410.826590.825770.82495用三次拉格朗日插值多项式求x=0.5635时的函数近似值C语言程序设计:#includefloatLagrange(floatx[],floaty[],floatxx,intn){inti,j;float*a,yy=0;a=newfloat[n];for(i=0;i<=n-1;i++){a[i]=y[i];for(j=0;j<=n-1;j++)if(j!=i)a[i]*=(xx-x[j])/(x[i]-x[j]);yy+=a[i];}de
4、letea;returnyy;}voidmain(){floatx[4]={0.56160,0.56280,0.56401,0.56521};floaty[4]={0.82741,0.82659,0.82577,0.82495};floatxx=0.5635,yy;yy=Lagrange(x,y,xx,4);printf("x=%f,y=%f",xx,yy);}运行结果:x=0.563500y=0.826116例2:已知函数表xi0.40.550.650.80.9yi0.410750.578150.696750.888111.0
5、2652用牛顿插值多项式求Nn(0.596)和Nn(0.895)。C语言程序设计:#include#defineN4voidDifference(floatx[],floaty[],intn){float*f=newfloat[n+1];intk,i;for(k=1;k<=n;k++){f[0]=y[k];for(i=0;i6、6;floatx[N+1]={0.4,0.55,0.65,0.8,0.9};floaty[N+1]={0.41075,0.57815,0.69675,0.88811,1.02652};Difference(x,y,N);b=y[N];for(i=N-1;i>=0;i--)b=b*(varx-x[i])+y[i];printf("Nn(%f)=%f",varx,b);}运行结果:Nn(0.596)=0.631918Nn(0.895)=1.019368