数值分析算法设计.doc_第1页
数值分析算法设计.doc_第2页
数值分析算法设计.doc_第3页
数值分析算法设计.doc_第4页
数值分析算法设计.doc_第5页
免费预览已结束,剩余16页可下载查看

下载本文档

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

文档简介

一、题目 在飞机制造业中,机翼的加工是一项关键技术。由于机翼的尺寸很大,通常在图纸中只能标出某些关键点的数据。下表给出的是某型号飞机的机翼上缘轮廓线的部分数据。x0.004.749.5019.0038.0057.0076.00y0.005.328.1011.9716.1517.1016.34x95.00114.00133.00152.00171.00190.00y14.6312.169.697.033.990.00但是,在使用数控机床加工机翼时,由于机床走刀只能沿x方向和y方向走非常小的步长,因此机床编程时需要计算出轮廓线上x坐标每改变1个单位时y的相应坐标。请根据加工要求分别用分段线性插值法、分段二次多项式插值法、分段三次多项式插值法和三次样条插值法,对上表中的数据进行细化。二、算法设计程序中有三个函数实现对数据的处理,分段线性插值,分段二次多项式插值,分段三次多项式插值都在main函数中实现,三中处理方法均采用Lagrange插值多项式的方法。三次样条插值在yt函数中实现。具体设计如下:在次数不高于n的多项式集合,中寻求多项式使其满足条件 i=(0,1,n)满足此种条件的多项式成为n次插值多项式。令取插值基函数为 (k=0,1,n)显然,都是n次多项式,且具有下列性质因此,函数组必在点集上线性无关,并且就是满足插值条件的n次插值多项式。(1) 分段线性插值法将区间按照x的变化分成几个区间,在每段区间上运用线性定义计算区间内部的步长值。即在Lagrange插值公式中,令n=1(2) 分段二次多项式插值在x所在区间上相邻三点之间做出一条曲线,在中间一点与其余两点中点之间的步长值则取曲线上的值,依次计算下去,在两个端点附近的值则按照相邻的曲线上的取值选取。即在Lagrange插值公式中,令n=2(3) 分段三次多项式插值取在x上相邻的四点做曲线,只取其前三点区间内的值作为函数值。依次计算即得函数值。即在Lagrange插值公式中,令n=3(4)三次样条插值对于区间a,b上的一个分划:如果函数s(x)满足条件(1) s(x)在每个子区间(i=0,1,n-1)上是次数不高于k 的多项式;(2) s(x)在区间(a,b)上有k-1阶连续导数。则称s(x)是定义在a,b对应于分划的k次多项式插值。 对应于k次插值共需要确定n+k个系数,在题目中共需要n+3个系数,依据题目所给定条件,程序中选择第三种边界条件。在选择第三种边界条件时,将数组进行了周期性的扩充。在负半周将程序驻足完整。形成两个新的函数组dx,dy.在新的数组基础上应用第三种边界条件既将代入n元k次多项式函数,得到方程组求解方程组,将所的M值代入,即可求得相应的函数值。在求解M值时,程序中采用的是追赶法。三、全部源程序# include # include # define N 13# define M 191double xN=0.00,4.74,9.50,19.00,38.00,57.00,76.00,95.00,114.00,133.00,152.00,171.00,190.00;double yN=0.00,5.32,8.10,11.97,16.15,17.10,16.34,14.63,12.16,9.69,7.03,3.99,0.00;void yt();double div2(int i,int j)double m;m=(i-xj+1)*(i-xj+2)/(xj-xj+1)/(xj-xj+2)*yj;m+=(i-xj)*(i-xj+2)/(xj+1-xj)/(xj+1-xj+2)*yj+1;m+=(i-xj)*(i-xj+1)/(xj+2-xj)/(xj+2-xj+1)*yj+2;return(m);void main()int i=0,j=0;double solu1M=0,solu2M=0,solu3M=0;/*分段线性插值*/ for(i=0;i=xj)&(ixj+1)solu1i=(i-xj+1)/(xj-xj+1)*yj+(i-xj)/(xj+1-xj)*yj+1;elsei-;j+;solu1M=yN-1;printf(分段线性插值后结果为:n);for(i=0;iM;i+)if(i%10=0&i!=0)printf(n);printf(%.2ft,solu1i);printf(n);/*分段二次多项式差值*/j=0;for(i=0;i(x1+x2)/2;i+)solu2i=div2(i,j);j=j+1;for(i=int(xj+xj+1)/2)+1;i=(xj+xj+1)/2)&i(xj+2+xj+1)/2)solu2i=div2(i,j);elsei-;j+;for(i=int(xN-2+xN-3)/2)+1;iM-1;i+) solu2i=div2(i,j); solu2M=yN-1;printf(分段二次插值后结果为:n);for(i=0;iM;i+)if(i%10=0&i!=0)printf(n);printf(%.2ft,solu2i);printf(n);/*三次多项式插值*/j=0;for(i=0;i=xj&ixj+2)solu3i=(i-xj+1)*(i-xj+2)*(i-xj+3)/(xj-xj+1)/(xj-xj+2)/(xj-xj+3)*yj;solu3i+=(i-xj)*(i-xj+2)*(i-xj+3)/(xj+1-xj)/(xj+1-xj+2)/(xj+1-xj+3)*yj+1;solu3i+=(i-xj)*(i-xj+1)*(i-xj+3)/(xj+2-xj)/(xj+2-xj+1)/(xj+2-xj+3)*yj+2;solu3i+=(i-xj)*(i-xj+1)*(i-xj+2)/(xj+3-xj)/(xj+3-xj+1)/(xj+3-xj+2)*yj+3;elsei-;j+;solu3M-1=yN;printf(分段三次插值后结果为:n);for(i=0;iM;i+)if(i%10=0&i!=0)printf(n);printf(%.2ft,solu3i);printf(n);yt();/* 求三次样条插值*/void yt()double h24,u25,p25,d25,solu4380,dx25,dy25;double g25,e25,r25,s25,c25,b25,t25;double z=0;int i,j;for(i=0;iN;i+) /*构建新矩阵,形成周期函数*/dxi=xi;for(i=N;i25;i+)dxi=380.00-x24-i;for(i=0;iN;i+)dyi=yi;for(i=N;i25;i+)dyi=-1*y24-i;for(i=0;i24;i+)hi=dxi+1-dxi; for(i=1;i24;i+) /*计算矩阵中的各阶系数*/ui=hi-1/(hi-1+hi); pi=1-ui; di=6*(dyi+1-dyi)/hi-(dyi-dyi-1)/hi-1)/(hi-1+hi); u24=h0/(h0+h23); p24=1-u24; d24=6*(dy1-dy0)/h0)-(dy24-dy23)/h23)/(h0+h23); for(i=1;i25;i+) /*用追赶法求解矩阵c(M)阵的值*、 bi=2.00; g1=b1; for(i=1;i23;i+)ei=pi/gi; gi+1=bi+1-ui+1*ei; s1=u1/g1; for(i=2;i23;i+)si=-ui*si-1/gi; s23=(p23-u23*s22)/g23; r1=p24; for(i=2;i23;i+) ri=-ri-1*ei-1; r23=u24-r22*e22; for(i=1;i24;i+)z+=ri*si; r24=b24-z; t1=d1/g1; for(i=2;i24;i+)ti=(di-ui*ti-1)/gi; z=0; for(i=1;i0;i-)ci=ti-ei*ci+1-si*c24; c0=c24;j=0; /*回代求结果*/for(i=0;i=dxj&idxj+1)solu4i=cj*(dxj+1-i)*(dxj+1-i)*(dxj+1-i)/(6*hj); solu4i+=cj+1*(i-dxj)*(i-dxj)*(i-dxj)/(6*hj); solu4i+=(dyj-cj*hj*hj/6)*(dxj+1-i)/hj; solu4i+=(dyj+1-cj+1*hj*hj/6)*(i-dxj)/hj;elsei-;j+;printf(三次样条插值后结果为:n);for(i=0;iM;i+)if(i%10=0&i!=0)printf(n);printf(%.2ft,solu4i);printf(n);四、插值后的数据表分段线性插值后结果为:0.001.122.243.374.495.476.066.647.227.818.308.719.129.539.9310.3410.7511.1611.5611.9712.1912.4112.6312.8513.0713.2913.5113.7313.9514.1714.3914.6114.8315.0515.2715.4915.7115.9316.1516.2016.2516.3016.3516.4016.4516.5016.5516.6016.6516.7016.7516.8016.8516.9016.9517.0017.0517.1017.0617.0216.9816.9416.9016.8616.8216.7816.7416.7016.6616.6216.5816.5416.5016.4616.4216.3816.3416.2516.1616.0715.9815.8915.8015.7115.6215.5315.4415.3515.2615.1715.0814.9914.9014.8114.7214.6314.5014.3714.2414.1113.9813.8513.7213.5913.4613.3313.2013.0712.9412.8112.6812.5512.4212.2912.1612.0311.9011.7711.6411.5111.3811.2511.1210.9910.8610.7310.6010.4710.3410.2110.089.959.829.699.559.419.279.138.998.858.718.578.438.298.158.017.877.737.597.457.317.177.036.876.716.556.396.236.075.915.755.595.435.275.114.954.794.634.474.314.153.993.783.573.363.152.942.732.522.312.101.891.681.471.261.050.840.630.420.210.00分段二次插值后结果为:0.001.332.563.664.665.546.316.967.287.838.368.869.349.7910.2110.4910.8811.2511.6211.9712.3112.6312.9513.2413.5313.8014.0614.3114.5414.5714.7814.9915.1815.3615.5415.7015.8616.0116.1516.2816.4016.5116.6216.7116.8016.8816.9417.0016.8616.9116.9516.9817.0217.0417.0617.0817.0917.1017.1017.1017.0917.0817.0717.0417.0216.9916.9516.8216.7816.7316.6816.6316.5816.5216.4616.4016.3416.2716.2016.1316.0615.9815.9015.8215.7415.6515.5315.4415.3515.2515.1515.0514.9514.8514.7414.6314.5214.4114.2914.1714.0513.9313.8113.6813.5513.3313.2013.0712.9412.8112.6812.5512.4212.2912.1612.0311.9011.7711.6411.5111.3811.2511.1210.9910.8810.7510.6210.4910.3610.2310.099.969.829.699.559.429.289.159.018.878.738.598.458.348.208.057.917.777.627.487.337.187.036.886.736.586.426.276.115.955.805.645.485.325.154.994.834.664.504.334.163.993.823.653.483.303.132.952.772.602.422.242.061.871.691.511.321.140.950.760.00分段三次插值后结果为:0.001.412.653.744.705.526.246.877.417.888.368.859.319.7610.1810.5710.9511.3111.6511.9712.3012.6212.9213.2113.4913.7514.0014.2414.4714.6814.8915.0815.2715.4415.6015.7515.8916.0316.1516.2716.3816.4816.5716.6516.7316.8016.8616.9116.9617.0017.0317.0617.0817.0917.1017.1117.1117.1017.1017.0917.0717.0617.0317.0116.9816.9416.9116.8616.8216.7716.7216.6616.6016.5416.4816.4116.3416.2716.2016.1316.0515.9715.8915.8115.7215.6415.5515.4515.3615.2615.1615.0614.9614.8514.7414.6314.5114.3914.2714.1514.0213.9013.7713.6413.5113.3813.2413.1112.9812.8412.7112.5712.4312.3012.1612.0311.9011.7711.6511.5211.3911.2611.1311.0010.8710.7410.6110.4810.3510.2210.099.969.829.699.569.429.299.159.028.888.748.608.478.338.198.047.907.767.627.477.327.187.036.886.746.596.446.296.145.985.835.675.515.355.195.034.864.694.524.344.173.993.803.623.423.233.032.832.632.432.222.011.801.581.361.140.920.690.470.230.00三次样条插值后结果为:-0.001.252.463.614.645.546.276.897.417.888.328.769.209.6210.0410.4510.8511.2411.6111.9712.3112.6412.9513.2413.5213.7914.0414.2814.5114.7214.9215.1115.2915.4615.6215.7615.9016.0316.1516.2616.3716.4616.5516.6316.7116.7716.8316.8916.9316.9817.0117.0417.0617.0817.0917.1017.1017.1017.0917.0817.0717.0517.0217.0016.9616.9316.8916.8516.8016.7516

温馨提示

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

最新文档

评论

0/150

提交评论