工程常用算法作业三.doc

工程常用算法作业三.doc

ID:59203267

大小:227.50 KB

页数:6页

时间:2020-09-10

工程常用算法作业三.doc_第1页
工程常用算法作业三.doc_第2页
工程常用算法作业三.doc_第3页
工程常用算法作业三.doc_第4页
工程常用算法作业三.doc_第5页
资源描述:

《工程常用算法作业三.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《工程常用算法》综合实践作业三作业名称:插值:三次样条插值与分段插值完成日期:2016年5月15日组号:8班级学号姓名主要工作说明自评成绩郭俊杰绘制流程图A凌泽宇程序编写张明旺文字总结一.已知飞机下轮廓线数据如下:x035791112131415y01.21.72.02.12.01.81.21.01.6飞机下轮廓线形状大致如下图所示:要求分别用拉格朗日插值法、Newton插值法、分段线性插值法和三次样条插值法计算x每改变0.5时y的值,即x取0.5,1,1.5,…,14.5时对应的y值。比较采用不同方法的计算工作量、计算结果和优缺点。二、程序

2、流程图三、完整的程序及简要的注释拉格朗日#include#includefloatx[10]={0,3,5,7,9,11,12,13,14,15},y[10]={0,1.2,1.7,2.0,2.1,2.0,1.8,1.2,1.0,1.6},n[29];/*定义29个隔值*/voidX()/*定义隔值函数*/{inti;for(i=0;i<29;i++)/*隔值循环*/n[i]=(i+1)*0.5;}floatl(floatxx,inti)/*求Lagrange基函数*/{intj;floatl=1;for(j

3、=0;j<10;j++)if(i!=j)l=l*(xx-x[j])/(x[i]-x[j]);returnl;}floatLagrange(floatx)/*Lagrange插值法*/{inti;floatf=0;for(i=0;i<10;i++)f=f+y[i]*l(x,i);returnf;}/*调用Lagrange插值函数*/intmain(){inti;floatY[29];X();printf("Lagrange插值法:");for(i=0;i<29;i++){floatY[29];Y[i]=Lagrange(n[i]);prin

4、tf("n[%d]=%.2fY[%d]=%8.4f",i,n[i],i,Y[i]);}}Newton#include#includefloatx[10]={0,3,5,7,9,11,12,13,14,15},y[10]={0,1.2,1.7,2.0,2.1,2.0,1.8,1.2,1.0,1.6},n[29];/*定义29个隔值*/floatf[10][10]={0,1.2,1.7,2.0,2.1,2.0,1.8,1.2,1.0,1.6};voidX()/*定义隔值函数*/{inti;for(i=0;i<

5、29;i++)/*隔值循环*/n[i]=(i+1)*0.5;}voidCS()/*定义差商函数*/{inti,j;for(i=1;i<10;i++)for(j=i;j<10;j++)f[i][j]=(f[i-1][j]-f[i-1][j-1])/(x[j]-x[j-i]);}floatNewton(floatxx)/*Newton插值法*/{inti,j;floatt=1;floatN=f[0][0];for(i=1;i<10;i++){t=t*(xx-x[i-1]);N=N+f[i][i]*t;}returnN;}/*调用Newton插值函

6、数*/intmain(){inti;floatY[29];X();CS();printf("Newton插值法:");for(i=0;i<29;i++){floatY[29];Y[i]=Newton(n[i]);printf("n[%d]=%.2fY[%d]=%8.4f",i,n[i],i,Y[i]);}}三次样条插值法#include#includefloatx[10]={0,3,5,7,9,11,12,13,14,15},y[10]={0,1.2,1.7,2.0,2.1,2.0,1.8,1.2,1

7、.0,1.6},G[29];/*定义29个隔值*/voidX()/*定义隔值函数*/{inti;for(i=0;i<29;i++)/*隔值循环*/G[i]=(i+1)*0.5;}floatS(floatxx)/*三次样条插值法*/{floath[9],q[9],w[9],C[9],m[10],b[9],c[8],a[9],n[9],p[8],r[9],yp[9],s[9];inti;for(i=0;i<9;i++)h[i]=x[i+1]-x[i];/*计算插值点之间的距离*/for(i=1;i<9;i++){q[i]=h[i-1]/(h[i]

8、+h[i-1]);w[i]=1-q[i];/*计算方程组中的两个系数*/C[i]=6/(h[i]+h[i-1])*((y[i+1]-y[i])/h[i]-(y[i]

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。