高斯迭代法報(bào)告_第1頁(yè)
高斯迭代法報(bào)告_第2頁(yè)
高斯迭代法報(bào)告_第3頁(yè)
高斯迭代法報(bào)告_第4頁(yè)
高斯迭代法報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

高斯迭代法

實(shí)驗(yàn)報(bào)告專業(yè)班級(jí)學(xué)號(hào)姓名一、實(shí)驗(yàn)內(nèi)容和要求用jacobi迭代法解線性方程組Ax=b,其中A是非奇異矩陣。用編織出來的程序,求解線性方程組Ax=b方程如下:10-2-1XT3-210-1X2=15-1-25.X2..10.Jacobi迭代格式的引出是依據(jù)迭代法的基本思想:構(gòu)造一個(gè)向量系列{x"},使其收斂至某個(gè)極限X',則x,就是要求的方程組的準(zhǔn)確解。Jacobi迭代將方程組:anx^anx2+-+alnxn=b,

a21Xl+a22X2+"+a2nXn=b2叫疽】+%土+??+%U〃=如(1)在假設(shè)改寫成%=,土+/工3+…+如飛+幻

x2=h2^+b2.xz+-+b2nxn+g2■■?=如X]+bn2x2+…+如(TS+gn(2)如果引用系數(shù)矩陣B=\如…og]?b=?g=?b〃g〃X=及向量方程組(1)和(2)分別可寫為:=b&X=BX*g,這樣就得到了jacobi迭代格式X-=BX*+g°用jacobi迭代解方程組AX=人時(shí),就可任意取初值xzo1cinnax°帶入迭代可知式X-BX+g,然后求。但是,〃比較大的時(shí)候,寫方程組(1)和Q)是很麻煩的,如果直接由A,b能直接得到B,8就是矩陣與向量的運(yùn)算了,那么如何得到B,8呢實(shí)際上,如果引進(jìn)非奇異對(duì)角矩陣將A分解成:A=A—O+O,要求AX=b的解,實(shí)質(zhì)上就有AX=(A-D)X+DX,而。是非奇異的,所以B存在,DX=AX+(D-A)X,從而有x=D~lAX+D~lb,我們?cè)谶@里不妨令B=「BA,g=Bb就得到加汕迭代格式:X*=BX*+g現(xiàn)在考慮人仞迭代法的計(jì)算程序float43]P]=({10-2-1),{-2,10-1),{-1-2,5});切3]={3,15,1(*分別代表X的系數(shù)和等號(hào)右邊的常數(shù)項(xiàng)fl0.vu-2xn-x13=3,一+1Or,—上=15即31-2.'壬+5*33=1。②由Jacobi迭代法中,每一次的迭代只用到前一次的迭代值,若每一次迭代充分利用當(dāng)前最新的迭代值,即在計(jì)算第i個(gè)分量#奸“時(shí),用最新分量"奸。x^+l)-xt/+l)代替舊分量擊⑴,赴⑴…為:幻,就得到所謂解方程組的Gauss-Seidel迭代法。其迭代格式為丫(。)-(丫(。)r(0)丫(°八7?工一(邑,土,…,毛)(初始向量),對(duì)+"=—(々一£%*尸)一£以菸?))(k=0,1,2,???;i=0,1,2,???n)aii;=1gl或者寫為x"+d=xjk)+Av(k=k=0,1,2,…;i=0,1,2,???〃)

此)=_l(3一蕓"件_蕓"號(hào)))

aii;=1;=/+!三、源程序#include<malloc.h>#include<stdio.h>#include<conio.h>#include<math.h>#defineEPSle-6#defineMAX100float*Jacobi(floata[3][4]Jntn);float*Jacobi(floata[3][4]Jntn)(float*x,*y;floatepsilon’s;intij,k=0;x=(float*)malloc(n*sizeof(float));y=(float*)malloc(n*sizeof(float));for(i=0;i<n;i++)x[i]=0;while(l){epsilon=0;k++;for(i=0;i<n;i++)(s=0;for(j=0;j<n;j++){if(j==i)(continue;}s+=a[i][j]*xO];)y[i]=(a[i][n]-s)/a[i][i];epsilon+=(float)fabs(y[i]-x[i]);}if(epsilon<EPS)(printf("\n迭代次數(shù)為:%d\n“,k);returnx;}if(k>=MAX)printf(u方程不收斂\n“);returny;}for(i=0;i<n;i++)(x[i]=y[i];}}}main()(int\,k,I;floata[3][4];float*x;printf("請(qǐng)輸入增廣矩陣:\n“);for(k=0;k<3;k++)for(I=0;I<4;I++)scanf&a[k][l]);x=(float*)malloc(3*sizeof(float));x=Jacobi(a,3);for(i=0;i<3;i++){printf(,,x[%d]=%f\t,,Jzx[i]);}printf("\n");getch();}高斯迭代部分:float*Gauss-Seidel(floata[3][4]Jntn);float*Gauss-Seidel(floata[3][4]Jntn)(float*x,*y;floatepsilon,s’t;intij,k=O;x=(float*)malloc(n*sizeof(float));y=(float*)malloc(n*sizeof(float));for(i=0;i<n;i++)x[i]=0;y[i]=o;

)while(l){epsilon=0;k++;for(i=0;i<n;i++)(t=0;for(j=0;j<i;j++){t+=a[i][j]*y[j];)s=0;for(j=i+l;j<n;j++){s+=a[i][j]*x[j];)y[i]=(a[i][n]-s-t)/a[i][i];/*計(jì)算X(k+1)“*/epsilon+=(float)fabs(y[i]-x[i]);}if(epsilon<EPS)(printf("\n迭代次數(shù)為:%d\n“,k);returnx;}if(k>=MAX)(printf("方程不收斂\n");returny;}for(i=0;i<n;i++)(x[i]=y[i];!1!實(shí)驗(yàn)結(jié)果!1!實(shí)驗(yàn)結(jié)果Jacobi迭代:■g\JJser§\!nr。小所適文件獎(jiǎng)《00頃中。>「1.omT請(qǐng)輸入增廣矩陣;10-2-13-210-115-1-2510迭代次數(shù)為:1?x[0J=l.000000x[U=2.000000x[2J=3.000000迭代次數(shù):17Xq—1.000000Xi=2.000000%2=3.000000Gauss-Seidel迭代:?|"3Use哆運(yùn)文件陽(yáng)Debuq'Cppl08'請(qǐng)輸入增廣矩陣,10-2-13-210-115-1-2510迭代次數(shù)丸10x[0]=l.000000x[U=2.000000xE2J=3.000000迭代次數(shù):10Xq—1.000000Xi=2.000000%2=3.000000五、說明與分析雅克比迭代法的優(yōu)點(diǎn)明顯,計(jì)算公式簡(jiǎn)單,每迭代一次只需計(jì)算一次矩陣和向量的乘法,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論