![數(shù)值分析實(shí)習(xí)三_第1頁(yè)](http://file4.renrendoc.com/view11/M03/2B/3E/wKhkGWX7ZvOAL0hkAACoer13-So710.jpg)
![數(shù)值分析實(shí)習(xí)三_第2頁(yè)](http://file4.renrendoc.com/view11/M03/2B/3E/wKhkGWX7ZvOAL0hkAACoer13-So7102.jpg)
![數(shù)值分析實(shí)習(xí)三_第3頁(yè)](http://file4.renrendoc.com/view11/M03/2B/3E/wKhkGWX7ZvOAL0hkAACoer13-So7103.jpg)
![數(shù)值分析實(shí)習(xí)三_第4頁(yè)](http://file4.renrendoc.com/view11/M03/2B/3E/wKhkGWX7ZvOAL0hkAACoer13-So7104.jpg)
![數(shù)值分析實(shí)習(xí)三_第5頁(yè)](http://file4.renrendoc.com/view11/M03/2B/3E/wKhkGWX7ZvOAL0hkAACoer13-So7105.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
北京航空航天大學(xué)實(shí)驗(yàn)報(bào)告課程名稱:數(shù)值分析A第三次實(shí)驗(yàn)實(shí)驗(yàn)名稱:數(shù)值分析A計(jì)算實(shí)習(xí)題目三院〔系〕:自動(dòng)化科學(xué)與電氣工程學(xué)院專業(yè):控制科學(xué)與工程姓名:保然學(xué)號(hào):SY1203302實(shí)驗(yàn)時(shí)間:2012年11月26日算法的設(shè)計(jì)方案利用已給出的關(guān)于x,y,t,u,v,w的非線性方程組,以及已經(jīng)給出的一組(x,y),可以解非線性方程組,計(jì)算出與(x,y)相對(duì)應(yīng)的(t,u)的值;在此根底上,再利用關(guān)于t,u,z的數(shù)表,對(duì)上一步中求出的(t,u)值進(jìn)行分片二次插值,即可得到與(t,u)對(duì)應(yīng)的z的值〔因?yàn)椴逯岛瘮?shù)在插值點(diǎn)上是準(zhǔn)確值〕,從而得到了與(x,y)對(duì)應(yīng)的z=f(x,y)值〔準(zhǔn)確值〕,從而構(gòu)造出關(guān)于x,y,z的數(shù)表;接著利用x,y,z的數(shù)表進(jìn)行曲面擬合,得到滿足最小二乘要求的擬合函數(shù)p(x,y),即求出了p(x,y)的所有系數(shù);最后用一組給定的(x*,y*),求解關(guān)于x,y,t,u,v,w的非線性方程組,得到與(x*,y*)對(duì)應(yīng)的(t*,u*),利用數(shù)表t,u,z進(jìn)行分片二次插值,即可得到與(x*,y*)對(duì)應(yīng)的z*=f(x*,y*)的值,同時(shí)利用上一步中解得的系數(shù)Crs求解出p*=(x*,y*),比擬z*=f(x*,y*)和p*=(x*,y*)的大小以檢驗(yàn)擬合結(jié)果。注意:a)求解非線性方程組時(shí)使用Newton法,給定精度水平,最大迭代次數(shù)M=20,在每次迭代前構(gòu)造和,當(dāng)時(shí)停止計(jì)算。b)分片二次插值時(shí)注意函數(shù)值點(diǎn)所落在的區(qū)域,同時(shí)注意行值和列值得區(qū)別,t對(duì)應(yīng)的數(shù)值確定行值,u對(duì)應(yīng)的數(shù)值確定列值。c)曲面擬合時(shí),關(guān)于x的基函數(shù)為,關(guān)于y的基函數(shù)為其中k從0開(kāi)始取值,每做完一次曲面擬合后,計(jì)算,當(dāng)時(shí),使k=k+1,再次進(jìn)行曲面擬合,直到時(shí)停止,記錄此時(shí)的k值以及p(x,y)中的系數(shù)Crs。源程序源代碼如下:#include<stdio.h>#include<math.h>#include<iostream>#include<iomanip>usingnamespacestd;voidgauss_elimination(doubleA[][4],doubleb[])//高斯消去法求解線性方程組的解向量,返回一個(gè)向量{ intk,i,j,ik; doublec,d,mik; doubleB[4][4]; for(i=0;i<=3;i++) { for(j=0;j<=3;j++) { B[i][j]=A[i][j];//將系數(shù)矩陣存儲(chǔ)用于計(jì)算,而不破壞其原始結(jié)構(gòu) } } for(k=0;k<=2;k++) { /*選主元*/ c=fabs(B[k][k]); for(i=k,ik=k;i<=3;i++) { if(c<fabs(B[i][k])) { c=fabs(B[i][k]); ik=i; } } for(j=k;j<=3;j++) { d=B[k][j]; B[k][j]=B[ik][j]; B[ik][j]=d; } d=b[k];b[k]=b[ik]; b[ik]=d; /*選主元結(jié)束*/ for(i=k+1;i<=3;i++) { mik=B[i][k]/B[k][k]; for(j=k;j<=3;j++) { B[i][j]=B[i][j]-mik*B[k][j]; } b[i]=b[i]-mik*b[k]; } } b[3]=b[3]/B[3][3]; for(k=2;k>=0;k--) { for(j=k+1,d=0;j<=3;j++) { d+=B[k][j]*b[j]; } b[k]=(b[k]-d)/B[k][k]; } return;}doublemax(doublea[])//求一個(gè)向量的無(wú)窮范數(shù),并返回?zé)o窮范數(shù)的值{ inti; doubleb; for(i=0,b=fabs(a[0]);i<=3;i++) { if(b<fabs(a[i]))b=fabs(a[i]); } return(b);}voidnewton(doubleB[],doubleX[])//Newton法求解非線性方程組的解向量,返回一個(gè)向量{ inti,k,M=20;//設(shè)置迭代上限M doublex[4]={1,0.5,1,1},dx[4],a,b; doubleF[4],dF[4][4]={{1,1,1,1},{1,1,1,1},{0.5,1,1,1},{1,0.5,1,1}}; for(k=0;k<=M;k++) { F[0]=0.5*cos(x[0])+x[1]+x[2]+x[3];F[1]=x[0]+0.5*sin(x[1])+x[2]+x[3]; F[2]=0.5*x[0]+x[1]+cos(x[2])+x[3]; F[3]=x[0]+0.5*x[1]+x[2]+sin(x[3]); dF[0][0]=-0.5*sin(x[0]); dF[1][1]=0.5*cos(x[1]); dF[2][2]=-sin(x[2]); dF[3][3]=cos(x[3]); for(i=0;i<=3;i++) { dx[i]=B[i]-F[i]; } gauss_elimination(dF,dx); a=max(dx); b=max(x); if(a/b<=1e-12)break; else { for(i=0;i<=3;i++) { x[i]=x[i]+dx[i]; } } } for(i=0;i<=3;i++) { X[i]=x[i]; } return;}doublelk(doublex[],doublexm,inti,intk)//構(gòu)造Lagrange二次插值基函數(shù){ doublelk; if(k==i-1) lk=(xm-x[i])*(xm-x[i+1])/(x[k]-x[i])/(x[k]-x[i+1]); elseif(k==i)lk=(xm-x[i-1])*(xm-x[i+1])/(x[k]-x[i-1])/(x[k]-x[i+1]); else lk=(xm-x[i-1])*(xm-x[i])/(x[k]-x[i-1])/(x[k]-x[i]); return(lk);}voidercichazhi_1(doublex[][21],doubley[][21],doublez[][21])//分片二次插值求解二次函數(shù)的函數(shù)值{ inti,j,m,n; doublea,b,c,d,e,f; doubleu[6]={0,0.4,0.8,1.2,1.6,2},t[6]={0,0.2,0.4,0.6,0.8,1}; doubleg[6][6]={{-0.5,-0.34,0.14,0.94,2.06,3.5}, {-0.42,-0.5,-0.26,0.3,1.18,2.38}, {-0.18,-0.5,-0.5,-0.18,0.46,1.42}, {0.22,-0.34,-0.58,-0.5,-0.1,0.62}, {0.78,-0.02,-0.5,-0.66,-0.5,-0.02}, {1.5,0.46,-0.26,-0.66,-0.74,-0.5}}; for(m=0;m<=10;m++) { for(n=0;n<=20;n++) { i=int(fabs(x[m][n]/0.4)+0.5);//確定數(shù)據(jù)點(diǎn)落在哪一列 if(i==5)i=4; if(i==0)i=1;a=lk(u,x[m][n],i,i-1); b=lk(u,x[m][n],i,i); c=lk(u,x[m][n],i,i+1); j=int(fabs(y[m][n]/0.2)+0.5);//確定數(shù)據(jù)點(diǎn)落在哪一行 if(j==5)j=4; if(j==0)j=1;d=lk(t,y[m][n],j,j-1); e=lk(t,y[m][n],j,j); f=lk(t,y[m][n],j,j+1);z[m][n]=a*d*g[j-1][i-1]+a*e*g[j][i-1]+a*f*g[j+1][i-1]+b*d*g[j-1][i]+b*e*g[j][i]+b*f*g[j+1][i]+c*d*g[j-1][i+1]+c*e*g[j][i+1]+c*f*g[j+1][i+1]; } } return;}voidgauss_elimination_2(doubleA[][6],doubleb[],intn)//高斯消去法求系數(shù)矩陣階數(shù)可變的方程組的解向量{intk,i,j,ik; doublec,d,mik; doubleB[6][6]={}; for(i=0;i<=n-1;i++) { for(j=0;j<=n-1;j++) { B[i][j]=A[i][j];//將系數(shù)矩陣存儲(chǔ)用于計(jì)算,而不破壞其原始結(jié)構(gòu) } } for(k=0;k<=n-2;k++) { /*選主元*/ c=fabs(B[k][k]); for(i=k,ik=k;i<=n-1;i++) { if(c<fabs(B[i][k])) { c=fabs(B[i][k]); ik=i; } } for(j=k;j<=n-1;j++) { d=B[k][j]; B[k][j]=B[ik][j]; B[ik][j]=d; } d=b[k];b[k]=b[ik]; b[ik]=d; /*選主元結(jié)束*/ for(i=k+1;i<=n-1;i++) { mik=B[i][k]/B[k][k]; for(j=k;j<=n-1;j++) { B[i][j]=B[i][j]-mik*B[k][j]; } b[i]=b[i]-mik*b[k]; } } b[n-1]=b[n-1]/B[n-1][n-1]; for(k=n-2;k>=0;k--) { for(j=k+1,d=0;j<=n-1;j++) { d+=B[k][j]*b[j]; } b[k]=(b[k]-d)/B[k][k]; } return;}voidintial(doubleB[][6],doubleG[][6],intn)//初始化曲面擬合法中的矩陣B和G{ inti,j; for(i=0;i<=10;i++) for(j=0;j<=n;j++) B[i][j]=pow(0.08*i,j); for(i=0;i<=20;i++) for(j=0;j<=n;j++) G[i][j]=pow(0.5+0.05*i,j); return;}voidqumiannihe(doubleB[][6],doubleG[][6],doubleU[][21],doubleC[][6],intn)//曲面擬合求解擬合系數(shù){ inti,j,k; doubleBTB[6][6]={},GTG[6][6]={},BTU[6][21]={},GT[6][21]={},A[6][21]={},D[21][6]={},DT[6][21]={}; doubleBT[6][11]={}; doublea[6]={},d[6]={};for(i=0;i<=n;i++) for(j=0;j<=10;j++) BT[i][j]=B[j][i];//初始化BT for(i=0;i<=n;i++) for(j=0;j<=20;j++) GT[i][j]=G[j][i];//初始化GT for(i=0;i<=n;i++) for(j=0;j<=n;j++) for(k=0;k<=10;k++) BTB[i][j]+=BT[i][k]*B[k][j];//求解BT*Bfor(i=0;i<=n;i++) for(j=0;j<=n;j++) for(k=0;k<=20;k++) GTG[i][j]+=GT[i][k]*G[k][j];//求解GT*G for(i=0;i<=n;i++) for(j=0;j<=20;j++) for(k=0;k<=10;k++) BTU[i][j]+=BT[i][k]*U[k][j];//求解BT*U for(i=0;i<=20;i++) {for(j=0;j<=n;j++) { a[j]=BTU[j][i]; d[j]=GT[j][i]; } gauss_elimination_2(BTB,a,n+1); gauss_elimination_2(GTG,d,n+1); for(j=0;j<=n;j++) { A[j][i]=a[j]; DT[j][i]=d[j]; } } for(i=0;i<=20;i++) for(j=0;j<=n;j++) D[i][j]=DT[j][i];for(i=0;i<=n;i++) for(j=0;j<=n;j++) for(k=0;k<=20;k++) C[i][j]+=A[i][k]*D[k][j];//求解系數(shù)矩陣C return;}voidercichazhi_2(doublex[][5],doubley[][5],doublez[][5])//分片二次插值求解二次函數(shù)的函數(shù)值{ inti,j,m,n; doublea,b,c,d,e,f; doubleu[6]={0,0.4,0.8,1.2,1.6,2},t[6]={0,0.2,0.4,0.6,0.8,1}; doubleg[6][6]={{-0.5,-0.34,0.14,0.94,2.06,3.5}, {-0.42,-0.5,-0.26,0.3,1.18,2.38}, {-0.18,-0.5,-0.5,-0.18,0.46,1.42}, {0.22,-0.34,-0.58,-0.5,-0.1,0.62}, {0.78,-0.02,-0.5,-0.66,-0.5,-0.02}, {1.5,0.46,-0.26,-0.66,-0.74,-0.5}}; for(m=0;m<=7;m++) { for(n=0;n<=4;n++) { i=int(fabs(x[m][n]/0.4)+0.5);//確定數(shù)據(jù)點(diǎn)落在哪一列 if(i==5)i=4; if(i==0)i=1;a=lk(u,x[m][n],i,i-1); b=lk(u,x[m][n],i,i); c=lk(u,x[m][n],i,i+1); j=int(fabs(y[m][n]/0.2)+0.5);//確定數(shù)據(jù)點(diǎn)落在哪一行 if(j==5)j=4; if(j==0)j=1;d=lk(t,y[m][n],j,j-1); e=lk(t,y[m][n],j,j); f=lk(t,y[m][n],j,j+1);z[m][n]=a*d*g[j-1][i-1]+a*e*g[j][i-1]+a*f*g[j+1][i-1]+b*d*g[j-1][i]+b*e*g[j][i]+b*f*g[j+1][i]+c*d*g[j-1][i+1]+c*e*g[j][i+1]+c*f*g[j+1][i+1]; } } return;}voidmain(){ inti,j,n=5,k=0,r,s; doublex[11],y[21],X[4],z[11][21],u[11][21],t[11][21]; doubleB[11][6]={},G[21][6]={},C[6][6]={}; doubleBM[4],p,eps=0,derta[11][21]; doublex1[8],y1[5],u1[8][5],t1[8][5],f[8][5],p1[8][5]={}; for(i=0;i<=10;i++) { x[i]=0.08*i;//初始化xi } for(j=0;j<=20;j++) { y[j]=0.5+0.05*j;//初始化yi } /*Newton法求解非線性方程組的解*/ for(i=0;i<=10;i++) { for(j=0;j<=20;j++) { BM[0]=2.67+x[i]; BM[1]=1.07+y[j]; BM[2]=3.74+x[i]; BM[3]=0.79+y[j]; newton(BM,X); u[i][j]=X[1];//提取出u t[i][j]=X[0];//提取出t } } /*Newton法求解非線性方程組的解結(jié)束*/ ercichazhi_1(u,t,z);//用與x,y相對(duì)應(yīng)的t,u值進(jìn)行分片二次插值,得到相應(yīng)的函數(shù)值z(mì)=f(x,y) /*輸出數(shù)表x,y,z*/ for(i=0;i<=10;i++) { for(j=0;j<=20;j++) { cout<<"x"<<i<<"="<<x[i]<<""<<"y"<<j<<"="<<y[j]<<""; cout<<"f(x"<<i<<",y"<<j<<")="<<setprecision(12)<<z[i][j]<<endl; } } cout<<endl; /*輸出數(shù)表x,y,z結(jié)束*/for(n=0;n<=5;n++){ for(i=0;i<=5;i++) { for(j=0;j<=5;j++) { C[i][j]=0; } } intial(B,G,n);qumiannihe(B,G,z,C,n);//用曲面擬合法求解擬合曲面,得到滿足最小二乘要求的擬合函數(shù)p〔x,y〕for(i=0;i<=10;i++) { for(j=0;j<=20;j++) { for(r=0,p=0;r<=n;r++) { for(s=0;s<=n;s++) { p+=C[r][s]*pow(x[i],r)*pow(y[j],s); } } derta[i][j]=(z[i][j]-p)*(z[i][j]-p); } } for(i=0,eps=0;i<=10;i++) for(j=0;j<=20;j++) eps+=derta[i][j]; cout<<"當(dāng)擬合函數(shù)次數(shù)k為"<<n<<"時(shí):";//輸出迭代次數(shù)k cout<<"函數(shù)精度σ為:"<<eps<<setprecision(12)<<endl;//輸出精度 if(eps<=1e-7)break;//判斷是否到達(dá)精度要求 }cout<<endl; /*輸出到達(dá)精度要求時(shí)的擬合系數(shù)Crs*/ cout<<"當(dāng)函數(shù)精度σ到達(dá)"<<eps<<setprecision(12)<<"時(shí)p(x,y)中的系數(shù)Crs為:"<<endl; for(i=0;i<=n;i++) { for(j=0;j<=n;j++) { cout<<"C("<<i<<","<<j<<")="<<setprecision(12)<<C[i][j]<<""; } cout<<endl; } cout<<endl; /*輸出到達(dá)精度要求時(shí)的擬合系數(shù)Crs結(jié)束*/for
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 美容院雙十一活動(dòng)方案策劃
- 雙11小活動(dòng)策劃方案
- 現(xiàn)服科技發(fā)展與創(chuàng)新人才培訓(xùn)模式探討
- 匯報(bào)技巧構(gòu)建高效商業(yè)匯報(bào)的核心要素
- 國(guó)慶節(jié)活動(dòng)方案披薩
- 7 角的初步認(rèn)識(shí) 第二課時(shí)(說(shuō)課稿)-2023-2024學(xué)年二年級(jí)下冊(cè)數(shù)學(xué)蘇教版001
- Unit 11 Chinese festivals(period 1)(說(shuō)課稿)-2023-2024學(xué)年滬教牛津版(深圳用)英語(yǔ)五年級(jí)下冊(cè)001
- 16 家鄉(xiāng)新變化(說(shuō)課稿)2023-2024學(xué)年統(tǒng)編版道德與法治二年級(jí)上冊(cè)
- 2023四年級(jí)數(shù)學(xué)上冊(cè) 二 加減法的關(guān)系和加法運(yùn)算律第5課時(shí)說(shuō)課稿 西師大版
- 2023九年級(jí)物理下冊(cè) 第十一章 物理學(xué)與能源技術(shù)11.3能源說(shuō)課稿 (新版)教科版
- 《志愿軍-存亡之戰(zhàn)》觀后感小學(xué)生
- 統(tǒng)編小學(xué)《道德與法治》三年級(jí)上下冊(cè)教材的解讀
- 人教版(2024)英語(yǔ)七年級(jí)上冊(cè)單詞表
- 產(chǎn)業(yè)鏈競(jìng)爭(zhēng)關(guān)聯(lián)度
- TTJSFB 002-2024 綠色融資租賃項(xiàng)目評(píng)價(jià)指南
- 涵洞施工鋼筋混凝土圓管涵
- 高考地理一輪復(fù)習(xí)學(xué)案+區(qū)域地理填圖+亞洲
- 全新車位轉(zhuǎn)讓協(xié)議模板下載(2024版)
- 高中數(shù)學(xué)必修一試卷及答案
- 砌筑工考試卷及答案
- 呼吸治療師進(jìn)修匯報(bào)
評(píng)論
0/150
提交評(píng)論