計(jì)算數(shù)值實(shí)驗(yàn)報(bào)告(太原理工大學(xué))_第1頁
計(jì)算數(shù)值實(shí)驗(yàn)報(bào)告(太原理工大學(xué))_第2頁
計(jì)算數(shù)值實(shí)驗(yàn)報(bào)告(太原理工大學(xué))_第3頁
計(jì)算數(shù)值實(shí)驗(yàn)報(bào)告(太原理工大學(xué))_第4頁
計(jì)算數(shù)值實(shí)驗(yàn)報(bào)告(太原理工大學(xué))_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

v1.0可編輯可修改v1.0可編輯可修改本科實(shí)驗(yàn)報(bào)告課程名稱:計(jì)算數(shù)值方法 實(shí)驗(yàn)地點(diǎn):綜合樓五層506室專業(yè)班級(jí):計(jì)科1002學(xué)號(hào):J4學(xué)生姓名:xxx 指導(dǎo)教師:王崢2012年6月20

太原理工大學(xué)學(xué)生實(shí)驗(yàn)報(bào)告學(xué)院名稱計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)班級(jí)計(jì)科1002學(xué)號(hào)14學(xué)生姓名xxx實(shí)驗(yàn)日期成績課程名稱計(jì)算數(shù)值方法實(shí)驗(yàn)題目實(shí)驗(yàn)一方程求根一、課題名稱方程求根:熟悉使用、迭代法、牛頓法、割線法等方法對(duì)給定的方程進(jìn)行根的求解。選擇上述方法中的兩種方法求方程: 一分法f(x)=x+4x-10=0在[1,2]內(nèi)的一個(gè)頭根,且要求滿足精度|x*-xn|<X10-5迭代法:用迭代公式x=f(x)進(jìn)行迭代計(jì)算,直到滿足|x-xn|<Xl0—5為止。二分法:設(shè)f(x)在[a,b]上連續(xù),且f(al)*f(x1)<0,記(a2,b2)=(x1,bl)帶入計(jì)算式進(jìn)行計(jì)算直到|x*-xn|<X10-5為止。二、目的和意義(1)了解非線性方程求根的常見方法,如二分法、迭代法、牛頓法、割線法。(2)加深對(duì)方程求根方法的認(rèn)識(shí),掌握算法。會(huì)進(jìn)行誤差分析,并能對(duì)不同方法進(jìn)行比較。三、計(jì)算公式(1)迭代法).首先對(duì)給定的計(jì)算公式進(jìn)行變形使其能夠迭代或者找出相應(yīng)迭代速度較快的式子。).帶入求好的式子到循環(huán)中去比如:xk1 (xk) (k0,1,2,L)(2)二分法:f(x)在區(qū)間(x,y)上連續(xù).先找到a、b屬于區(qū)間(x,y),使f(a),f(b)異號(hào),說明在區(qū)間(a,b)內(nèi)一定后零點(diǎn),然后求f[(a+b)/2],.如果f[(a+b)/2]=0 ,該點(diǎn)就是零點(diǎn),如果f[(a+b)/2]<0,則在區(qū)間((a+b)/2,b)內(nèi)肩零點(diǎn),反之在(a,(a+b)/2)內(nèi)后零點(diǎn)帶入1)中繼續(xù)。四、主要儀器設(shè)備Vc++C-freeCodeBlocks五、結(jié)構(gòu)程序設(shè)計(jì)迭代法:#include<>#include<>main(){inti;doublexn[15],y,x1,x2,m;printf("請(qǐng)輸入x1,x2的值:\n");scanf("%lf%lf",&x1,&x2);printf(" 請(qǐng)輸入精度要求:\n");scanf("%lf",&m);printf("nxn'n");i=0;do{xn[0]=(x1+x2)/2;xn[i+1]= sqrt(10/(4+xn[i]));__ _150.31059.1431X159.174215X1123Xi145.2916.13012X246.7887210X2012X28211311.2952X314836X34X31211X421261120X41X1721X25121Xn1512 Xn5追趕法:用來求對(duì)角方程組;將系數(shù)矩陣A轉(zhuǎn)化為A=L*U,L為普通下n-1對(duì)角矩陣,U為單位上n-1對(duì)角矩陣,然后通過用來求對(duì)角方程組;將系數(shù)矩陣程組l*y=b,u*x=y,來求解x.、主要儀器設(shè)備c++C-freeCodeBlocks、結(jié)構(gòu)程序設(shè)計(jì)Gauss消元法:#include<iostream>#include<cmath>usingnamespacestd;intmain(){intn,i,j,k;doublea[100][100],b[100],o;cout<<"輸入未知數(shù)個(gè)數(shù):"<<endl;cin>>n;cout<<"輸入數(shù)列:"<<endl;for(i=1;i<=n;i++)for(j=1;j<=n+1;j++)cin>>a皿];for(i=1;i<=n;i++)for(j=i+1;j<=n;j++)if(fabs(a[j][i])>1e-7){o=a[i][i]/a皿i];for(k=i;k<=n+1;k++)a[j][k]=a[j][k]*o-a[i][k];}for(i=n;i>0;i--){b[i]=a皿n+1]/a[i][i];for(j=i-1;j>0;j--)a皿n+1]=a[j][n+1]-b[i]*a皿i];}cout<<"解得:"<<endl;for(i=1;i<=n;i++)cout<<b[i]<<endl;lf\n",i,d[i]);}、結(jié)果討論和分析消元法: 列主元素消元法:解法: 追趕法:

討論從消元過程可以看出,對(duì)于n階線性方程組,只要各步主元素不為零,經(jīng)過n-1步消元,就可以得到一個(gè)等價(jià)的系數(shù)三角形陣的方程組,然后再利用回代過程可求得原方程組的解.由于列主元素法相似且優(yōu)于完全主元素法 所以省北消元過程相當(dāng)于分解A為單位下三角陣L與上三角陣U的乘積,解方程組Ly=b回代過程就是解方程組Ux=y。其中白單位下三角陣、U為上三角陣.在A的LU分解中,L取下三角陣,U取單位上三角陣,這樣求解方程組Ax=d的方?法。另外是追趕法和其他方法求同一方程結(jié)果不一樣,我多次修改源程序,也不知道原因。再就是追趕法有很大的局改良。圖:實(shí)驗(yàn)地點(diǎn)綜合樓五層506室指導(dǎo)教師王崢太原理工大學(xué)學(xué)生實(shí)驗(yàn)報(bào)告學(xué)院名稱計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)班級(jí)計(jì)科1002學(xué)號(hào)14學(xué)生姓名xxx實(shí)驗(yàn)日期成績課程名稱計(jì)算數(shù)值方法實(shí)驗(yàn)題目實(shí)驗(yàn)三線性方程組的迭代解法、課題名稱線性方程組的迭代解法使用雅可比迭代法或高斯-賽德爾迭代法對(duì)下取」方程組進(jìn)行求解。10xiX22x3 7.2Xi10X22x38.3x1x25x34.2二、目的和意義學(xué)習(xí)使用雅可比迭代法或高斯-賽德爾迭代法三、計(jì)算公式雅克比迭代法:設(shè)線性方程組Ax=b的系數(shù)矩陣A可逆且主對(duì)角元素aii,a22,…,ann均不為零,令D=diag(aii,a22,…,ann)并將A分解成A=(A-D)+D從而線性方程組可寫成Dx=(D-A)x+b則有迭代公式x(k+1)=Bx(k)+fi其中Bi=I-D-1A,fi=D1b。四、主要儀器設(shè)備Vc++C-freeCodeBlocks五、結(jié)構(gòu)程序設(shè)計(jì)雅克比迭代法:#include<>#include<>main(){inti;doublex1[20],x2[20],x3[20];doublex10,x20,x30;printf("請(qǐng)輸入x1,x2,x3的初值:\n");scanf("%lf%lf%lf",&x10,&x20,&x30);printf("nx1[n] x2[n] x3[n]\n");for(i=0;i<18;i++){x1[0]=x10;x2[0]=x20;x3[0]=x30;x1[i+1]=*x2[i]+*x3[i]+;x2[i+1]=*x1[i]+*x3[i]+;x3[i+1]=*x1[i]+*x2[i]+;printf("%5d%51f%51f%5lf\n",i,x1[i],x2[i],x3[i]);}}六、實(shí)驗(yàn)結(jié)果與分析:雅克比迭代法:

鼾通Axl?,乙-四初值?d6£1n xl[n1x2Cn]x3tn]n 叼《目h目眄④0.0000000.0B00001 0,7200080.B30000@-84000021.0700001.1500003 1.0B70901.1571001.24820U4 1,0853501,1853401.2828365 1.0950981.1?50991.294138£ 1.0983381.1?8337t-2980397 1.099442L.l?94421-2992358 1.099B111-2997779 1.0999361.1999361.29992410 1.0999791.199979i-2999^11 1.0999991-1999931-29999112 1.0999981-29999713 1.0999??L-1.29299214 1.100039j,[Gm1.3Q000015 1.1008301.30000016 1.1010。11.30000017 1<1000981.300000分析討論:其實(shí),這兩個(gè)迭代法是之前迭代法的升級(jí),多了幾個(gè)迭代式子而已,而且兩者相差不大比較簡單,所以選擇了雅克比迭代法進(jìn)行求解, 但是沒有與另一種方法高斯賽德爾迭代法進(jìn)行實(shí)質(zhì)性的比較。流程圖:實(shí)驗(yàn)地點(diǎn)綜合樓五層506室 指導(dǎo)教師王崢太原理工大學(xué)學(xué)生實(shí)驗(yàn)報(bào)告學(xué)院名稱計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)班級(jí)計(jì)科1002學(xué)號(hào)14學(xué)生姓名xxx實(shí)驗(yàn)日期成績課程名稱計(jì)算數(shù)值方法實(shí)驗(yàn)題目實(shí)驗(yàn)四矩陣特征值與特征向量問題、課題名稱使用幕法求A模為最大的特征值及其相應(yīng)的特征向量。TOC\o"1-5"\h\z2 1 0A12 10 1 2二、目的和意義(1)了解矩陣特征值與特征向量問題解法,掌握幕法。(2)加深對(duì)矩陣特征值與特征向量問題求解方法的認(rèn)識(shí),掌握算法。三、計(jì)算公式幕法:由已知的非零向量x0和矩陣A的乘幕構(gòu)造向量序列{xn}以計(jì)算矩陣A的按模最大特征值及其特征向量的方法,稱為幕法。迭代公式:ykAxk1mkmax(yk),k1,2,...Xkyk

mXk結(jié)果可取1 mk1 yk或1 xk四、主要儀器設(shè)備Vc++C-freeCodeBlocks五、結(jié)構(gòu)程序設(shè)計(jì)源代碼:#include<>#include<>#defineN3#defineeps1e-6#defineKM30floatMaxValue(floatx[],intn){floatMax=x[0];inti;for(i=1;i<n;i++)if(fabs(x[i])>fabs(Max))Max=x[i];returnMax;}voidPowerMethod(float*A){floatU[N],V[N],r1,r2,temp;inti,j,k=0;while(k<KM){k++;for(i=0;i<N;i++){temp=0;for(j=0;j<N;j++)temp+=*(A+i*N+j)*U[j];V[i]=temp;}for(i=0;i<N;i++)U[i]=V[i]/MaxValue(V,N);if(k==1)r1=MaxValue(V,N);elser2=MaxValue(V,N);if(fabs(r2-r1)<eps)break;r1=r2;}printf("r=%f\n",r2);for(i=0;i<N;i++)printf("y[%d]=%f\n",i+1,U[i]);}voidmain(){floatA[N][N尸{{2,-1,0},{-12-1},{0,-1,2}};floatU[N];//A 的值U[0]=1;U[1]=1;U[2]=1;//x0的值PowerMethod(A[0]);}六、結(jié)果討論和分析分析討論由于該程序?qū)矩陣和x0的值編寫在程序中,所以要想修改成其他矩陣時(shí)比較麻煩,所以也有一定的局限性。幕法是一種求任意矩陣A的按模最大特征值及其對(duì)應(yīng)特征向量的迭代算法。該方法的最大優(yōu)點(diǎn)是計(jì)算簡單,容易在計(jì)算機(jī)上實(shí)現(xiàn),對(duì)稀疏矩陣較為適合,但有時(shí)收斂速度很慢。流程圖:實(shí)驗(yàn)地點(diǎn)綜合樓五層506實(shí)驗(yàn)地點(diǎn)綜合樓五層506室 指導(dǎo)教師王崢太原理工大學(xué)學(xué)生實(shí)驗(yàn)報(bào)告學(xué)院名稱計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)班級(jí)計(jì)科1002學(xué)號(hào)14學(xué)生姓名XXX實(shí)驗(yàn)日期成績課程名稱計(jì)算數(shù)值方法實(shí)驗(yàn)題目實(shí)驗(yàn)五代數(shù)插值一、課題名稱(使用拉格朗日插值法或牛頓插值法求解:已知f(x)在6個(gè)點(diǎn)的函數(shù)值如下表所示,運(yùn)用插值方法,求f的近似值。Xf(x)、目的和意義學(xué)習(xí)使用拉格朗日插值法或牛頓插值法求解三、計(jì)算公式設(shè)函數(shù)在區(qū)間[a,b]上n+1互異節(jié)點(diǎn)Xo,X1,…,xn上的函數(shù)值分別為yo,yi,…,yn,求n次插值多項(xiàng)式Pn(x),滿足條件Pn(Xj)=yj,j=0,1,…,n令Ln(x)=yolo(x)+yili(x)+…+ynln(x)=/y/i(x)其中l(wèi)o(x),ll(x),…,ln(x)為以X0,X1,…,Xn為節(jié)點(diǎn)的n次插值基函

…,n數(shù),則Ln(x)是一次數(shù)不超過n…,nLn(Xj)=yj,L=0,1,再由插值多項(xiàng)式的唯一性,得Pn(X)三Ln(X)四、主要儀器設(shè)備Vc++C-freeCodeBlocks五、結(jié)構(gòu)程序設(shè)計(jì)#include<>#include<>main(){intI;charL;doubleM[100][100];doublex[100],y[100];doubleX=1,xx=0,w=1,N=0,P,R=1;intn=5;//cout<<”請(qǐng)輸入所求均差階數(shù):";//求所有階差〃cin>>n;//for(inti=0;i<=n;i++)//{/*cout<<"請(qǐng)輸入x"<<i<<"的值:"<<endl;cin>>x[i];cout<<"請(qǐng)輸入y"<<i<<"的值:"<<endl;cin>>y[i];M[i][0]=x[i];M[i][1]=y[i];*/// 用二維保存所有數(shù)據(jù)M[0][0]=;M[0][1]=;M[1][0]=;M[1][1]=;M[2][0]=;M[2][1]=;M[3][0]=;M[3][1]=;M[4][0]=;M[4][1]=;M[5][0]=;M[5][1]=;for(intj=2;j<=n+1;j++)(for(inti=1;i<=n;i++)(M[i][j]=(M[i][j-1]-M[i-1][j-1])/(M[i][0]-M[i-j+1][0]);}}for(inti=1;i<=n;i++)(cout<<"其"<<i<<”階均差為:"<<M[i][i+1]<<endl;}cout<<"請(qǐng)輸入x的值:x=";cin>>xx;for(inti=0;i<n;i++)(X*=xx-M[i][0];N+=M[i+1][i+2]*X;P=M[0][1]+N;}cout<<"其函數(shù)值:y="<<P<<endl;//})分析討論拉格朗日插值的優(yōu)點(diǎn)是插值多項(xiàng)式特別容易建立,缺點(diǎn)是增加節(jié)點(diǎn)是原有多項(xiàng)式不能利用,必須重新建立,即所有基函數(shù)都要重新計(jì)算,這就造成計(jì)算量的浪費(fèi)。所以該程序選擇了牛頓法,由于在輸入數(shù)據(jù)的時(shí)候比較麻煩 所以將數(shù)據(jù)存在了程序里面,只能在程序里修改數(shù)據(jù)。 另外由于精度問題計(jì)算結(jié)果有一定的誤差。流程圖:實(shí)驗(yàn)地點(diǎn)綜合樓五層506室指導(dǎo)教師王崢太原理工大學(xué)學(xué)生實(shí)驗(yàn)報(bào)告學(xué)院名稱計(jì)算機(jī)科學(xué)與技術(shù)學(xué)生姓名xxx課程名稱計(jì)算數(shù)值方法專業(yè)班級(jí)學(xué)院名稱計(jì)算機(jī)科學(xué)與技術(shù)學(xué)生姓名xxx課程名稱計(jì)算數(shù)值方法專業(yè)班級(jí)計(jì)科1002學(xué)號(hào)14實(shí)驗(yàn)日期成績實(shí)驗(yàn)題目實(shí)驗(yàn)六最小二乘法擬合多項(xiàng)式、課題名稱給定數(shù)據(jù)點(diǎn)(Xi,yi),用最小二乘法擬合數(shù)據(jù)的多項(xiàng)式,并求平方誤差。Xi0V、1、目的和意義.熟練運(yùn)用已學(xué)計(jì)算方法求解方程組.加深對(duì)計(jì)算方法技巧,選擇正確的計(jì)算方法來求解各種方程組.培養(yǎng)使用電子計(jì)算機(jī)進(jìn)行科學(xué)計(jì)算和解決問題的能力三、計(jì)算公式建立正規(guī)方程組:■(二Xij+k)ak=EXijyi,j=0,1,…,n平方誤差:=.(.akXi-yi)四、主要儀器設(shè)備Vc++C-freeCodeBlocks五、結(jié)構(gòu)程序設(shè)計(jì)源代碼:#include<>#include<>#defineN15doublepower(double&a,intn){doubleb=1;for(inti=0;i<n;i++)b*=a;returnb;}voidGauss();doubleX[N],Y[N],sumX[N],sumY[N],a[N][N],b[N],l[N][N],x[N];

voidmain()(ofstreamoutdata;ifstreamindata;doubles;inti,j,k,n,index;//cout<<"請(qǐng)輸入已知點(diǎn)的個(gè)數(shù)n=";〃cin>>n;n=7;cout<<endl;輸入給定數(shù)據(jù)循環(huán)輸入任何數(shù)據(jù)//cout<<"請(qǐng)輸入X和Y:"<<endl;//輸入給定數(shù)據(jù)循環(huán)輸入任何數(shù)據(jù)X[0]=;Y[0]二;X[1]=;Y[1]=;X[2]=;Y[2]二;X[3]=;Y[3]二;X[4]=;Y[4]二;X[5]=;Y[5]二;X[6]=;Y[6]=;〃 綁定數(shù)據(jù)〃可以解綁由下forfor(i=0;i<n;i++)(//cout<<"X["<<i<<"]=";〃cin>>X[i];sumX[1]+=X[i];//cout<<"Y["<<i<<"]=";〃cin>>Y[i];sumY[1]+=Y[i];//cout<<endl;)cout<<"sumX[1]="<<sumX[1]<<"\t"<<"sumY[1]="<<sumY[1]<<endl;cout<<"請(qǐng)輸入擬合次數(shù)index=";cin>>index;cout<<endl;i=n;sumX[0]=i;for(i=2;i<=2*index;i++){sumX[i]=0;for(j=0;j<n;j++)sumX[i]+=power(X[j],i);cout<<"sumX["<<i<<"]="<<sumX[i]<<endl;)for(i=2;i<=index+1;i++){sumY[i]=0;for(j=0;j<n;j++)sumY[i]+=power(X[j],i-1)*Y[j];cout<<"sumY["<<i<<"]="<<sumY[i]<<endl;)for(i=1;i<=index+1;i++){ // 建立正規(guī)方程組for(j=1;j<=index+1;j++)a[i][j]=sumX[i+j-2];b[i]=sumY[i];)k=1; // 用高斯消元法解方程組do{for(j=k+1;j<=index+1;j++)l[j][k]=a[j][k]/a[k][k];for(i=k+1;i<=index+1;i++){for(j=k+1;j<=index+1;j++)a[i][j]=a[i][j]-l[i][k]*a[k][j];b[i]=b[i]-l

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論