數值分析課程設計--newton_迭代法_第1頁
已閱讀1頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  課 程 設 計 報 告</p><p>  課程名稱 數值分析 </p><p>  課題名稱 Newton 迭代法 </p><p>  2013年 1 月 9 日</p><p>  一、設計內容與設計要求</p><p>&

2、lt;b>  1.設計內容:</b></p><p>  對課程《計算方法》中的常見算法進行綜合設計或應用(具體課題題目見后面的供選題目)。</p><p><b>  2.設計要求:</b></p><p>  課程設計報告正文內容</p><p>  問題的描述及算法設計;</p>&

3、lt;p>  算法的流程圖(要求畫出模塊圖);</p><p>  算法的理論依據及其推導;</p><p>  相關的數值結果(通過程序調試),;</p><p>  數值計算結果的分析;</p><p>  附件(所有程序的原代碼,要求對程序寫出必要的注釋)。</p><p><b>  書寫格式&

4、lt;/b></p><p>  a.要求用A4紙打印成冊</p><p>  b.正文格式:一級標題用3號黑體,二級標題用四號宋體加粗,正文用小四號宋體;行距為22。</p><p>  c.正文的內容:正文總字數要求在3000字左右(不含程序原代碼)。</p><p>  d.封面格式如下頁。</p><p>

5、;<b>  考核方式</b></p><p>  指導老師負責驗收程序的運行結果,并結合學生的工作態(tài)度、實際動手能力、創(chuàng)新精神和設計報告等進行綜合考評,并按優(yōu)秀、良好、中等、及格和不及格五個等級給出每位同學的課程設計成績。具體考核標準包含以下幾個部分:</p><p>  a.平時出勤 (占10%)</p><p>  b.系統需求分析、功能

6、設計、數據結構設計及程序總體結構合理與否(占10%)</p><p>  c.程序能否完整、準確地運行,個人能否獨立、熟練地調試程序(占40%)</p><p>  d.設計報告(占30%)</p><p>  注意:不得抄襲他人的報告(或給他人抄襲),一旦發(fā)現,成績?yōu)榱惴帧?lt;/p><p>  e.獨立完成情況(占10%)。</p&g

7、t;<p><b>  課程驗收要求</b></p><p>  a.判定算法設計的合理性,運行相關程序,獲得正確的數值結果。</p><p><b>  b.回答有關問題。</b></p><p>  c.提交課程設計報告。</p><p>  d.提交軟盤(源程序、設計報告文檔)。

8、</p><p>  e.依內容的創(chuàng)新程度,完善程序情況及對程序講解情況打分。</p><p><b>  三、進度安排</b></p><p>  班級: 信息與計算科學:1101、1102、1103</p><p>  主講教師:聶 存 云、陽衛(wèi)鋒</p><p>  輔導教師:聶 存 云、陽

9、衛(wèi)鋒</p><p><b>  上機時間安排:</b></p><p>  第17教學周 (課程設計算法設計) </p><p>  星期一: 8:10---11:50 14:10---17:30 1--A--404</p><p>  星期二: 10:10---11:50 15:20---17:3

10、0 1--A--404</p><p>  星期三: 8:10---11:50 14:10---17:30 1--A--404</p><p>  星期四: 8:10---10:50 14:10---17:30 1--A--404</p><p>  星期五: 8:10---11:50 14:10---17:30 1--A--404&

11、lt;/p><p>  第18教學周 (課程設計算法設計與實現、報告撰寫)</p><p>  星期一: 8:10---11:50 14:10---17:30 1--A--404</p><p>  星期二: 10:10---11:50 15:20---17:30 1--A--404</p><p>  星期三: 8:10

12、---11:50 14:10---17:30 1--A--404</p><p>  星期四: 8:10---10:50 14:10---17:30 1--A--404</p><p>  星期五: 8:10---11:50 14:10---17:30 1--A--404</p><p>  課程設計算法設計答辯與報告提交、成績評定&l

13、t;/p><p>  星期六: 8:10---11:50 14:10---17:30 1--A--404</p><p>  星期日: 8:10---11:50 14:10---17:30 1--A--404</p><p>  注: 由于系部機房已排滿,故采用在教學樓教室,學生自帶手提電腦進行本課程設計。</p><p>&

14、lt;b>  目 錄</b></p><p>  一、問題描述 …………………………………………6</p><p>  二、算法流程圖 ………………………………………6</p><p>  1.Netown迭代法 ……………………………………6</p><p>  2.不動點迭代 ………………………………

15、……7</p><p>  三、 算法的理論依據 …………………………………9</p><p>  四、算法設計 …………………………………………10</p><p>  五、實驗結果…………………………………………10</p><p>  六、附錄………………………………………………12</p><p>  七、心得

16、體會…………………………………………13</p><p>  附:理學院課程設計評分表…………………………14</p><p><b>  一、問題描述:</b></p><p>  Newton迭代法解決問題</p><p>  以定期存儲為基礎的儲蓄賬戶的積累值可由定期年金方程確定A=P/i[(1+i)^n-1]在這

17、個方程中,A=750000,P=1500,n=20,實現他的儲蓄值目標,最小利率問題。</p><p><b>  二、算法流程圖:</b></p><p>  1.Netown迭代法</p><p>  算法描述:給定初始近似值p0,求f(x)=0的解:</p><p>  輸入 初始近似值p0;精度要求TOL;最大

18、迭代次數N0。</p><p>  輸出 近似解p或失敗信息。</p><p>  Step1 Set i=1.</p><p>  Step2 While i<=N0 do Steps 3--6。</p><p>  Step3 Set p=p0-f(p0)/f’(p0)。(計算pi。)</p><p>  

19、Step4 If | p-p0 |<s then </p><p>  OUTPUT(p);(程序成功)</p><p><b>  STOP。</b></p><p>  Step5 Set i=i+1。</p><p>  Step6 Set p0=p。(更新p0。)</p><p>&

20、lt;b>  STOP。</b></p><p><b>  是</b></p><p><b>  否</b></p><p>  求方程f(p)=0的根的Newton迭代法程序框圖 </p><p>  #include<stdio.h> &l

21、t;/p><p>  #include <math.h></p><p>  void main()</p><p><b>  { </b></p><p><b>  int k;</b></p><p><b>  k=1;</b><

22、/p><p>  long double p,p0,f,f1; </p><p>  printf("輸入初值p0=",p0);</p><p>  scanf("%lf",&p0);</p><p><b>  while(1)</b></p><p>

23、;<b>  {</b></p><p>  f=500.0-(pow(1.0+p0,20)-1.0)/p0;</p><p>  printf("p=%0.9lf\n",f); </p><p>  f1=-(20.0*pow(1.0+p0,19)-pow(1.0+p0,20))/(p0*p0); </p>

24、<p>  printf("p=%0.9lf\n",f1); </p><p>  p=p0-f/f1;</p><p>  if(fabs(p-p0)<1e-2) break;</p><p><b>  p0=p;</b></p><p><b>  k++;</b

25、></p><p><b>  }</b></p><p>  printf("p=%0.9lf\n",p); </p><p>  printf("k=%d\n",k);</p><p><b>  }</b></p><p>

26、<b>  2.不動點迭代 </b></p><p>  算法描述:給定初始近似值p0,求p=g(p)的解:</p><p>  輸入 初始近似值p0;精度要求TOL;最大迭代次數N0。</p><p>  輸出 近似解p或失敗信息。</p><p>  Step1 Set i=1.</p><

27、p>  Step2 While i<=N0 do Steps 3--6。</p><p>  Step3 Set p=g(p0)。(計算pi。)</p><p>  Step4 If | p-p0 |<TOL then </p><p>  OUTPUT(p);(程序成功)</p><p><b>  STOP。&

28、lt;/b></p><p>  Step5 Set i=i+1。</p><p>  Set p0=p。(更新p0。)</p><p><b>  STOP。</b></p><p><b>  是</b></p><p><b>  否</b>

29、</p><p>  求方程p=g(p)的根的不動點迭代法程序框圖 </p><p>  三 算法的理論依據:</p><p>  1.Newton迭代法</p><p>  設x*是方程f(x)=0 一個實根,又設x0為x*的一個近似值,且f(x)二次可微,將f(x)在點x0處作Taylor展開得</p><p&

30、gt;  f(x)=f(x0)+(x-x0)f’(x0)+1/2(x-x0)2f”(?)</p><p>  其中,?介于x0與x之間。令x=x*有</p><p>  0=f()=f()+(x*-x0)f’(x0)+1/2(x*-x0)2f”(η)</p><p>  這里η介于xo與x*之間。略去上式 (x*-x0) 的二項,可得x*的一個近似解為</p&

31、gt;<p>  x*≈x1=x0-f(x0)/f’(x0)</p><p>  以x1代替x0,重復上述過程可得x*新的近似解x2,,如此下去,得x*的近似解序列</p><p>  xn+1=xn-f(xn)/f’(xn) (n=0,1,.2…)</p><p><b>  2.不動點迭代法</b></p>&

32、lt;p>  如果g(p)=p,熟p是給定函數g的一個不動點。下面給出不動點存在性和唯一性的充分條件:</p><p>  如果g∈C[a,b]且g(x)∈[a,b]對一切x∈[a,b]成立,則g在[a,b]有一個不動點。</p><p>  -除以上條件外,如果g’(x)在(a,b)存在,且存在一個正常數k<1使得</p><p>  |g’(x)|&

33、lt;=k</p><p>  對一切x∈(a,b)成立,則不動點在[a,b]是唯一的。</p><p>  不動點定理:設g∈C[a,b]且g(x)∈[a,b]對一切x∈[a,b]成立。又假設g’在(a,b)內存在,且存在常數0<k<1使對一切x∈(a,b)有</p><p>  |g’(x)|<=k</p><p>  

34、則對[a,b]內任意點p0,由</p><p>  pn=g(pn-1), n>=1</p><p>  定義于序列收斂于[a,b]內的唯一不動點p。</p><p><b>  四、算法設計:</b></p><p>  根據三種方法的算法,分別定義C語言函數:</p><p&g

35、t;  void Newton(); //聲明Newton的函數</p><p>  通過主函數調用其他函數,在程序中應用多選擇分支語句</p><p>  switch() {</p><p><b>  case :</b></p><p><b>  break;</b

36、></p><p><b>  default:</b></p><p><b>  }</b></p><p>  完成對迭代方法的選擇的操作。</p><p><b>  五、實驗結果:</b></p><p><b>  P23第2

37、2題</b></p><p><b>  P23第23題</b></p><p><b>  六、附錄:</b></p><p><b>  程序源代碼:</b></p><p>  #include<stdio.h> </p>

38、<p>  #include <math.h></p><p>  void main()</p><p><b>  { </b></p><p><b>  int k;</b></p><p><b>  k=1;</b></p>

39、<p>  long double p,p0,f,f1; </p><p>  printf("輸入初值p0=",p0);</p><p>  scanf("%lf",&p0);</p><p><b>  while(1)</b></p><p><b&g

40、t;  {</b></p><p>  //f=500.0-(pow(1.0+p0,20)-1.0)/p0;</p><p>  // f1=-(20.0*pow(1.0+p0,19)-pow(1.0+p0,20))/(p0*p0); </p><p>  f=135.0*pow(1.0+p0,30)*p0+1-pow(1.0+p0,30);&l

41、t;/p><p>  printf("p=%0.9lf\n",f); </p><p>  f1=135.0*(30*pow(1.0+p0,29)*p0-pow(1.0+p0,30))- 30*pow(1.0+p0,29); </p><p>  printf("p=%0.9lf\n",f1); </p><p

42、>  p=p0-f/f1;</p><p>  if(fabs(p-p0)<1e-6) break;</p><p><b>  p0=p;</b></p><p><b>  k++;</b></p><p><b>  }</b></p><

43、p>  printf("p=%0.9lf\n",p); </p><p>  printf("k=%d\n",k);</p><p><b>  }</b></p><p><b>  七、心得體會:</b></p><p>  經過這段為期不久的課程設

44、計,使我對于數值分析有了更深層次的理解,應用Newton迭代法解決現實問題。</p><p>  在這個過程中。我也曾因為實踐經驗缺乏失落過;也曾經仿真成功而熱情高漲。生活就這樣;雖然這只是一次極其簡單的課程設計;可是平心而論,也耗費我不少的心血。這讓我不得不對我們社會的付出的老一輩;為了我們的生活更美好,他們?yōu)槲覀兏冻龆嗌傩难?lt;/p><p>  我感覺用心細心地做好一件事情的重要性,

45、在這次課程設計中,體會到了做設計的嚴謹,更加加深了我對課程設計的興趣,在此次課程設計過程中,遇到不懂的問題我會及時向老師,同學請教,以更好地完成該項課題設計。</p><p>  一個人的能力有限;此次的程序設計能夠成功,是我自身的努力和尋求老師同學的幫助共同努力作用的結果。在這一段努力學習的過程中,收獲還真是不少,雖然說以前非常不懂這門語言,在它上面花費了好多心血,覺得它很難,是需用花費了大量的時間編寫出來的。

46、現在真正的明白了一些代碼的應用,每個程序都有一些共同點,通用的結構,相似的格式。只要努力去學習,就會靈活的去應用它。</p><p>  以后,努力學習好這么課程,讓自己擁有更多的知識,才能解決更多的問題。</p><p>  理學院課程設計評分表 </p><p>  課程名稱: </p><

溫馨提示

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

評論

0/150

提交評論