2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  數(shù)值分析 設(shè)計報告書</p><p>  題 目 松弛迭代法中松弛因子 </p><p>  院 系 數(shù)理系 </p><p>  專 業(yè) 信息與計算科學(xué) </p><p>  班 級

2、 </p><p>  學(xué) 號 </p><p>  姓 名 </p><p>  時 間 2013-12-10~2013-12-23 </p><p>  指導(dǎo)教

3、師 </p><p><b>  題目:</b></p><p>  選用Jacobi迭代法、Gauss-Seidel迭代法和超松弛迭代法求解下面的方程組(考慮等于150)</p><p><b>  =</b></p><p>  考慮初值的變化和松弛因子

4、的變化收斂效果的影響;對上述方程組還可以采用哪些方法求解?選擇其中一些方法編程上機(jī)求解上述方程組,說明最適合的是什么方法;將計算結(jié)果進(jìn)行比較分析,談?wù)勀銓@些方法的看法。</p><p><b>  一、摘要</b></p><p>  本課程設(shè)計用matlab就線性方程組數(shù)值方法,Jacobi迭代法,Gauss-Seidel迭代法,超松弛法對所設(shè)計的問題進(jìn)行求解,并

5、編寫程序在Matlab中實現(xiàn),在文章中對各種迭代法進(jìn)行了收斂性分析。接著用幾種不同方法對線性方程組進(jìn)行求解及結(jié)果分析,最后對此次課程設(shè)計進(jìn)行了總結(jié)。</p><p>  關(guān)鍵詞:線性方程組,迭代,Matlab,結(jié)果分析</p><p><b>  二、設(shè)計目的</b></p><p>  用熟悉的計算機(jī)語言編程上機(jī)求解線性方程組。</p&

6、gt;<p><b>  三、理論基礎(chǔ)</b></p><p>  對方程組 </p><p>  做等價變換 </p><p><

7、b>  如:令 ,則</b></p><p>  則,我們可以構(gòu)造序列 </p><p><b>  若 </b></p><p><b>  同時:</b></p><p>  所以,序列收斂,與初值的選取無關(guān)<

8、;/p><p><b>  則轉(zhuǎn)化為矩陣形式</b></p><p><b>  (1)</b></p><p><b>  令</b></p><p><b>  或者 </b></p><p>  故迭代過程(1)化為 </p

9、><p>  (2) </p><p><b>  等價線性方程組為 </b></p><p>  稱(2)式為解線性方程組(1)的Jacobi迭代法(J法)</p><p>  迭代矩陣 考慮迭代式(2)</p><p><

10、;b>  即 </b></p><p>  將上式改為 (3)</p><p><b>  (4)</b></p><p><b>  超松弛迭代</b></p><p><b>  記 &l

11、t;/b></p><p><b>  則 </b></p><p>  可以看作在前一步上加一個修正量。若在修正量前乘以一個因子</p><p><b>  有 </b></p><p>  對Gauss-Seidel迭代格式 </p><p><b>

12、;  迭代矩陣</b></p><p><b>  程序代碼及運算結(jié)果</b></p><p>  1.利用Jacobi迭代法求解:</p><p>  編制名為majacobifun.m的文件,內(nèi)容如下:</p><p>  function [x,n]=jacobifun(A,b,x0,eps)</

13、p><p>  %jacobifun為編寫在雅可比迭代函數(shù)</p><p>  %A為線性方程組的系數(shù)矩陣</p><p>  %b為線性方程組的常數(shù)向量</p><p>  %x0為迭代初始向量</p><p><b>  %eps為解的精度</b></p><p>  %x

14、為線性方程組的解</p><p>  %n為求出所需精度的解實際的迭代步數(shù)</p><p>  D=diag(diag(A));</p><p>  B=D\(D-A);</p><p><b>  f=D\b;</b></p><p><b>  x=B*x0+f;</b>

15、</p><p><b>  n=0;</b></p><p>  if max(abs(eig(B)))>=1</p><p>  disp('Warning:不收斂!');</p><p><b>  return;</b></p><p><

16、b>  end</b></p><p>  while norm(x-x0)>=eps</p><p><b>  x0=x;</b></p><p><b>  x=B*x0+f;</b></p><p><b>  n=n+1;</b></p&

17、gt;<p><b>  end</b></p><p>  2.利用Gauss-Seidel迭代法求解:</p><p>  編制名為G_Seidelifun.m的文件,內(nèi)容如下:</p><p>  nction [x,n]=G_Seidelifun(A,b,x0,eps)</p><p>  %G_S

18、eidelifun為編寫在高斯-賽德爾迭代函數(shù)</p><p>  %A為線性方程組的系數(shù)矩陣</p><p>  %b為線性方程組的常數(shù)向量</p><p>  %x0為迭代初始向量</p><p><b>  %eps為解的精度</b></p><p>  %x為線性方程組的解</p&g

19、t;<p>  %n為求出所需精度的解實際的迭代步數(shù)</p><p>  D=diag(diag(A));</p><p>  L=-tril(A,-1);</p><p>  U=-triu(A,1);</p><p>  G=(D-L)\U;</p><p>  f=(D-L)\b;</p>

20、;<p><b>  x=G*x0+f;</b></p><p><b>  n=0;</b></p><p>  if max(abs(eig(G)))>=1</p><p>  disp('Warning:不收斂!');</p><p><b>  

21、return;</b></p><p><b>  end</b></p><p>  while norm(x-x0)>=eps</p><p><b>  x0=x;</b></p><p><b>  x=G*x0+f;</b></p>&

22、lt;p><b>  n=n+1;</b></p><p><b>  end</b></p><p>  3.利用SOR迭代法求解:</p><p>  編制名為SORfun.m的文件,內(nèi)容如下:</p><p>  function [x,n]=SORfun(A,b,x0,w,eps)&l

23、t;/p><p>  %SORfun為編寫在松弛迭代函數(shù)</p><p>  %A為線性方程組的系數(shù)矩陣</p><p>  %b為線性方程組的常數(shù)向量</p><p>  %x0為迭代初始向量</p><p><b>  %w為松弛因子</b></p><p><b&g

24、t;  %eps為解的精度</b></p><p>  %x為線性方程組的解</p><p>  %n為求出所需精度的解實際的迭代步數(shù)</p><p>  if(w<=0 ||w>=2)</p><p><b>  error</b></p><p><b>  

25、return;</b></p><p><b>  end</b></p><p>  D=diag(diag(A));</p><p>  L=-tril(A,-1);</p><p>  U=-triu(A,1);</p><p>  S=(D-w*L)\((1-w)*D+w*U)

26、;</p><p>  f=w*((D-w*L)\b);</p><p><b>  x=S*x0+f;</b></p><p><b>  n=0;</b></p><p>  if max(abs(eig(S)))>=1</p><p>  disp('Wa

27、rning:不收斂!');</p><p><b>  return;</b></p><p><b>  end</b></p><p>  while norm(x-x0)>=eps</p><p><b>  x0=x;</b></p><

28、;p><b>  x=S*x0+f;</b></p><p><b>  n=n+1;</b></p><p><b>  end</b></p><p>  在Matlab命令窗口輸入:</p><p><b>  >> clear</b&g

29、t;</p><p><b>  w=1.5;</b></p><p><b>  eps=1e-6;</b></p><p><b>  n=150;</b></p><p>  A=diag(8*ones(1,n-1),-1)+diag(6*ones(1,n))+diag(

30、ones(1,n-1),1);</p><p>  b(1)=10.5;</p><p><b>  b(n)=21;</b></p><p>  for i=2:n-1</p><p>  b(i)=22.5;</p><p><b>  end</b></p>

31、<p><b>  b=b';</b></p><p>  x0=zeros(n,1);</p><p>  [x1,n]=jacobifun(A,b,x0,eps);</p><p>  [x2,n]=G_Seidelifun(A,b,x0,eps);</p><p>  [x3,n]=SORfu

32、n(A,b,x0,w,eps);</p><p>  plot(x1);hold on</p><p>  plot(x2,'r');hold on</p><p>  plot(x3,'g*')</p><p>  表1 Jacobi、Guass_seidel、SOR迭代結(jié)果表</p>&

33、lt;p>  以下為方程組的解的圖:</p><p>  圖1 初值x0=[0;..;0] 松弛因子=1.5時圖</p><p>  圖2 初值x0=[1;..;1] 松弛因子=1.5時圖</p><p>  圖3 初值x0=[1;..;1] 松弛因子=1.1時圖</p><p><b>  五、結(jié)果分析</

34、b></p><p>  通過以上數(shù)據(jù)測試可以分析出以下幾點:</p><p>  1. 系數(shù)矩陣為150階時,經(jīng)判斷Jacobi迭代是發(fā)散的、Gauss-Seidel、SOR兩種迭代是收斂的,當(dāng)初值一定時,Gauss-Seidel、SOR對應(yīng)的迭代次數(shù)是逐漸減少的,也就是說SOR迭代比Gauss-Seidel迭代收斂更快。</p><p>  2. 當(dāng)初值變

35、大時,Gauss-Seidel、SOR對應(yīng)的迭代次數(shù)是逐漸減少的,當(dāng)初值相同,松弛因子 變小時,SOR對應(yīng)的迭代次數(shù)是逐漸減少的,</p><p>  3. 三種迭代法計算得到的解與嚴(yán)格計算方程組后的精確解在結(jié)果所示精度下是相同的,說明三種迭代法的求解精度是不低的。</p><p><b>  六、設(shè)計心得</b></p><p>  通過這次

36、數(shù)值分析課程設(shè)計,分別利用Jacobi迭代、Gauss-Seidel迭代和超松弛迭代法求解指定方程組,并考慮了初值變化和松弛因子的變化對收斂效果胡影響?;仡檾?shù)值分析的相關(guān)知識,完成了這次課程設(shè)計,進(jìn)一步加深了解線性方程組的方法。</p><p><b>  七、參考文獻(xiàn)</b></p><p>  [1]薛定宇,陳陽泉。高等應(yīng)用數(shù)學(xué)問題的MATLAB求解[M]。北京:

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論