機(jī)械CADCAM實(shí)驗(yàn)報(bào)告_第1頁(yè)
機(jī)械CADCAM實(shí)驗(yàn)報(bào)告_第2頁(yè)
機(jī)械CADCAM實(shí)驗(yàn)報(bào)告_第3頁(yè)
機(jī)械CADCAM實(shí)驗(yàn)報(bào)告_第4頁(yè)
機(jī)械CADCAM實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PAGEPAGE1 西華大學(xué)實(shí)驗(yàn)報(bào)告第組.第組**大學(xué)實(shí)驗(yàn)報(bào)告(計(jì)算機(jī)類(lèi))開(kāi)課學(xué)院及實(shí)驗(yàn)室:機(jī)械工程與自動(dòng)化專(zhuān)業(yè)實(shí)驗(yàn)中心實(shí)驗(yàn)時(shí)間:年月日學(xué)生姓名學(xué)號(hào)成績(jī)學(xué)生所在學(xué)院機(jī)械工程與自動(dòng)化學(xué)院年級(jí)/專(zhuān)業(yè)/班課程名稱(chēng)機(jī)械CAD/CAM課程代碼實(shí)驗(yàn)項(xiàng)目名稱(chēng)一元函數(shù)和二元函數(shù)插值編程項(xiàng)目代碼1指導(dǎo)教師項(xiàng)目學(xué)分一、實(shí)驗(yàn)?zāi)康牧私釩AD中對(duì)設(shè)計(jì)資料的程序化處理方法;編程實(shí)現(xiàn)一元函數(shù)插值法查詢(xún)工程數(shù)據(jù),增加對(duì)工程手冊(cè)的數(shù)據(jù)處理的感性認(rèn)識(shí)。二、內(nèi)容與設(shè)計(jì)思想插值法設(shè)法構(gòu)造某個(gè)簡(jiǎn)單的函數(shù)Y=P(x)作為列表函數(shù)f(x)的近似表達(dá)式,然后計(jì)算P(x)值以得到f(x)的近似值。并且使f(xi)-P(xi)=0I=1,2,…,n成立。P(x)就稱(chēng)為f(x)的插值函數(shù),點(diǎn)x1,x2,…,xn稱(chēng)為插值節(jié)點(diǎn)。YXOYXO線性插值已知插值點(diǎn)P的相鄰兩點(diǎn),,則:拉格朗日插值為多次插值公式,考慮進(jìn)其他節(jié)點(diǎn)位置,可提高插值精度。二次插值多項(xiàng)式為(拋物線插值):二元列表函數(shù)的插值,從幾何意義上講是在三維空間內(nèi)選定幾個(gè)點(diǎn),通過(guò)這些點(diǎn)構(gòu)造一塊曲面g(x,y),用它近似地表示在這區(qū)間內(nèi)原有的曲面f(x,y),從而得插值后的函數(shù)值為。根據(jù)插值函數(shù)g(x,y)的構(gòu)造方法分為:直線-直線插值以構(gòu)造曲面g(x,y)代替曲面f(x,y)。K為插值結(jié)果。如圖1所示。拋物線-直線插值將AB和CD改為拋物線,k為插值結(jié)果K在xoy平面上的投影。如圖2所示。拋物線-拋物線插值u,v,w三點(diǎn)的取得均由拋物線插值而來(lái),k為插值結(jié)果K在xoy平面上的投影,要得到k點(diǎn)還需進(jìn)行一次拋物線插值。如圖2所示。圖1直線-直線插值幾何示意圖圖2圖1直線-直線插值幾何示意圖圖2直線-拋物線插值三、使用環(huán)境能運(yùn)行C等高級(jí)語(yǔ)言或面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的計(jì)算機(jī)平臺(tái),具體參數(shù)以實(shí)驗(yàn)室所配置計(jì)算機(jī)為準(zhǔn)。四、核心代碼及調(diào)試過(guò)程一元函數(shù)C程序代碼:#include<stdio.h>#include<math.h>voidmain(){inti;intn=4;floatxi,yi;floatx[4]={1,2,3,4};floaty[4]={3,6,4,8};scanf("%f",&xi);if((xi<x[0])||(xi>x[n-1])) printf("%s\n","輸入數(shù)據(jù)越界!");else{ for(i=1;i<n;i++) { if(xi<=x[i]) { i=i-1; yi=(xi-x[i+1])*y[i]/(x[i]-x[i+1])+(xi-x[i])*y[i+1]/(x[i+1]-x[i]); printf("yi=%4.1f\n",yi); break; } }}}拋物線函數(shù)插值:#include<stdio.h>#include<math.h>voidmain(){inti;intn=4;floatxi,yi;floatx[4]={1,2,3,4};floaty[4]={3,6,4,8};scanf("%f",&xi);if((xi<x[0])||(xi>x[n-1])) printf("%s\n","輸入數(shù)據(jù)越界!");else{ for(i=1;i<n;i++) { if(xi<=x[i]) { if(i==1) { yi=(xi-x[i+1])*(xi-x[i])*y[i-1]/((x[i-1]-x[i])*(x[i-1]-x[i+1]))+(xi-x[i-1])*(xi-x[i+1])*y[i]/((x[i]-x[i-1])*(x[i]-x[i+1]))+(xi-x[i-1])*(xi-x[i])*y[i+1]/((x[i+1]-x[i-1])*(x[i+1]-x[i])); printf("yi=%4.1f\n",yi); break; } else { if((xi-x[i-1])<(x[i]-xi)) i=i-1; yi=(xi-x[i+1])*(xi-x[i])*y[i-1]/((x[i-1]-x[i])*(x[i-1]-x[i+1]))+(xi-x[i-1])*(xi-x[i+1])*y[i]/((x[i]-x[i-1])*(x[i]-x[i+1]))+(xi-x[i-1])*(xi-x[i])*y[i+1]/((x[i+1]-x[i-1])*(x[i+1]-x[i])); printf("yi=%4.1f\n",yi); break; } } }二元函數(shù)插值:#include"stdio.h"#include"math.h"floatline(floatxi,floatyi,floatxj,floatyj,floatx){ floaty; y=(x-xi)*(yj-yi)/(xj-xi)+yi; returny;}floatparabolic(floatxm,floatym,floatxi,floatyi,floatxk,floatyk,floatx){ floaty; y=(x-xi)/(xm-xi)*(x-xk)/(xm-xk)*ym+(x-xm)/(xi-xm)*(x-xk)/(xi-xk)*yi+(x-xm)/(xk-xm)*(x-xi)/(xk-xi)*yk;//公式3-3; returny;}main(){ floatD[6][10]={{2.59,2.40,2.33,2.21,2.09,2.00,1.88,1.80,1.72,1.01},{1.88,1.80,1.73,1.68,1.62,1.59,1.53,1.49,1.44,1.36},\ {1.64,1.59,1.55,1.52,1.48,1.46,1.42,1.38,1.34,1.26},{1.49,1.46,1.44,1.42,1.39,1.38,1.34,1.31,1.27,1.20},\ {1.39,1.37,1.35,1.34,1.33,1.31,1.29,1.27,1.22,1.17},{1.32,1.31,1.30,1.29,1.27,1.26,1.25,1.23,1.20,1.14}}; floatx[6]={0.04,0.10,0.15,0.20,0.25,0.30}; floaty[10]={6,3,2,1.5,1.2,1.1,1.05,1.03,1.02,1.01}; floatxk,yk,zk; floatxa,xb,xc,xd,ya,yb,yc,yd; floatza,zb,zc,zd,ze,zf; inti,j; while(1) { printf("請(qǐng)輸入r/d\n"); scanf("%f",&xk); if(xk>=x[0]&&xk<=x[5]) break; else printf("越界\n"); } while(1) { printf("請(qǐng)輸入D/d\n"); scanf("%f",&yk); if(yk>=y[9]&&yk<=y[0]) break; else printf("越界\n"); } for(i=1;i<6;i++) { if(xk<=x[i]) { xa=xc=x[i-1]; xb=xd=x[i]; break; } } for(j=1;j<10;j++) { if(yk>=y[j]) { ya=yb=y[j-1]; yc=yd=y[j]; break; } } za=D[i-1][j-1]; zb=D[i][j-1]; zc=D[i-1][j]; zd=D[i][j]; ze=line(xa,za,xb,zb,xk); zf=line(xc,zc,xd,zd,xk); zk=line(ya,ze,yc,zf,yk);printf("%4.2f\n",zk);}五、總結(jié)1.一元函數(shù)插值法適合查詢(xún)哪類(lèi)數(shù)據(jù)?答:一元函數(shù)插值法適合查詢(xún)二維平面的離散型數(shù)據(jù)。2.二元函數(shù)插值法適合查詢(xún)哪種數(shù)據(jù)?答:二元函數(shù)插值法適合查詢(xún)?nèi)S空間內(nèi)選定的幾個(gè)點(diǎn)。3.拋物線插值時(shí)對(duì)節(jié)點(diǎn)的選擇有何要求?(1)若︱X-Xi-1︱<=︱X-Xi︱,即X靠近Xi-1點(diǎn),則選Xi-2,Xi-1,Xi。(2)若︱X-Xi-1︱>︱X-Xi︱,即X靠近Xi點(diǎn),則選Xi-1,Xi,Xi+1。(3)若X1<=X<=X2,即X靠近表頭,則選X1,X2,X3。(4)若Xn-1<=X<=Xn,即X

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論