




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
實驗一迭代格式的比較一、問題提出設(shè)方程f(x)=x3-3x-1=0有三個實根x*=1.8793,x*=-0.34727,x*=-1.53209現(xiàn)采用下面三種不同計算格式,求f(x)=02的根1、3x+11、X22、3、二、要求1、編制一個程序進行運算,最后打印出每種迭代格式的斂散情況;2、 用事后誤差估計|x.+1-x」M來控制迭代次數(shù),并且打印出迭代的次數(shù); +3、 初始值的選取對迭代收斂有何影響;4、 分析迭代收斂和發(fā)散的原因。三、目的和意義1、 通過實驗進一步了解方程求根的算法;2、 認識選擇計算格式的重要性;3、 掌握迭代算法和精度控制;4、 明確迭代收斂性與初值選取的關(guān)系。四、程序設(shè)計流程圖返回繼續(xù)循環(huán)五、源程序代碼#include<iostream>#include<math.h>floatone(floatx0)(x1=(3*x0+1)/(x0*x0);return(x1);}floattwo(floatx0)(x2=(pow(x0,3)-1)/3;return(x2);floatthree(floatx0)(x3二pow(3*x0+1,0.33333);return(x3);}voidmain()(floatx,x0;floatx1,x2,x3;intk1,k2,k3;printf(pleaseinputx0=");scanf(〃%f〃,&x);x0=x;x1=one(x0);printf(-第一個公式迭代結(jié)果:\n〃);while(fabs(x0-x1)>1e-5)(printf(〃x1=%6.5f\n〃,x1);x0=x1;x1=one(x0);k1++;}printf(〃x1=%6.5f\n〃,x1);printf("k1=%i",k1);x0=x;x2=two(x0);printf(-第二個公式迭代結(jié)果為:\n〃);while(fabs(x0-x2)>1e-5)(printf(〃x2=%6.5f\n〃,x2);x0=x;x1=two(x0);k2++;}printf(〃x2=%6.5f\n〃,x2);printf("k2=%i",k2);x0=x;x3=three(x0);printf(-第三個公式迭代結(jié)果為:\n〃);while(fabs(x0-x3)>1e-5)(printf(〃x3=%6.5f\n〃,x3);x0=x;x1=three(x0);k3++;}printf(〃x3=%6.5f\n〃,x3);printf("k3=%i",k3);}運行結(jié)果如下:pleaseinputx0=—1第一個公式迭代始果Ixl=-2.00000xl=-t.25000X1--1.7600Hxl=-l.38171xl—l.Gd?42xl=-t.45257xl=-1R59136xl=-1,49033xl^-1.56277xl=-l,51021xl=-t-548B2-SWPtEfixl=-l.54038xl=-1.52613xl=-1*538^1xl—1.52B9Sxl=-1-53434xl—1,53047xl■—1.53326xl=-1.53124xl=-t-5327?xl—t.53186xl=-1.532^1xl=-l,531B6xl—1.93325xl=-l-S3197xl=-1.5321Bxl—i.S32?3xl=-1.53215xl=-t,532Mxl—t.53211xl=-t-532B7xl=-t,53210xl—1-632W1xl=-l_53210xl=-l,5320S□cM-LS32明hl=37第二個公式迭代結(jié)果:點=-土66667x243210x2=-fl.36023x2=-0.348?l點?-隊34E9x2=-a.34?32x2=-0.34730x2—e.34730:k2=fi第三個公式迭代結(jié)臬x3—l.ttlNDflb?3=l結(jié)果分析:對于第一種迭代格式,收斂區(qū)間為卜&2-0.4],在該收斂區(qū)間內(nèi)迭代收斂于-1.53209,只能求得方程的…個根;討于第二種送代格式,收斂區(qū)間為[-1.51.8].在該收斂區(qū)間內(nèi)迭代收斂于-034730.同樣只能求得方程的一個根;對于第三種迭代格式,收斂區(qū)間為[-0.3+8),在該收斂區(qū)間內(nèi)迭代收斂于1.87937「只能求得方程的一個根;初值對迭代結(jié)果影響解析:由以上結(jié)果很容易發(fā)現(xiàn),初值的選取對迭代斂散性有很大影響,以第一種迭代格式為例,當(dāng)初值大于等于-0,3時,迭代格式發(fā)散;當(dāng)初值小于等J3.3時,迭代格式也發(fā)散;只有初值在-0,3和-&3之間時,迭代格式才收斂于-1.53209c其他迭代格式也有這樣的性質(zhì),叩收斂于某個數(shù)值區(qū)間,超出這個區(qū)間迭代格式就是發(fā)散的,這就是所謂迭代格式的局部收斂性。對于不同迭代格式在不同區(qū)間具有不同的斂散性的原因,我認為可以從以下兩方面理解!1、 迭代法是-種逐次逼近法,其基本思想是將隱式方程X2(X}歸結(jié)為-組顯式的計算公式XiY(X0就是說,迭代過程實質(zhì)上是個逐步顯式化的過程.2、 我們可以用幾何圖像來更好地理解迭代過程(見課本146圖6-2).由圖可知,在某些區(qū)間選取的初始值隨著迭代次數(shù)的增加會越來越遙近精確值,即收斂于精確值,而在另外一些區(qū)間選取的初始值隨著迭代次數(shù)的增加卻高精確值越來越遠,即不會收斂于-個確定值“為了更好地選取迭代格式,有卜-面定理來事先判斷送代格式的收斂性:定理一】假定函數(shù)命(X)滿足下列兩項條件:對任意爐血切有aW中(X)Wb;2>存在正數(shù)L<b使對任意xe[a,b]有I中,(X)IW1X1;則迭代過程x^g(Xk)對于任意初值X.W忸,可均收斂于方程xy(X)的根X*a定理"一:設(shè)x*為方程x=a)(x)的根,中?(x)在x*的鄰近連續(xù),旦0(X)I<L則迭代過程(Xk)在鄰近具有局部收斂性,實驗二線性方程組的直接算法、問題提出給出下列幾個不同類型的線性方程組,請用適當(dāng)算法計算其解。1、設(shè)線性方程組42-3-1210000「*]5186-5-3650100*12242-2-132-1031*330-215-13-1194*24-426-167-3323*35=86-8571726-35*46602-13-425301**1371610-11-917342-122*388462-713920124*19900-18-3-24-863-1*-21L10J*=(1,-1,0,1,2,0,3,1,-1,2)TGsuss列主元消去法#include<math.h>#include<conio.h>#include<stdio.h>#defineMAX100typedefstruct{introw,col;floatMAT[MAX][MAX];floatSolution[MAX];}Matrix;voidGauss(Matrix*M);voidMBack(Matrix*M);voidMSave(Matrix*M);voidMInput(Matrix*M);voidMOutput(Matrix*M);voidSolution(Matrix*M);voidMSort(Matrix*M,intn);voidmain()(printf(-列主元方法如下:\n");MatrixMat;MInput(&Mat);MSave(&Mat);Gauss(&Mat);MSave(&Mat);if(Mat.row==Mat.col-1){MBack(&Mat);Solution(&Mat);}printf("Pressanykeytohalt...");getch();}voidMInput(Matrix*M){inti,j;printf("輸入行數(shù):");scanf("%d”,&M->row);printf("輸入列數(shù):");scanf("%d”,&M->col);for(i=0;i<M->row;i++){printf("第%d行:",i+1);for(j=0;j<M->col;j++){scanf("%f”,&M->MAT[i][j]);}}for(i=0;i<M->row;i++)M->Solution[i]=0;}voidMOutput(Matrix*M){inti,j;printf("MATRIX:\n");for(i=0;i<M->row;i++){for(j=0;j<M->col;j++)printf("%10.3f”,M->MAT[i][j]);printf("\n");}printf("---END----\n");voidGauss(Matrix*M)(inti,j,k;floattemp;for(i=0;i<M->row-1;i++){MSort(M,i);MOutput(M);for(j=i+1;j<M->row;j++){temp=M->MAT[j][i];for(k=0;k<M->col;k++)if(temp!=0){M->MAT[j][k]/=temp;M->MAT[j][k]*=M->MAT[i][i];M->MAT[j][k]-=M->MAT[i][k];}}}MOutput(M);}voidMSort(Matrix*M,intn){inti,j,k;floattemp[MAX];for(i=n;i<M->row-1;i++){for(j=n;j<M->row-i-1;j++){if(fabs(M->MAT[j][n])<fabs(M->MAT[j+1][n])){for(k=0;k<M->col;k++){temp[k]=M->MAT[j+1][k];M->MAT[j+1][k]=M->MAT[j][k];M->MAT[j][k]=temp[k];}}}}}voidMBack(Matrix*M){inti,j;floatsum;M->Solution[M->row-1]=M->MAT[M->row-1][M->col-1]M->MAT[M->row-1][M->row-1];for(i=M->row-2;i>=0;i--){sum=M->MAT[i][M->col-1];for(j=i+1;j<M->row;j++)sum-=M->MAT[i][j]*M->Solution[j];M->Solution[i]=sum/M->MAT[i][i];}}voidSolution(Matrix*M)(inti;printf("Solution:\n");for(i=0;i<M->row;i++)printf("X[%d]=%f\n”,i+1,M->Solution[i]);printf("\n---END---\n");}voidMSave(Matrix*M)(inti,j;FILE*eryar;eryar=fopen("Matrix.txt","a");fprintf(eryar," BEGIN \n");for(i=0;i<M->row;i++){for(j=0;j<M->col;j++)fprintf(eryar,"%10.3f”,M->MAT[i][j]);fprintf(eryar,"\n");}fclose(eryar);5*C;\Proigra*Filies\.IicrD3nftVisualSimdin\.IjrProjiicc-ts:\kXDEbuE\ik.czc如M注:1.萬皇■,幸用_T:-主土-廳門廳:115:0訂:0仃驢Ki234567891T2
4
_b122
4
如M注:1.萬皇■,幸用_T:-主土-廳門廳:115:0訂:0仃驢Ki234567891T2
4
_b122
4
106A00Sa-■100005650100122-10313-13-11942G7-39293?1726-3E46-42530113-917342-1221392012419-3-24-863-13S-21is.009 10.000 -11.000 -?_eee2_aoa2.000_o?n3.909b.000 -5.000 -3.000耽質(zhì)砌n_non12_oon&.6.UUU 一8_UMUL.-1 _non4C_oon昭2.UbU-3.U0U-1.UbU耽麗b n_nons_oon2.UUU-2.U0U -1.-i.am 如t.昭92 .non3_non? 4-000 2.000u.aea 2.000 -1.000 3.tieo9-009 113-000a.eae0.000 -1.000e.eeo17.6066.6067.00@3.&艦G.uue13.M00-1.U00-4.B00-3=BB034.SOS5.03S17.U00U0I07.W?0¥.W?03.也ElU0Q-24.0002.0300.000b.Uk)@-1-0U0-3-waw-1.0UW5.M3Q-S.000-1.0901.0906.團國。u.團auu.刖sm.口陽3.Q3Q6=000-10_0001UaQQQ4&.0003.000-2.0009.000-8.seaB_0H0-2a0003.00013.0009.000?.000國.恐UaQQQ3.0003.000-END—IATBIX=16.000-10_0001UaQQQ4&.0003.000-2.0009.000-8.seaB_0H0-2a0003.00013.0009.000?.000國.恐UaQQQ3.0003.000-END—IATBIX=16.0002_00?3h0OS-10.0003.00082.0009.0001#國■恐UaQQQ91.0003.00047.1439.00028.sea-14.00014J00014.36Q2.360-2.90S2.0B08.000-2JBS0-2.360-2.&Q0-2.3604.0002-aos1M&9.360—1.00019b[9002JBS0-19.060-14.0003.300-58.0609.90032_aHS0J9@e0-3S0-4.90S8.0B032=000-5P_00019^0003S.3QB1.00B-14.000-5.90S54.000-1_0BB-18H0003.000-26.0001.90B2.90S-1_01恐0113^000T.30B-21.000-11=00038.000-13.000-50.0005S.90B-436.00048.&0&-184.00022^000GS.3QB-11.4291.1434.000176=000-19^0003.00319.0095_osa5.0035.0093_PH期I8.003-9=80013hO03-184.00032.00932.00011.429-4B-B0035aSQ0-5.600-3.000-9_S0H-5.S0O-1.008-4.000-a.@eo17-000-41HS0O68.600-4.00032^000-4.00086.0002.Q&G-24.0060.096-3S.0BG-26.0063.036-24.B0G34,000-62.006G2.096-172.006取&典E9.429278.Q36G.Q&Q-2,0002.090-2-0?0—6.030T?0305.O@IO-8.000z.eae10H030-28-000-64,000-19a0008.090&.000-1.000-11H0O0-10&.00029-00029aaee5.714-16.000‘0‘0*xQI切I
01-
£_
g
I
0p-£~‘0‘0*xQI切I
01-
£_
g
I
0p-£~£900lOX-£_gz0II17P~£_£ppzzl-8-IIp-l-9lz-0£-8-I切l(wèi)-p-£lz-l-zlPI0P~IpE0O900E-EOT]XW右66<右6?日一-E53XT66666B0=[81X君-mh80——[91X003@@0-E■r「】xC@3@@6』T一EJK'?—-r£】x@66666B0--[EJKT66666"0=CT]K二11DTVW口利6Sd;~BT6665E"556^000"0aS>96r9E@C-TS9-^0S£-0SS-E86e-@@@B@@@@B@@@@A@9@@■@3@@@@@@@S@@B@0@@B@9WM相一£00wTGTTG-S63Tggr*日乙一WWWPWgP_W^0^"^ES-666-0G-frT6-E0E-TOZ:-毋召GEG"Z£Z-000"0建g_B000~0E“n0S?=CT-96@B^^6T'^6K000B0300B0000^0000=0000=@E06Bssse-S60=S08-£T0=^SS-6TE-8@lt-E@^wTTT-白吞乙?eKEfr-9^TBG0KT-@l@0'0@@@r@O@0"@0@0"@0BI3a&C£000w9ET-000-M-T000'696G000H6-fiTT麗礦9EE-000^0000=0000=0000~9tEfr-MK0-OS-000"90K-060"85-000"E9S0C89000-frST-300'8S000"6060-00000S-00E|-frT-000-0T-@@@BTT-@@0B@T@@@AE9-0@@.T^-000HET00@B£T-000BST-0@0B@@0@rse000-0000-0@@@BT-@@@BS000S@@a^T3@@a6-1300TT-Q@@B@T000=9T二?UHL叫|asa=q\2nq3a\<\E?loaCoJd^A\oTpn].s Ijosojdlhx^oxT^ymSdj:』、吉畢,
平方根法:源程序:#include<iostream>#include<cmath>#include<cstdlib>usingnamespacestd;intmain()intn,i,j,k,m;cout?/z輸入維數(shù):";cin>>n;double**A=newdouble*](n+1)];for(i=l:i<=n;i++)A[i]=newdouble[n+1]:double*b=newdouble[n+1];double*x=newdouble[n+1]:double*y=newdouble[n+1]:cout?/z輸入系數(shù)對稱正定矩陣A0□:/z?endl;for(i=l:i<=n;i++)for(j=l;j<=n;j++)cin?A[i][j];cout?/z輸入向量b[]:/z;for(i=l:i<=n;i++)cin>>b[i];cout<<endl:for(k=l:k<=n;k++){doublesum=0:for(m=1:m<=k-1:m++){sum=sum+pow(A[k][m],2.0);}sum=A[k][k]—sum;A[k][k]=sqrt(sum);for(i=k+1;i<=n;i++)(doubletemp1=0;for(m=1;m<=k-1;m++)(temp1二temp1+A[i][m]*A[k][m];}temp1=A[i][k]-temp1;A[i][k]=temp1/A[k][k];}doubletemp2=0;for(m=1;m<=k-1;m++)(temp2=temp2+A[k][m]*y[m];}y[k]=(b[k]-temp2)/A[k][k];}x[8]=y[8]/A[8][8];for(k=n-1;k>=1;k--)(doubletemp3=0;for(m=k+1;m<=n;m++)(temp3=temp3+A[m][k]*x[m];x[k]=(y[k]-temp3)/A[k][k];cout<<"輸出結(jié)果向量x□:〃<<endl;for(i=1;i<=n;i++)cout<<x[i]<<endl;return0;輸入維數(shù)=自輸入系歆對稱正定矩降“42-4^240822-1-21320-4 141-8-25t0-216-1-4-3321-&-1224-Ifi-3■137-44JU1T025-3-IB114ZH063-3-421?輸入向-6 23V-22-IS4S幕出拮果向董小121.14S-14?.11329.7515-&0.152S16.912-26*??635.425933、三對角形線性方程組4-100000000一X-7_1-14-10000000X520-14-1000000X-13300-14-100000X24000-14-10000X65-=0000-14-1000X-12600000-14-100X147000000-14-10X-480000000-14-1X5900000000-14XL10」-5x*=(2, 1,-3, 0, 1,-2, 3, 0, 1,-1)t
追趕法:源程序#include<iostream>#include<cmath>#include<cstdlib>usingnamespacestd;intmain()intn,i;cout〈〈〃輸入系數(shù)矩陣的維數(shù):〃;cin>>n;double*a=newdouble[n+1];double*c=newdouble[n+1];double*d二newdouble[n+1];double*b二newdouble[n+1];double*x=newdouble[n+1];double*y=newdouble[n+1];cout〈〈〃輸入系數(shù)矩陣A□數(shù)據(jù):〃〈〈endl;for(i=l;i<=n;i++)cin>>a[i];for(i=l;i<=n;i++)cin〉〉c[i];for(i=l;i<=n;i++)cin〉〉d[i];cout〈〈〃輸入b[]:/z?endl;for(i=l;i<=n;i++)cin>>b[i];c[i]=c[i]/a[i];a[i+1]=a[i+1]-d[i+1]*c[i];}cout<<〃輸出解向量a□:〃<<endl;for(i=1;i<=n;i++)cout<<a[i]<<endl;cout<<〃輸出解向量c□:〃<<endl;for(i=1;i<=n;i++)cout<<c[i]<<endl;y[1]=b[1]/a[1];for(i=2;i<=n;i++){y[i]=(b[i]-d[i]*y[i-1])/a[i];}cout<<〃輸出解向量y□:〃<<endl;for(i=1;i<=n;i++)cout<<y[i]<<endl;x[n]=y[n];x[i]=y[i]-c[i]*x[i+1];}cout<<〃輸出解向量x□:〃<<endl;for(i=1;i<=n;i++)cout<<x[i]<<endl;system(〃pause〃);return0;}運行結(jié)果諭A.系教矩陣的維數(shù)湖諭入系數(shù)矩陣機]數(shù)據(jù),4444444444-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1輸入成]=75-1326-1214-45-5新出解向量就h43.753.733333.732143.732063.732053.732053.732053.732053.73205描出解向#cLJ:-0.25-a.26^667H.267S5?r0.267^43-0.26754?-f),267?4?-fi,267?4?-0.267^4$T瓠出解向量砰】=1,751.Hj-3M拓9-2.803fi53-3.2679491,26795I課題三線性方程組的迭代法一、 問題提出對課題二所列目的和意義的線性方程組,試分別選用Jacobi迭代法,Gauss-Seidol迭代法和SOR方法計算其解。二、 要求1、 體會迭代法求解線性方程組,并能與消去法做以比較;2、 分別對不同精度要求,如8=10-3,10一4,10一5由迭代次數(shù)體會該迭代法的收斂快慢;3、 對方程組2,3使用SOR方法時,選取松弛因子①=0.8,0.9,1,1.1,1.2等,試看對算法收斂性的影響,并能找出你所選用的松弛因子的最佳者;4、 給出各種算法的設(shè)計程序和計算結(jié)果。三、目的和意義1、 通過上機計算體會迭代法求解線性方程組的特點,并能和消去法比較;2、 運用所學(xué)的迭代法算法,解決各類線性方程組,編出算法程序;3、 體會上機計算時,終止步驟|X(k+1)-x(k』<8或k>(予給的迭代次數(shù)),S對迭代法斂散性的意義;4、體會初始解x(0),松弛因子的選取,對計算結(jié)果的影響。Jacobi迭代法開始輸入系數(shù)矩陣級右端項維數(shù)和初始解向量最大迭代次數(shù)和精度循環(huán)k=1..Ni=1J=1..nX[i]=(b[i]-SA[ij]x0[j])/A[[ii]+x0[i]i=1…nR二max|x[i]-x0[i]|R=<eNX0[i]=x[i]i=1...n已達到最大迭代次數(shù)
輸出x[1]已達到最大迭代次數(shù)
輸出x[1]…x[n]輸出迭代次數(shù)k輸出x[1]…x[n]結(jié)束結(jié)束源程序:#include<iostream>#include<cmath>#include<cstdlib>usingnamespacestd;intmain(){intn,N;inti,j,k;doublee;cout〈〈〃輸入維數(shù)n:";cin>>n;cout〈〈〃輸入最大迭代次數(shù)N:";cin>>N;cout?/z輸入精度e:”;cin?e;double**A=newdouble*](n+1)];for(i=l;i<=n;i++)A[i]=newdouble[n+1];double*b二newdouble[n+1];double*xOnewdouble[n+1];double*x=newdouble[n+1];cout〈〈〃輸入系數(shù)矩陣A[][]:/z?endl;for(i=l;i<=n;i++)cin>>A[i][j];}}cout<<〃輸入右端項b□:〃<<endl;for(i=1;i<=n;i++)cin>>b[i];cout<<〃初始化解向量x0口:〃<<endl;for(i=1;i<=n;i++)cin>>x0[i];for(k=1;k<=N;k++){for(i=1;i<=n;i++){doublesum=0;for(j=1;j<=n;j++){sum=sum+A[i][j]*x0[j];x[i]=xO[i]+(b[i]-sum)/A[i][i];doublemax=0;for(i=l;i<=n;i++){doublem;m=fabs(x[i]-xO[i]);if(m>max)max=m;}if(max<=e){cout〈〈〃輸出迭代次k:/z<<k<<endl;cout〈〈〃迭代后的解x[]:/z?endl;for(i=l;i<=n;i++)cout?x[i]<<endl;system(/zpause/z);return0;else{for(i=1;i<=n;i++){x0[i]=x[i];}}}cout<<〃已達到最大迭代次數(shù):〃<<N<<endl;cout<<〃迭代后的解x□:〃<<endl;for(i=1;i<=n;i++)cout<<x[i]<<endl;system(〃pause〃);return0;
Gauss-Seidol迭代法開始輸入系數(shù)矩陣級右端項
維數(shù)和初始解向量最大迭代次數(shù)和精度循環(huán)k=1..Ni=1J<i為a=x[i];j>=i 為a=x0[i]X[i]=(b[i]-—S.A[ij]*a)/A[ji]+x0[i] i=1…nR=max|x[i]-x0[i]|R=<eX0[i]=x[i]i=1...n已達到最大迭代次數(shù)輸出已達到最大迭代次數(shù)輸出x[1]…x[n]輸出迭代次數(shù)k輸出x[1]…x[n]結(jié)束源程序#include<iostream>#include<cmath>#include<cstdlib>usingnamespacestd;intmain(){intn,N;inti,j,k;doublee;cout〈〈〃輸入維數(shù)n:";cin>>n;cout〈〈〃輸入最大迭代次數(shù)N:";cin>>N;cout?/z輸入精度e:”;cin?e;double**A=newdouble*](n+1)];for(i=l;i<=n;i++)A[i]=newdouble[n+1];double*b二newdouble[n+1];double*xOnewdouble[n+1];double*x=newdouble[n+1];cout〈〈〃輸入系數(shù)矩陣A[][]:/z?endl;for(i=l;i<=n;i++)cin>>A[i][j];}}cout<<〃輸入右端項b□:〃<<endl;for(i=1;i<=n;i++)cin>>b[i];cout<<〃初始化解向量x0口:〃<<endl;for(i=1;i<=n;i++)cin>>x0[i];for(k=1;k<=N;k++){for(i=1;i<=n;i++){doublesum=0;for(j=1;j<=n;j++){if(j<i)sum=sum+A[i][j]*x[j];elsesum=sum+A[i][j]*xO[j];x[i]=xO[i]+(b[i]-sum)/A[i][i];}doublemax=0;for(i=l;i<=n;i++){doublem;m=fabs(x[i]-xO[i]);if(m>max)max=m;}if(max<=e){cout〈〈〃輸出迭代次k:/z<<k<<endl;cout〈〈〃迭代后的解x[]:/z?endl;for(i=l;i<=n;i++)cout?x[i]<<endl;system(/zpause/z);return0;}else{for(i=1;i<=n;i++){x0[i]=x[i];}}}cout<<"已達到最大迭代次數(shù):〃<<N<<endl;cout<<"迭代后的解x□:〃<<endl;for(i=1;i<=n;i++)cout<<x[i]<<endl;system(〃pause〃);return0;}SOR方法
瞿當(dāng)JwitrmiKin-/,源程序#include<iostream>#include<vector>#include<cstdlib>#include<cmath>usingnamespacestd;intmain()cout<<"輸入維數(shù):〃;cin>>n;vector<vector<double>>va;vector<double>vd;cout<<〃輸入系數(shù)矩陣:"<<endl;for(inti=0;i<n;++i){for(intj=0;j<=n;++j){doubledtemp;cin>>dtemp;vd.push_back(dtemp);}va.push_back(vd);vd.clear();}cout<<〃輸入初始解向量:〃;vector<double>vtemp;for(inti=0;i<n;++i){doubledtemp;cin>>dtemp;vd.push_back(dtemp);}cout<<〃輸入精度:〃;doubled;cin>>d;cout<<〃輸入最大迭代次數(shù):〃;intmcount;cin>>mcount;cout<<〃輸入松弛因子:〃;doublexd;cin>>xd;vector<vector<double>>::iteratoria,iaend;ia=va.begin();boolflag=true;intcount=0;while(flag){doubledmax=0.0;vtemp.assign(vd.begin(),vd.end());for(inti=0;i<n;++i){doubledtemp=0.0;for(intj=0;j<n;++j){if(j<i){dtemp+=(*(ia+i))[j]*vd[j];}elseif(j>=i){dtemp+=(*(ia+i))[j]*vtemp[j];}}dtemp=(*(ia+i))[n]-dtemp;vd[i]=xd*dtemp/(*(ia+i))[i];vd[i]+=vtemp[i];++count;for(inti=0;i<n;++i){if(dmax<fabs(vd[i]-vtemp[i]))dmax=fabs(vd[i]-vtemp[i]);}if(dmax<d){cout〈〈〃輸出迭代次數(shù):〃〈〈count〈〈endl;cout?d-dmax?endl;cout〈〈〃輸出迭代解:〃〈〈〃(〃;for(inti=0;i<n;++i){if(i==n-l)cout<<vd[i]〈〈〃)〃;elsecout<<vd[i]〈〈〃,";flag=false;elseif(count>mcount){cout〈〈〃已達到最大迭代次數(shù)!/z<<endl;cout〈〈〃輸出迭代解:〃〈〈〃(〃;for(inti=0;i<n;++i){if(i==n-l)cout<<vd[i]〈〈〃)”;elsecout<<vd[i]〈〈〃,”;}flag=false;}system(/zpause/z);return0;
方程組一Jacobi迭代法已達到最大迭代次數(shù)g ..迭代后的解引】;B,7994te+M373.2G139e+030-Z.18702e+0305.8?582d+030G.92909^*930■B.24435e?83S-1.57025e+031-9.456(J9a+(J2S-9.^EEte+aai底散' Gauss-Seidol迭代法已達到最大迭代政敝弱醫(yī)花后的解對」二M4^48e*0G2■1.27717c*063I.08922e*064日白?日6噂-2_93427e+0G4l.S8149e*0G^-2_l&8i4e*064L.£1512e?^5?66四如*跖3k-24如 界 方程組二
Jacobi迭代法精度e=0.001髓入維魂誦人最大迭傳次教囚部福入粽席3虹13祖阿S入系數(shù)矩陣扣^12-*102^0022-1-21320H-1141-4-35f0-216-1-4-3321-0-1224-10-343-3-4 111-4025-3-101 20063-3-421^輸入右端頂玖】:b—6據(jù)找乎-2i-15的初始化解向量廂己達到最大送代次教:陽準(zhǔn)筏啟的解E.25527c*0143.4019Se+0t49.25298e*0L3-1.3491SE+ai_45T5e052c*013i.4?544e*0144.b?147e'*012-4.62597c+BL3請傳任意鍵繼續(xù)-■■Gauss-Seidol迭代法已達到最大迭代株數(shù)部已達到最大迭代株數(shù)部唇代后的解燈n29.1874-31.9989845504H2.363£3.30548-7,16920-711532竹「估壬企靴匚SOR方法松弛因子w=0.8
嫁入維歌中輸人家戳矩陣二42-16210:002Z-1-21S£C-&-4-L141-9-3CtM0-21fc-1-4-332221-8-1224-IB-3?-J□-3-4LI1-4-Z2R25-3-IS1 2-1$aa&3-3-42194£輸入初始爵向景泅0306090摘入精厝W?麗1咨人虛關(guān)迭彳弋次數(shù)湖輸入松弛因子瀏上已達到最大迭代枷輸出詼代鮮X部,39%,?ZZ,*G7,&,2踮&,蛇_成所5J-E1此匕7,4力鈕淚,2零2,孔9":1循3>方程組三1.Jacobi迭代法輸出迭代袱E1輸出迭代袱E1底代后的?x[]:^-000020.999961-2.????!-0.0001664161.QSS18-2.Q0Q323.WM22-0.000342369-1.000152.Gauss-Seidol迭代法師「出迭代吹心7迭往后的解燈"1.999S50.999751-3?8892-0,0001033830.999965-2-9999X31s67403e-096淅出您代伏E醫(yī)代后的有物["L”附8J_999?fl5-3.HB0B1-3.7128Be-e0&J-9999992_10225fi-eGBI-1諭出迭代祉心IL迭代后的解虹"23.999999□-1.47156^-007(-23-8.385Z5e-010£-1SOR方法精度e=0.001松弛因子w=0.8而出迭代探教f??.m0E5??08諭出迭代解Xd0跚朋」.伽誑4,-3.00018,-6.000^97307,0 &七-2.0005?,2.?9?61^-&.6事昭M咽私日?WY?&5■-L.四如舶M吉椅任兼2批續(xù)...松弛因子w=1.0描出迭代權(quán)轂£?^1180353153輸出8B0ie3383>?^m65,-2.swells,幽土T儲損任意健批臣一松弛因子w=1.2SS出迭代次珈比 ■轆出iEft1i:a<m924-?ee?,-3.WW2,-2-975?5?-aKrl--2,3--1.23fr5fl-OT7,lr-l>浦r"Ing 結(jié)果分析問題1.體會迭代法求解線性方程組,并能與消去法做以比較;消去法如果不考慮計算過程中的舍入誤差,能求出方程組的精確解。迭代法即使不考慮計算過程中的舍入誤差,迭代法也很難獲得精確解。問題2.對于不同的精度,迭代次數(shù)也不同。對第三個方程組用GS迭代法采用不同精度,迭代次數(shù)不同。精度越精確,需要迭代次數(shù)越多。問題3.從題中W=0.81.01.2時,可以看出w=1.0時迭代的最快。課題四數(shù)值積分一、問題提出選用復(fù)合梯形公式,復(fù)合Simpson公式,Romberg算法,計算I=代'4-sin2xdx(Ir1.5343916)0I=fSinXdx(f(0)=1,Ir0.9460831)0I=j —dx4+x20(4)fln(1+x)7I=j————dx1+x20二、要求1、 編制數(shù)值積分算法的程序;2、 分別用兩種算法計算同一個積分,并比較其結(jié)果;3、分別取不同步長h=(b-a)/n,試比較計算結(jié)果(如n=10,20等);4、 給定精度要求8,試用變步長算法,確定最佳步長。三、目的和意義1、 深刻認識數(shù)值積分法的意義;2、 明確數(shù)值積分精度與步長的關(guān)系;3、 根據(jù)定積分的計算方法,可以考慮二重積分的計算問題。1復(fù)化梯形:復(fù)化simpson:Romberg求積法:*i++時一.源程序:二.#include<stdio.h>#include<conio.h>#include<math.h>floatf(floatx)(returnsqrt(4-sin(x)*sin(x));}floatRomberg(floatafloatb,float(*f)(float),floatepsilon)(intn=1,k;floath=b-a,x,temp;floatT1,T2,S1,S2,C1,C2,R1,R2;T1=(b-a)/2*((*f)(a)+(*f)(b));while(1)(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川省飼料項目創(chuàng)業(yè)計劃書
- 烏鎮(zhèn)招聘面試題及答案
- 伊利數(shù)字化轉(zhuǎn)型的全域探索
- 全球銷售分銷市場擴展合同
- 法律英語合同條文閱讀理解題
- 人文地理:《全球化背景下中國文化發(fā)展》課程
- 餐飲股東合作協(xié)議(含品牌推廣與維護)
- 集裝箱車庫買賣合同范本及運輸服務(wù)協(xié)議
- 高端車系銷售與售后服務(wù)一體化協(xié)議
- 大數(shù)據(jù)項目公司股權(quán)投資及數(shù)據(jù)分析合作協(xié)議
- 從理念到行為習(xí)慣:企業(yè)文化管理-陳春花
- 《建筑結(jié)構(gòu)加固工程施工質(zhì)量驗收規(guī)范》
- 中醫(yī)基礎(chǔ)理論考試題庫及答案五
- 合同委托協(xié)議書范文
- 【萬科股權(quán)結(jié)構(gòu)和公司治理的關(guān)系探究11000字(論文)】
- 2024年江蘇省蘇州市中考物理真題(原卷版+解析版)
- 放射治療的劑量優(yōu)化算法
- 變配電運行值班員(500kV及以上)初級工-機考題庫(導(dǎo)出版)
- 醫(yī)療機構(gòu)衛(wèi)生監(jiān)督培訓(xùn)
- 高新技術(shù)企業(yè)人才流失問題研究-以H公司為例
- 醫(yī)院護工服務(wù)病人及家屬滿意度調(diào)查表
評論
0/150
提交評論