雅可比迭代實(shí)驗(yàn)報(bào)告_第1頁
雅可比迭代實(shí)驗(yàn)報(bào)告_第2頁
雅可比迭代實(shí)驗(yàn)報(bào)告_第3頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、雅可比迭代法求解線性方程組的實(shí)驗(yàn)報(bào)告一、實(shí)驗(yàn)題目分別利用雅可比迭代法和高斯 -塞德爾迭代法求解以下線性方程組:10x1 x2 2x3 7.2x1 10x2 2x3 8.3x1 x2 5x3 4.2使得誤差不超過 0.00001 。二、實(shí)驗(yàn)引言1. 實(shí)驗(yàn)?zāi)康?掌握用迭代法求解線性方程組的根本思想和步驟,熟悉電腦fortran語言; 了解雅可比迭代法在求解方程組過程中的優(yōu)缺點(diǎn)。2. 實(shí)驗(yàn)意義 雅克比迭代法就是眾多迭代法中比擬早且較簡單的一種,求解方便實(shí)用。三、算法設(shè)計(jì)1. 雅可比迭代法原理:設(shè)有線性方程組 Ax=b 滿足 aii 0, 將方程組變形為 : x=Bx+f, 那么雅可比 (Jacobi

2、)迭代法是指X(k1) Bxk f,即由初始解逐步迭代即可得到方程組的解。算法步驟如下:x10), x20), xn0),精度e,最大容許迭代次數(shù)M,令k=1步驟2.對(duì)i=1,2,,n依次計(jì)算x1n(bjaijxj ) / aii ( aii0,i 1,2, ,n)j1ei(1)xiji(1) (0)| xixi|(0)xie maxei ,假設(shè) e 1in步驟4.,那么輸出結(jié)果x(0) (i1,2,n),停止計(jì)算。否那么執(zhí)行k M ,k 1 k,轉(zhuǎn)步驟2繼續(xù)迭代。假設(shè)k M ,說明迭代失敗,停止計(jì)算2算法流程圖四、程序設(shè)計(jì)program jacobi implicit none in teg

3、er:i,j in teger:k save k in teger,parameter: n=3 real:x( n),y( n),b( n) real:Dreal:a( n,n)ope n (u ni t=10,file='1.txt')data a/10,-1,-1,-1,10,-1,-2,-2,5/write(10,*)"矩陣 A 的形式為*"write(10,"(1x,3f6.2,/)")aforall(i=1:n) x(i)=0 end forall k=0 100 D=0 do i=1,n y(i)=b(i) do j=1,n

4、 if(i/=j) y(i)=y(i)-a(i,j)*x(j) end do y(i)=y(i)/a(i,i) end dodo j=1,nD=abs(x(j)-y(j) end doforall(i=1:n) x(i)=y(i) end forallif(D>=e) then k=k+1 write(10,*)" 迭代次數(shù)為: ",kgoto 100 elsegoto 200end if200write(10,*)"write(10,*)" 用 jacobi 方法解得的結(jié)果 Xt 為:write(10,"(1x,3f6.2,/)&quo

5、t;)x(:)stopend program五、結(jié)果及討論1.實(shí)驗(yàn)結(jié)果*矩陣 A 的形式為 *迭代次數(shù)為:1迭代次數(shù)為:2迭代次數(shù)為:3迭代次數(shù)為:4迭代次數(shù)為:5迭代次數(shù)為:6迭代次數(shù)為:7*用 jacobi 方法解得的結(jié)果 Xt 為:2. 討論分析1誤差 從上述輸出結(jié)果中可以看出,當(dāng)?shù)螖?shù) k 增大時(shí),迭代值 x1,y1,z1會(huì)越來越逼近方程組的精確解 x=1.0,y=1.2,z=1.3。2收斂性在此題目中 , 用雅可比迭代法和高斯 -塞德爾迭代法分別求解該線性方程組,得 到的近似根是收斂的六、算法評(píng)價(jià)優(yōu)點(diǎn):迭代法算法簡單,編制程序比擬容易。 缺點(diǎn):迭代法要求方程組的系數(shù)矩陣有某種特殊性

6、質(zhì)譬如是所謂對(duì)角占優(yōu)陣 以保證過程的收斂性。高斯塞德爾迭代法比雅可比迭代法收斂快 到達(dá)同樣的精度所需迭代次數(shù)少 , 但這個(gè)結(jié)論 , 在一定條件下才是對(duì)的 , 甚至有這樣的方程 組, 雅可比方法收斂,而高斯塞德爾迭代法卻是發(fā)散的。在雅可比迭代法求解 線性方程組時(shí), 只要誤差截?cái)嘣O(shè)計(jì)的合理, 原那么上可以得到很正確的解。 而通常 我們選取設(shè)計(jì)誤差限或設(shè)計(jì)最大迭代次數(shù)的方法來控制。 由于它的準(zhǔn)確性, 故在 實(shí)際應(yīng)用中比擬常見, 對(duì)于解一般線性方程組非常有效準(zhǔn)確。 通過該算法以及編程對(duì)求解的過程,我們不難發(fā)現(xiàn),雅克比迭代法的優(yōu)點(diǎn)明顯,計(jì)算公式簡單,每 迭代一次只需計(jì)算一次矩陣和向量的乘法,且計(jì)算過程中

7、原始矩陣A 始終不變,比擬容易并行計(jì)算。然而這種迭代方式收斂速度較慢, 而且占據(jù)的存儲(chǔ)空間較大, 所以工程中一般不直接用雅克比迭代法,而用其改進(jìn)方法。附:高斯賽德爾程序program G-S implicit none integer:i,j integer:k save k integer,parameter:n=3real:x(n),y(n),b(n) real:D real:a(n,n)open (unit=10,file='1.txt')data a/10,-1,-1,-1,10,-1,-2,-2,5/ write(10,"(1x,3f6.2,/)"

8、)a forall(i=1:n)write(10,*)"矩陣 A 的形式為*"x(i)=0end forallk=0100 D=0do i=1,ny(i)=b(i)do j=1,nif(i<j) y(i)=y(i)-a(i,j)*x(j) if(i>j) y(i)=y(i)-a(i,j)*y(j) end do y(i)=y(i)/a(i,i) end do do j=1,n D=abs(x(j)-y(j) end do forall(i=1:n)x(i)=y(i) end forallif(D>=e) thenk=k+1write(10,*)" 迭代次數(shù)為: ",kgoto 100 else goto 200end if200write(10,*)"write(10,*)"用 Gauss-seidel 方法解得的結(jié)

溫馨提示

  • 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)論