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

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  《數(shù)值計(jì)算方法》課程設(shè)計(jì)</p><p>  設(shè)計(jì)題目: 非線性方程(組)的解法 </p><p>  設(shè)計(jì)時(shí)間: 2010-6-11至2010-6-18 </p><p>  指導(dǎo)教師: </p><p>  題目 非線性方程(組)的數(shù)值解法</p>

2、<p>  --求解非線性方程組的幾種方法</p><p><b>  問(wèn)題的提出</b></p><p>  分析比較Newton法、Newton法的變形格式。然后分別用Newton 法、簡(jiǎn)化Newton 法、選取不同的初值求解下面方程組,對(duì)于相同的精度要求,比較這兩種方法的運(yùn)行時(shí)間。</p><p><b>  背景分

3、析</b></p><p>  牛頓法是一種重要迭代法,他是逐步線性化方法的典型代表,牛頓法的特點(diǎn)是每一步都需要計(jì)算以及,其計(jì)算量比較大,為了減少計(jì)算量,提出簡(jiǎn)化牛頓法。</p><p><b>  算法思想</b></p><p><b>  1、牛頓法</b></p><p>  設(shè)

4、有非線性方程組 </p><p><b>  其中 </b></p><p>  由偏導(dǎo)數(shù)作成的矩陣記為,稱(chēng)為的雅克比矩陣</p><p>  設(shè)為的解,且設(shè)為的近似解?,F(xiàn)利用多元函數(shù)在點(diǎn)的泰勒公式有</p><p>  其中,在與的所連的線段內(nèi)。</p><p>  如果用上式中

5、的線性函數(shù)近似替代,并將線性方程組</p><p><b>  …..(1)</b></p><p>  的解作為的第次近似解記為</p><p>  將(1)式寫(xiě)成矩陣形式,即 </p><p>  為非奇異矩陣,則牛頓迭代公式:</p><p>  ……………………………(2 )</

6、p><p>  求解非線性方程組牛頓方法為</p><p><b>  2、簡(jiǎn)化牛頓法</b></p><p>  在牛頓法的基礎(chǔ)上,為了減少計(jì)算量,將均取為,得如下簡(jiǎn)化牛頓公式:</p><p>  …………………(3 )</p><p>  其中(2)(3)式均為線性收斂的。</p>

7、<p><b>  算法設(shè)計(jì)</b></p><p>  將一個(gè)非線性方程組寫(xiě)成向量的形式有: </p><p><b>  F(x) = 0 </b></p><p>  牛頓迭代法的公式就是: </p><p>  x(k+1)=x(k)-F’(x(k))-1F(x(k)) <

8、/p><p>  其中F’(x(k))為Jacobi矩陣,我寫(xiě)的這段程序就是根據(jù)這個(gè)公式來(lái)的。</p><p>  運(yùn)用MATLAB中的jacobian求出F的雅克比矩陣,用inv求逆</p><p>  matrix=@(varargin)[varargin{:}]構(gòu)造迭代函數(shù)</p><p>  在比較牛頓法和簡(jiǎn)化牛頓法運(yùn)行時(shí)間方面,我們主要

9、是通過(guò)比較迭代次數(shù)。</p><p><b>  程序清單</b></p><p><b>  牛頓法源程序:</b></p><p>  function x=newton_solve(F,v,x0,e) </p><p>  if (~ischar(F) || ~ischar(v)) %定義類(lèi)型

10、</p><p>  error('Parameter F and v should be char type!'); </p><p><b>  end </b></p><p>  if (~isnumeric(x0) || ~isnumeric(e)) </p><p>  error('

11、Parameter x0 and e should be numeric type!'); </p><p><b>  end </b></p><p>  F=sym(F);v=sym(v);</p><p>  dF=jacobian(F,v);</p><p>  tF=inv(dF)*F</p&

12、gt;<p>  for index=1:numel(v) </p><p>  tF=subs(tF,v(index),['x(' num2str(index) ')']); %把x分量化,把x1變成x(1),把x2變成x(2)</p><p><b>  end </b></p><p>  m

13、atrix=@(varargin)[varargin{:}].'; </p><p><b>  %構(gòu)造迭代函數(shù)</b></p><p>  phi=['x-' char(tF)]; </p><p>  eval(['phi=@(x)' phi ';']); </p>&l

14、t;p>  err=inf; %無(wú)窮大</p><p>  xold=phi(x0); </p><p><b>  n=0; </b></p><p>  while err>e </p><p>  xnew=phi(xold); </p><p>  %用本次結(jié)果與上次結(jié)果差的范

15、數(shù)來(lái)衡量誤差</p><p>  err=norm(xnew-xold); </p><p>  xold=xnew; </p><p><b>  n=n+1; </b></p><p>  %迭代次數(shù)大于10000是退出循環(huán)</p><p>  if (n>10000) </p&g

16、t;<p><b>  break; </b></p><p><b>  end </b></p><p><b>  n%迭代次數(shù)</b></p><p><b>  end </b></p><p><b>  x=xold;

17、</b></p><p>  簡(jiǎn)化牛頓法的源程序:</p><p>  function x=simnewton_solve (F,v,x0,e) </p><p>  if (~ischar(F) || ~ischar(v)) %定義類(lèi)型</p><p>  error('Parameter F and v should

18、 be char type!'); </p><p><b>  end </b></p><p>  if (~isnumeric(x0) || ~isnumeric(e)) </p><p>  error('Parameter x0 and e should be numeric type!'); </p&g

19、t;<p><b>  end </b></p><p>  F=sym(F);v=sym(v);</p><p>  dF=jacobian(F,v);</p><p>  tF=inv(dF)% dF的逆矩陣</p><p>  tF11= -x0(2)/(-x0(2)+4*x0(1));</p&

20、gt;<p>  tF12=1/(-x0(2)+4*x0(1));</p><p>  tF21= 2*x0(1)/(-x0(2)+4*x0(1));</p><p>  tF22=-1/2/(-x0(2)+4*x0(1));</p><p>  tF=[tF11,tF12;tF21, tF22] % 把dF的逆矩陣用初始值x0代入,得到一常數(shù)矩陣,(

21、簡(jiǎn)化牛頓法的思想)</p><p><b>  tF=tF*F;</b></p><p>  for index=1:numel(v) </p><p>  tF=subs(tF,v(index),['x(' num2str(index) ')']); %把x分量化,把x1變成x(1),把x2變成x(2)<

22、/p><p><b>  end </b></p><p>  matrix=@(varargin)[varargin{:}].'; </p><p><b>  %構(gòu)造迭代函數(shù)</b></p><p>  phi=['x-' char(tF)]; </p><

23、;p>  eval(['phi=@(x)' phi ';']); </p><p>  err=inf; %無(wú)窮大</p><p>  xold=phi(x0); </p><p><b>  n=0; </b></p><p>  while err>e </p>

24、<p>  xnew=phi(xold); </p><p>  %用本次結(jié)果與上次結(jié)果差的范數(shù)來(lái)衡量誤差</p><p>  err=norm(xnew-xold); </p><p>  xold=xnew; </p><p><b>  n=n+1; </b></p><p>

25、  %迭代次數(shù)大于10000是退出循環(huán)</p><p>  if (n>10000) </p><p><b>  break; </b></p><p><b>  end </b></p><p><b>  n%迭代次數(shù)</b></p><p&g

26、t;<b>  end </b></p><p><b>  x=xold;</b></p><p><b>  運(yùn)行結(jié)果分析</b></p><p>  newton_solve('[x1+2*x2-3;2*x1^2+x2^2-5]','[x1;x2]',[1.5;1

27、],0.0001)</p><p><b>  n = </b></p><p><b>  2</b></p><p><b>  ans =</b></p><p><b>  1.4880</b></p><p><b&

28、gt;  0.7560</b></p><p>  simnewton_solve('[x1+2*x2-3;2*x1^2+x2^2-5]','[x1;x2]',[1.5;1],0.0001) </p><p><b>  n =</b></p><p><b>  3</b>&l

29、t;/p><p><b>  ans =</b></p><p><b>  1.4880</b></p><p><b>  0.7560</b></p><p>  newton_solve('[x1+2*x2-3;2*x1^2+x2^2-5]','[x

30、1;x2]',[100;56],0.0001)</p><p><b>  n =</b></p><p><b>  10</b></p><p><b>  ans =</b></p><p><b>  1.4880</b></p>

31、;<p><b>  0.7560</b></p><p>  simnewton_solve('[x1+2*x2-3;2*x1^2+x2^2-5]','[x1;x2]',[100;56],0.0001)</p><p><b>  n =</b></p><p><b&

32、gt;  388</b></p><p><b>  ans =</b></p><p><b>  1.4938</b></p><p><b>  0.7531</b></p><p>  上面的結(jié)果是牛頓法和簡(jiǎn)化牛頓法同精度同初值的解法以及不同初值同精度得出來(lái)

33、的,我們利用迭代次數(shù)來(lái)比較它們運(yùn)行的快慢(即運(yùn)行的時(shí)間),我們本題的初值和精度可以任意取值,從而得出迭代次數(shù)以及結(jié)果。從結(jié)果可以看出,簡(jiǎn)化牛頓法相比起牛頓法迭代次數(shù)要多一些,而且簡(jiǎn)化牛頓法的值誤差較大,因此用牛頓法解非線性方程組要比簡(jiǎn)化牛頓法要好。</p><p><b>  問(wèn)題分析</b></p><p>  在我們參考了MATLAB相關(guān)書(shū)籍之后,通過(guò)在網(wǎng)上的查閱

34、,基本編寫(xiě)出牛頓法解非線性方程組的程序,在這個(gè)程序的基礎(chǔ)上我們來(lái)改進(jìn)用以實(shí)現(xiàn)簡(jiǎn)化牛頓法解非線性方程組,我們主要遇到的是要怎么使它可以在程序中賦初值之后直接生成,最后這個(gè)沒(méi)有解決,所以我們選擇了賦初值后,直接把求出來(lái),再把的值作為常量帶入程序中求解。</p><p><b>  總結(jié)</b></p><p>  本次的程序設(shè)計(jì),我們用MATLAB編寫(xiě)了牛頓法解非線性方程

35、以及簡(jiǎn)化的牛頓法解非線性方程的程序。牛頓法是通過(guò)牛頓迭代法的公式:x(k+1)=x(k)-F’(x(k))-1F(x(k)) ,帶入初值及給定精度的范圍,得出方程組的解。簡(jiǎn)化牛頓法,實(shí)在牛頓法的基礎(chǔ)上,把雅可比矩陣的逆的初始矩陣算出來(lái),再通過(guò)迭代的出的解。我們選取了不同的初值解非線性方程組。并且對(duì)于同初值同精度問(wèn)題,分別用牛頓法和簡(jiǎn)化的牛頓法解得簡(jiǎn)化的牛頓法迭代的次數(shù)更多。說(shuō)明簡(jiǎn)化的牛頓法迭代精度更低而且求的的解誤差較大。這與理論是相符

36、合的。牛頓法和簡(jiǎn)化牛頓法都有優(yōu)點(diǎn)也有缺點(diǎn),我們?cè)诮鉀Q問(wèn)題的時(shí)候,要結(jié)合自己的實(shí)力和自己所需的選擇恰當(dāng)?shù)姆椒?。我們從不懂到懂得這個(gè)過(guò)程讓我們收獲很多,通過(guò)不斷地學(xué)習(xí),查閱資料以及修改程序,一個(gè)從無(wú)到有的積累,我們不僅僅是在做題,也是在學(xué)習(xí)處理任何問(wèn)題的方法。遇到困難不要輕易放棄,要善于利用和整合資源,這都是生活必不可少的。</p><p><b>  參考文獻(xiàn)</b></p>&

37、lt;p>  《數(shù)值計(jì)算方法》鄭繼明 重慶大學(xué)出版社 2005</p><p>  《數(shù)值分析》翟瑞彩和謝偉松 天津大學(xué)出版社2000</p><p>  《matlab 工程數(shù)學(xué)應(yīng)用》許波和劉征 清華大學(xué)出版社 2000</p><p><b>  心得體會(huì)</b></p><p>  為期一周的《數(shù)值計(jì)算方法》

38、的課程設(shè)計(jì)結(jié)束了,與其說(shuō)是一個(gè)星期,實(shí)質(zhì)只有四天,中間有三天放假,所以我們?cè)谏蠙C(jī)設(shè)計(jì)的時(shí)間里抓得很緊。</p><p>  通過(guò)兩年來(lái)的學(xué)習(xí),我覺(jué)得這樣的課程設(shè)計(jì)是非常有意義的。數(shù)值計(jì)算方法是一門(mén)應(yīng)用范圍很廣的課程,是信息與計(jì)算科學(xué)專(zhuān)業(yè)的一門(mén)主要專(zhuān)業(yè)基礎(chǔ)課程,通過(guò)這次實(shí)驗(yàn)上機(jī)才知道原來(lái)我們可以運(yùn)用MATLAB和C語(yǔ)言以及其他的相關(guān)匯編語(yǔ)言來(lái)編輯程序解決數(shù)值計(jì)算方法里面的很多問(wèn)題。</p><p

39、>  在學(xué)習(xí)了理論知識(shí)之后,如何去具體的處理數(shù)學(xué)中的問(wèn)題,如何把我們的理論運(yùn)用到實(shí)踐中去,這樣的課程設(shè)計(jì)為我們提供了這樣一個(gè)實(shí)踐平臺(tái)。通過(guò)這次實(shí)驗(yàn),我收獲頗多。</p><p>  首先是對(duì)MATLAB軟件的認(rèn)識(shí)有了進(jìn)一步的提升。它簡(jiǎn)單易學(xué)、計(jì)算功能強(qiáng)等。MATLAB具有強(qiáng)大的矩陣運(yùn)算、數(shù)據(jù)處理的功能,它輸出的結(jié)果可視化。編程效率高,比C語(yǔ)言簡(jiǎn)單,讓我們比較容易接受,所以我們?cè)诮鉀Q這道題的時(shí)候選擇了使用ma

40、tlab這種高級(jí)編程語(yǔ)言。我們也通過(guò)這次上機(jī)實(shí)驗(yàn)對(duì)《數(shù)值計(jì)算方法》有了更進(jìn)一步的鞏固。其次,通過(guò)這次上機(jī)實(shí)驗(yàn),我對(duì)牛頓法有了更深一層的理解。牛頓法是一種重要迭代法,他是逐步線性化方法的典型代表。為了減少計(jì)算量,牛頓法還衍生出許多的變格形式,比如下降牛頓法、阻尼牛頓法、簡(jiǎn)化牛頓法、修正牛頓法、擬牛頓法等等,這里我們主要是用了牛頓法和簡(jiǎn)化牛頓法來(lái)解非線性方程組,并對(duì)這兩種方法做了一個(gè)比較,通過(guò)精度的分析,迭代次數(shù)的比較得出牛頓法迭代次數(shù)比較

41、少,但計(jì)算量大;簡(jiǎn)化的牛頓法迭代次數(shù)多但計(jì)算量相對(duì)較少。所以是各有所長(zhǎng),都能解決我們的問(wèn)題。在做本次課程設(shè)計(jì)的過(guò)程中我感觸最深的當(dāng)屬查閱了很多書(shū)籍,為了讓自己的設(shè)計(jì)更加完善,更加符合標(biāo)準(zhǔn),一次次翻閱相關(guān)書(shū)籍書(shū)是十分必要的,同時(shí)也是必不可少的。</p><p>  通過(guò)這次實(shí)驗(yàn)讓我了解到合作的重要性,在處理問(wèn)題的時(shí)候,當(dāng)自己冥思苦想也想不出來(lái)解決方案的時(shí)候,不妨選擇請(qǐng)教老師,和同學(xué)討論??梢赃_(dá)到事半功倍的效果。我們

42、的工作是一個(gè)團(tuán)隊(duì)的工作,團(tuán)隊(duì)需要個(gè)人,個(gè)人也離不開(kāi)團(tuán)隊(duì),必須發(fā)揚(yáng)團(tuán)結(jié)協(xié)作的精神。某個(gè)人的離群都可能導(dǎo)致導(dǎo)致整項(xiàng)工作的失敗。實(shí)習(xí)中只有一個(gè)人知道原理是遠(yuǎn)遠(yuǎn)不夠的,必須讓每個(gè)人都知道,否則一個(gè)人的錯(cuò)誤,就有可能導(dǎo)致整個(gè)工作失敗。團(tuán)結(jié)協(xié)作是我們實(shí)習(xí)成功的一項(xiàng)非常重要的保證。而這次實(shí)習(xí)也正好鍛煉了我們的這一點(diǎn),這對(duì)于我們的整個(gè)人生來(lái)說(shuō),都是非常寶貴的。 </p><p>  通過(guò)這一個(gè)星期《數(shù)值計(jì)算方法》上機(jī)實(shí)驗(yàn),我對(duì)《

43、數(shù)值計(jì)算方法》有了進(jìn)一步的鞏固,我們不僅掌握數(shù)值計(jì)算方法的基本概念,數(shù)值求解數(shù)學(xué)問(wèn)題的基本方法,更進(jìn)一步為學(xué)習(xí)和解決科學(xué)與工程中的實(shí)際問(wèn)題打好基礎(chǔ),使我們具備基本的算法分析、設(shè)計(jì)能力和一定的編程能力。當(dāng)然,若要是得自己在這一方面更有能力,僅僅一個(gè)星期的上機(jī)實(shí)驗(yàn)是遠(yuǎn)遠(yuǎn)不夠的,還需要自己課下的多多努力,不過(guò)通過(guò)這次實(shí)驗(yàn)為我們進(jìn)一步更好的學(xué)習(xí)引進(jìn)了一個(gè)方向,我相信,這次上機(jī)實(shí)驗(yàn)之后,我能夠更有方向性的、目的性去更深的學(xué)習(xí)《數(shù)值計(jì)算方法》以及其

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論