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><b>  一、目錄</b></p><p><b>  一、目錄1</b></p><p><b>  二、設(shè)計(jì)內(nèi)容2</b></p><p>  1.Gauss列主元素消去法解線性方程組的算法設(shè)計(jì)2</p><p>  1.1 模塊設(shè)計(jì)2</

2、p><p>  1.2主要程序代碼2</p><p>  1.3 運(yùn)行結(jié)果5</p><p>  2.Romberg算法6</p><p><b>  2.1模塊設(shè)計(jì)6</b></p><p>  2.2 主要程序代碼6</p><p>  2.3 運(yùn)行結(jié)果7<

3、;/p><p><b>  三、小結(jié)8</b></p><p><b>  四、參考文獻(xiàn)8</b></p><p><b>  二、設(shè)計(jì)內(nèi)容</b></p><p>  1.Gauss列主元素消去法解線性方程組的算法設(shè)計(jì)</p><p><b&g

4、t;  1.1 模塊設(shè)計(jì)</b></p><p>  求任意階(n<10)線性方程組的能力,主要包括一下模塊:</p><p> ?。?)在源程序中定義求解的方程階數(shù);</p><p> ?。?)輸入方程的系數(shù)矩陣和常數(shù)矩陣;</p><p><b> ?。?)獲取增廣矩陣</b></p>

5、<p> ?。?)Gauss列主元素消去:找主元、消元(分解)、回代、輸出結(jié)果。</p><p><b>  1.2主要程序代碼</b></p><p>  #include <iostream.h></p><p>  #include <iomanip.h></p><p>  #

6、include <math.h></p><p>  #define n 4</p><p>  class Guss{</p><p><b>  private:</b></p><p>  float a[n][n];</p><p>  float b[n];</p>

7、;<p>  float Array[n][n+1];</p><p><b>  public:</b></p><p>  Guss() //構(gòu)造矩陣</p><p><b>  {</b></p><p>  cout<<"請(qǐng)輸入"<<

8、n<<"*"<<n<<"維系數(shù)矩陣:"<<endl;</p><p>  for(int i = 0;i<n;i++) // 輸入系數(shù)矩陣</p><p><b>  {</b></p><p>  for(int j = 0;j<n;j++

9、)</p><p>  cin>>a[i][j];</p><p><b>  }</b></p><p>  cout<<"請(qǐng)輸入"<<1<<"*"<<n<<"維常數(shù)矩陣:"<<endl;</p

10、><p>  for(i = 0;i<n;i++) // 輸入常數(shù)矩陣</p><p><b>  {</b></p><p>  cin>>b[i];</p><p><b>  }</b></p><p>  /*for(int i1 = 0;i1&l

11、t;n;i1++)</p><p><b>  {</b></p><p>  for(int j1 =0;j1<n+1;j1++)</p><p><b>  {</b></p><p>  cout<<a[i1][j1]<<setw(15);</p>

12、<p><b>  }</b></p><p>  cout<<b[i1];</p><p>  cout<<endl;</p><p><b>  }</b></p><p><b>  */</b></p><p>

13、<b>  }</b></p><p>  void zgjz() //獲得增廣矩陣</p><p><b>  {</b></p><p>  //float c[n][n+1]; //定義增廣矩陣</p><p>  //float *p;</p><p>  /

14、/p = &a[0][0];</p><p>  for(int i = 0;i<n;i++) //有系數(shù)矩陣和常數(shù)矩陣獲得增廣矩陣205</p><p><b>  {</b></p><p>  for(int j = 0;j<n+1;j++)</p><p><b>  {<

15、/b></p><p>  if(j == n)</p><p>  Array[i][j] = b[i];</p><p><b>  else</b></p><p>  Array[i][j] = a[i][j];</p><p><b>  }</b></

16、p><p><b>  }</b></p><p>  //return &c[0][0];</p><p>  //return *p; //返回增廣矩陣</p><p>  cout<<"增廣矩陣為:"<<endl;</p><p>  fo

17、r(int i1 = 0;i1<n;i1++)</p><p><b>  {</b></p><p>  for(int j1 =0;j1<n+1;j1++)</p><p><b>  {</b></p><p>  cout<<Array[i1][j1]<<

18、;setw(15);</p><p><b>  }</b></p><p>  cout<<endl;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void Gjfc() //Gus

19、s列主元素消元法</p><p><b>  {</b></p><p>  float max,u,z; //定義三個(gè)float變量 ,max標(biāo)記最大值,u用來(lái)交換,z用來(lái)計(jì)算最后的結(jié)果</p><p>  int flag; //flag用來(lái)標(biāo)記下標(biāo)</p><p>  for(int i = 0;

20、i<n-1;i++)</p><p><b>  {</b></p><p>  max = Array[i][i];</p><p><b>  flag = i;</b></p><p>  for(int k = i+1;k<n;k++)</p><p>&

21、lt;b>  {</b></p><p>  if(fabs(max) < fabs(Array[k][i])) //找主元</p><p><b>  {</b></p><p>  max = Array[k][i];</p><p><b>  flag = k;</b&g

22、t;</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(flag != i)</p><p><b>  {</b></p><p>  for(int j = i;j<n+1;j++)<

23、;/p><p><b>  {</b></p><p>  u = Array[i][j];</p><p>  Array[i][j] = Array[flag][j];</p><p>  Array[flag][j] = u;</p><p><b>  }</b><

24、/p><p><b>  }</b></p><p>  for(int x = i+1;x<n;x++) //消元</p><p><b>  {</b></p><p>  u = Array[x][i]/max;</p><p>  for(int y = i;y&l

25、t;n+1;y++)</p><p><b>  {</b></p><p>  Array[x][y] = Array[x][y]-u*Array[i][y];</p><p><b>  }</b></p><p><b>  }</b></p><p&

26、gt;<b>  }</b></p><p>  for(int x=n-1;x>=0;x--) //回代</p><p><b>  {</b></p><p><b>  z=0;</b></p><p>  for(int y=x+1;y<n;y++)<

27、/p><p>  z=z+Array[x][y]*Array[y][n];</p><p>  Array[x][n]=(Array[x][n]-z)/(Array[x][x]);//計(jì)算結(jié)果</p><p><b>  }</b></p><p>  cout<<"Guss消元所得方程組的解為:&qu

28、ot;<<endl;</p><p>  for(i = 0;i<n;i++) //輸出結(jié)果</p><p>  cout<<Array[i][n]<<setw(15);</p><p>  cout<<endl;</p><p><b>  }</b></

29、p><p><b>  };//類(lèi)的結(jié)束</b></p><p>  int main()</p><p><b>  {</b></p><p><b>  Guss G;</b></p><p>  //float Array[n][n+1];<

30、;/p><p><b>  G.zgjz();</b></p><p><b>  G.Gjfc();</b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p><b&

31、gt;  1.3 運(yùn)行結(jié)果</b></p><p>  2.Romberg算法</p><p><b>  2.1模塊設(shè)計(jì)</b></p><p>  利用遞推的復(fù)合梯形公式,并結(jié)合外推加速公式的Romberg算法。</p><p><b>  功能模塊如下:</b></p>

32、<p> ?。?)輸入積分區(qū)間、精度要求;</p><p> ?。?)在源程序中利用宏定義定義函數(shù);</p><p> ?。?)利用Romberg算法計(jì)算積分并輸出結(jié)果。</p><p>  2.2 主要程序代碼</p><p>  #include<iostream.h></p><p> 

33、 #include<math.h></p><p>  #include<stdio.h></p><p>  #define f(x) pow(x,0.5)</p><p>  double T(double n,double a,double b) //函數(shù)的嵌套調(diào)用計(jì)算T0,T1,T2……</p><p>&

34、lt;b>  {</b></p><p>  double sum=0;</p><p>  for(int i=0;2*i+1<=n;i++)</p><p><b>  {</b></p><p>  sum+=f(a+double (2*i+1)*(b-a)/n);</p>&

35、lt;p><b>  }</b></p><p><b>  if(n==1) </b></p><p>  return 0.5*(f(a)+f(b))*(b-a);</p><p>  return 0.5*T(n/2,a,b)+sum*((b-a)/n);</p><p><b&g

36、t;  }</b></p><p>  void Romberg(double a,double b,double e) //龍貝格算法的實(shí)現(xiàn)</p><p><b>  {</b></p><p>  double Old[10]={0.0},New[10]={0.0};</p><p>  double

37、 h=b-a;</p><p>  New[0]=h*(f(a)+f(b))/2.0;</p><p><b>  int j;</b></p><p>  for(int i=1;;i++)</p><p><b>  {</b></p><p>  for(j=0;j&l

38、t;i;j++) </p><p>  Old[j]=New[j];</p><p>  New[0]=T(pow(2,i),a,b);</p><p>  for(j=1;j<=i;j++)</p><p>  New[j]=(pow(4,j)*New[j-1]/(pow(4,j)-1)-Old[j-1]/(pow(4,j)-1));

39、</p><p>  if(fabs(New[i]-Old[i-1])<e)</p><p><b>  break;</b></p><p><b>  }</b></p><p>  cout<<New[i]<<endl;</p><p>&

40、lt;b>  }</b></p><p>  void main()</p><p><b>  {</b></p><p>  double a,b; </p><p><b>  double e;</b></p><p>  cout<<

41、"請(qǐng)輸入積分的下、上限:";</p><p>  cin>>a>>b;</p><p>  cout<<"輸入你要的精度:";</p><p><b>  cin>>e;</b></p><p>  Romberg(a,b,e);&l

42、t;/p><p><b>  }</b></p><p><b>  2.3 運(yùn)行結(jié)果</b></p><p><b>  三、小結(jié)</b></p><p>  課程設(shè)計(jì)是我們動(dòng)手能力的表現(xiàn)。數(shù)值分析的課程設(shè)計(jì)收獲不小。在課程設(shè)計(jì)之前=感覺(jué)并不容易,數(shù)值分析是上學(xué)期學(xué)的,自己的C/

43、C++學(xué)的并不怎么樣,一般的小問(wèn)題還可以解決,從來(lái)也沒(méi)想過(guò)要用C/C++語(yǔ)言來(lái)解決數(shù)值分析上的問(wèn)題,還有并沒(méi)有用過(guò)C/C++做過(guò)真正的程序,有點(diǎn)害怕。但是,課程設(shè)計(jì)做完后,感覺(jué)還可以,C/C++蠻可以應(yīng)付這樣的數(shù)值問(wèn)題。</p><p>  課程設(shè)計(jì)中遇到的問(wèn)題:1.龍貝格算法不熟,算法設(shè)計(jì)思路不清,通過(guò)多次查閱課本和資料,才弄清楚;2.龍貝格算法設(shè)計(jì)好后,在實(shí)現(xiàn)方面,經(jīng)過(guò)多次運(yùn)行,才操作成功;</p>

44、;<p>  3.Gauss列主元素消元法在算法設(shè)計(jì)想好了,在具體實(shí)現(xiàn)時(shí),通過(guò)函數(shù)操作后返回一float數(shù)組,運(yùn)行一直出錯(cuò),最后經(jīng)過(guò)裴老師指點(diǎn),順利運(yùn)行下來(lái)。</p><p>  課程設(shè)計(jì)中的收獲:1.熟悉了數(shù)值分析中的Gauss列主元素消元法和龍貝格算法的算法設(shè)計(jì);2.運(yùn)用C/C++解決數(shù)值問(wèn)題;3.遇到困難挫折時(shí),要堅(jiān)持下去,可以尋求老師同學(xué)的幫助。</p><p>  

45、體會(huì):如果你堅(jiān)持做一件事情,全世界都會(huì)為你讓路</p><p><b>  四、參考文獻(xiàn)</b></p><p>  [1] 施吉林,劉淑珍,陳桂芝.計(jì)算機(jī)數(shù)值方法[M].第三版.北京:高等教育出版社,2009年.</p><p>  [2] 譚浩強(qiáng).C程序設(shè)計(jì)[M].第三版.北京:清華大學(xué)出版社,2005年.</p><p

溫馨提示

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