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

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  數(shù)值分析課程設(shè)計(jì)報(bào)告</p><p>  設(shè)計(jì)題4、6、8、11、12 </p><p>  姓 名 </p><p>  學(xué) 號(hào) </p><p>  院 系 數(shù)學(xué)與信息科學(xué)學(xué)院 </

2、p><p>  專 業(yè) 信息與計(jì)算科學(xué) </p><p>  年 級(jí) 2013 級(jí) </p><p>  指導(dǎo)教師 </p><p>  2016年04月25日</p><p><b>  目

3、錄</b></p><p><b>  設(shè)計(jì)題四3</b></p><p>  1.1問題分析與設(shè)計(jì)思路3</p><p><b>  1.2程序清單4</b></p><p>  1.4 結(jié)果分析7</p><p><b>  1.5設(shè)計(jì)總結(jié)

4、7</b></p><p><b>  設(shè)計(jì)題六8</b></p><p>  2.1問題分析與設(shè)計(jì)思路8</p><p><b>  2.2程序清單8</b></p><p>  2.3 運(yùn)行結(jié)果10</p><p>  2.4結(jié)果分析與設(shè)計(jì)總結(jié)10&

5、lt;/p><p><b>  設(shè)計(jì)題八11</b></p><p>  3.1問題分析與設(shè)計(jì)思路11</p><p>  3.2程序清單11</p><p>  3.3 運(yùn)行結(jié)果13</p><p>  3.4結(jié)果分析與設(shè)計(jì)總結(jié)13</p><p><b>

6、;  設(shè)計(jì)題十一14</b></p><p>  4.1問題分析與設(shè)計(jì)思路14</p><p>  4.2程序清單15</p><p>  4.3 運(yùn)行結(jié)果20</p><p>  4.4結(jié)果分析21</p><p>  設(shè)計(jì)題十二………………………………………………………………………………………

7、..22</p><p>  5.1問題分析與設(shè)計(jì)思路……………………………………………………………………22</p><p>  5.2程序清單…………………………………………………………………………………22</p><p>  5.3運(yùn)行結(jié)果…………………………………………………………………………………22</p><p>  5.4結(jié)

8、果分析…………………………………………………………………………………22</p><p>  數(shù)值分析課程設(shè)計(jì)總結(jié)22</p><p><b>  設(shè)計(jì)題四</b></p><p><b>  龍格現(xiàn)象實(shí)驗(yàn)</b></p><p>  1.1問題分析與設(shè)計(jì)思路</p><p&g

9、t;  在計(jì)算方法中,有利用多項(xiàng)式對(duì)某一函數(shù)的近似逼近,這樣,利用多項(xiàng)式就可以計(jì)算相應(yīng)的函數(shù)值。例如,在事先不知道某一函數(shù)的具體形式的情況下,只能測(cè)量得知某一些分散的函數(shù)值。例如我們不知道氣溫隨日期變化的具體函數(shù)關(guān)系,但是我們可以測(cè)量一些孤立的日期的氣溫值,并假定此氣溫隨日期變化的函數(shù)滿足某一多項(xiàng)式。這樣,利用已經(jīng)測(cè)的數(shù)據(jù),應(yīng)用待定系數(shù)法便可以求得一個(gè)多項(xiàng)式函數(shù)。應(yīng)用此函數(shù)就可以計(jì)算或者說預(yù)測(cè)其他日期的氣溫值。一般情況下,多項(xiàng)式的次數(shù)越

10、多,需要的數(shù)據(jù)就越多,而預(yù)測(cè)也就越準(zhǔn)確,這就是龍格現(xiàn)象。</p><p>  對(duì)于函數(shù)進(jìn)行拉格朗日插值, 取不同的節(jié)點(diǎn)數(shù)n,在區(qū)間[-5,5]上取等距間隔的節(jié)點(diǎn)為插值點(diǎn),把和插值多項(xiàng)式的曲線畫在同一張圖上進(jìn)行比較。</p><p><b>  1.2程序清單</b></p><p>  (1)編寫拉格朗日插值函數(shù),將其存到當(dāng)前路徑的M文件中:&

11、lt;/p><p>  function y=lagrange(x0,y0,x) </p><p>  n=length(x0);m=length(x);</p><p>  for i=1:m </p><p><b>  z=x(i); </b></p><p><b>  L=

12、0.0; </b></p><p>  for j=1:n </p><p>  T=1.0; </p><p>  for k=1:n </p><p>  if k~=j </p><p>  T=T*(z-x0(k))/(x0(j)-x0(k));

13、 </p><p><b>  end</b></p><p><b>  end</b></p><p>  L=T*y0(j)+L; </p><p><b>  end</b></p><p><b>  y(i)=L;<

14、;/b></p><p><b>  end</b></p><p> ?。?)分別取不同的n值,作出相對(duì)應(yīng)n值的插值多項(xiàng)式的曲線圖。</p><p><b>  n=4時(shí),</b></p><p>  x0=-5:10/4:5;</p><p>  y0=1./(1+

15、x0.^2);</p><p>  x=-5:0.1:5;</p><p>  y=lagrange(x0,y0,x);</p><p>  y1=1./(1+x.^2);</p><p>  plot(x,y,'-k')</p><p><b>  hold on</b><

16、/p><p>  plot(x,y,'-.r')</p><p><b>  n=6時(shí),</b></p><p>  x0=-5:10/6:5;</p><p>  y0=1./(1+x0.^2);</p><p>  x=-5:0.1:5;</p><p> 

17、 y=lagrange(x0,y0,x);</p><p>  >> y1=1./(1+x.^2);</p><p>  >> plot(x,y1,'-k')</p><p>  >> hold on</p><p>  >> plot(x,y,'--h')<

18、;/p><p><b>  n=8時(shí),</b></p><p>  x0=-5:10/8:5;</p><p>  y0=1./(1+x0.^2);</p><p>  x=-5:0.1:5;</p><p>  y=lagrange(x0,y0,x);</p><p>  y

19、1=1./(1+x.^2);</p><p>  plot(x,y1,'-k')</p><p><b>  hold on</b></p><p>  plot(x,y,'--g')</p><p><b>  n=10時(shí),</b></p><p

20、>  x0=-5:1:5;</p><p>  y0=1./(1+x0.^2);</p><p>  x=-5:0.1:5;</p><p>  y=lagrange(x0,y0,x);</p><p>  y1=1./(1+x.^2);</p><p>  plot(x,y1,'-k')<

21、/p><p><b>  hold on</b></p><p>  plot(x,y,'--m')</p><p><b>  1.3 結(jié)果分析</b></p><p><b>  1.4設(shè)計(jì)總結(jié)</b></p><p>  上述現(xiàn)象及結(jié)果

22、告訴我們,在進(jìn)行數(shù)值計(jì)算時(shí),并不是插值多項(xiàng)式的次數(shù)越高(即插值節(jié)點(diǎn)越多),插值效果越好,精度也不一定隨次數(shù)的提高而升高,這種現(xiàn)象稱為Runge現(xiàn)象。從數(shù)值計(jì)算上可解釋為高次插值多項(xiàng)式的計(jì)算會(huì)帶來舍入誤差的增大,從而引起計(jì)算失真。因此,實(shí)際應(yīng)用做插值時(shí)一般只用一次、二次最多用三次插值多項(xiàng)式。</p><p><b>  設(shè)計(jì)題六</b></p><p>  函數(shù)逼近Ma

23、tlab實(shí)現(xiàn)及其應(yīng)用</p><p>  2.1問題思路與設(shè)計(jì)思路</p><p>  在數(shù)值計(jì)算中經(jīng)常要計(jì)算函數(shù)值,如計(jì)算機(jī)中計(jì)算基本初等函數(shù)及其他特殊函數(shù);當(dāng)函數(shù)只在有限點(diǎn)集上給定函數(shù)值,要在包含該點(diǎn)集的區(qū)間上用公式給出函數(shù)的簡(jiǎn)單表達(dá)式,這些都涉及在區(qū)間[a,b]上用簡(jiǎn)單函數(shù)逼近已知復(fù)雜函數(shù)的問題,這就是函數(shù)逼近問題。常用的有最佳平方逼近、最小二乘法。</p><p

24、><b>  2.2程序清單</b></p><p>  (1)最佳平方逼近:</p><p>  legendre(N)函數(shù):</p><p>  function p=legendre(N)</p><p>  syms t x;%定義符號(hào)變量t x</p><p><b> 

25、 for n=1:N</b></p><p>  pp(n)=diff((t^2-1)^(n-1),n-1);%diff函數(shù),求函數(shù)的n階導(dǎo)數(shù)</p><p>  Q(n)=2^(n-1)*prod([1:n-1]);%prod函數(shù),計(jì)算數(shù)組元素的連乘積</p><p><b>  end</b></p><p&

26、gt;<b>  pp(1)=1;</b></p><p><b>  Q=sym(Q);</b></p><p>  p=pp*(inv(diag(Q)));</p><p>  用M文件建立被逼近函數(shù):</p><p>  function F=creat(x)</p><p

27、>  n=length(x);</p><p>  F=x.*cos(x(1:n));</p><p><b>  區(qū)間變換函數(shù)程序:</b></p><p>  function f=convert(a,b,F)</p><p><b>  syms x t;</b></p>

28、<p>  s=2\((b-a)*t+a+b);</p><p>  f=subs(F,x,s);</p><p>  變步長(zhǎng)復(fù)化梯形求積公式:</p><p>  function I=tx(g)</p><p><b>  m=1;</b></p><p><b>  h=

29、1-(-1);</b></p><p>  T=zeros(1,100);</p><p>  T(1)=h*(feval(g,-1)+feval(g,1))/2;</p><p><b>  i=1;</b></p><p>  while i<100</p><p><

30、b>  m=2*m;</b></p><p><b>  h=h/2;</b></p><p><b>  s=0;</b></p><p>  for k=1:m/2</p><p>  x=-1+h*(2*k-1);</p><p>  s=s+feva

31、l(g,x);</p><p><b>  end</b></p><p>  T(i+1)=T(i)/2+h*s;</p><p>  if abs(T(i+1)-T(i))<0.00001</p><p><b>  I=T(i+1);</b></p><p>&l

32、t;b>  break;</b></p><p><b>  end</b></p><p><b>  i=i+1;</b></p><p><b>  end</b></p><p>  最佳平法逼近函數(shù)leastp:</p><p&g

33、t;  function [c s]=leastp(a,b,N)</p><p><b>  syms t x;</b></p><p>  F=creat(x);</p><p>  p=legendre(N);</p><p>  f=convert(a,b,F);</p><p>  f=p

34、*diag(f);</p><p><b>  for i=1:N</b></p><p>  g=inline(f(i));</p><p><b>  I=tx(g);</b></p><p><b>  u(i)=I;</b></p><p>  

35、Q(i)=2\(2*(i-1)+1);</p><p><b>  end</b></p><p><b>  Q=sym(Q);</b></p><p>  c=double(u*diag(Q));</p><p><b>  S=c*p';</b></p>

36、;<p>  s=subs(S,t,(2*x-a-b)/(b-a));</p><p>  subplot(211),</p><p>  ezplot(s,[a:0.01:b]);</p><p>  subplot(212),</p><p>  ezplot(F,[a,b]);</p><p>  

37、在命令窗口輸入以下代碼:</p><p>  a=0;b=4;N=2;</p><p>  [c s]= leastp(a,b,N);</p><p>  a=0;b=4;N=4; </p><p>  [c s]= leastp(a,b, N);</p><p>  a=0;b=4;N=7;</p>&

38、lt;p>  [c s]= leastp(a,b, N);</p><p><b> ?。?)最小二乘法</b></p><p>  x=[1:1:30]; y=[9,10,11,12,13,14,13,12,11,9,10,11,12,13,14,12,11,10,9,8,7,8,9,11,9,7,6,5,3,1]; a1=polyfit(x,y,3)

39、 </p><p>  a2= polyfit(x,y,9) </p><p>  a3= polyfit(x,y,15) </p><p>  b1=polyval(a1,x) </p><p>  b2= polyval(a2,x) </p><p>  b3= poly

40、val(a3,x) </p><p>  r1= sum((y-b1).^2) </p><p>  r2= sum((y-b2).^2) </p><p>  r3= sum((y-b3).^2) </p><p><b>  2.3結(jié)果分析</b></p&

41、gt;<p><b> ?。?)最佳平方逼近</b></p><p><b>  N=2時(shí),</b></p><p><b>  N=4時(shí),</b></p><p><b>  N=7時(shí), </b></p><p><b> ?。?

42、)最小二乘法</b></p><p><b>  在命令窗口輸入:</b></p><p>  plot(x,y,'*') </p><p>  hold on plot(x,b1, 'r') </p><p>  hold on plo

43、t(x,b2, 'g') </p><p>  hold on plot(x,b3, 'b:o') </p><p><b>  運(yùn)行結(jié)果:</b></p><p><b>  2.4設(shè)計(jì)總結(jié)</b></p><p>  通過本次實(shí)驗(yàn),我不僅對(duì)從前

44、所學(xué)的數(shù)值線性代數(shù)的知識(shí)有了一定的復(fù)習(xí)和理解,包括最小二乘法,擬合數(shù)據(jù),擬合多項(xiàng)式等有了更好的把握,并且練習(xí)了如何更準(zhǔn)確和熟練地使用Matlab 軟件,該款軟件非常適用于計(jì)算量大的問題,不僅簡(jiǎn)單易學(xué)而且編程效率高。它包含很多軟件包,方便又實(shí)用。當(dāng)然,我在實(shí)驗(yàn)過程中也遇到了不少問題,但是在同學(xué)的幫助下都得到了妥善的解決,我認(rèn)為,此次最大的收獲并不是解決了某一個(gè)問題和認(rèn)識(shí)了一個(gè)軟件,而是教會(huì)我們?nèi)绾巫约喝チ私夂蛯W(xué)習(xí)使用計(jì)算工具,這

45、對(duì)我們今后的學(xué)習(xí)和工作有很大的幫助。</p><p><b>  設(shè)計(jì)題八</b></p><p>  常見數(shù)值積分方法的Matlab實(shí)現(xiàn)及其應(yīng)用</p><p>  3.1 問題思路與設(shè)計(jì)思路</p><p>  實(shí)際問題當(dāng)中常常需要計(jì)算積分,有些數(shù)值方法,如微分方程和積分方程的求解,也都和積分計(jì)算相聯(lián)系。依據(jù)人們所熟

46、知的微積分基本定理,對(duì)于積分只要找到被積函數(shù)f(x)的原函數(shù)F(x),便有牛頓—萊布尼茨公式:但實(shí)際使用這種求積方法往往有困難,因?yàn)橛写罅康谋环e函數(shù)其原函數(shù)不能用初等函數(shù)表達(dá),故不能用上述公式計(jì)算,因此有必要研究積分的數(shù)值計(jì)算問題。但實(shí)際使用這種求積方法往往有困難,因?yàn)橛写罅康谋环e函數(shù)其原函數(shù)不能用初等函數(shù)表達(dá),故不能用上述公式計(jì)算,因此有必要研究積分的數(shù)值計(jì)算問題。數(shù)值求積方法是近似方法,為要保證精度,我們自然希望求積公式能對(duì)盡可能

47、多的函數(shù)準(zhǔn)確的成立,這就提出了所謂代數(shù)精度的概念:如果某個(gè)求積公式對(duì)于次數(shù)不超過m的多項(xiàng)式均能準(zhǔn)確的成立,但對(duì)于m+1次多項(xiàng)式就不準(zhǔn)確成立,則稱該求積公式具有m次代數(shù)精度。構(gòu)造數(shù)值積分公式最通常的方法是用積分區(qū)間上的n 次插值多項(xiàng)式代替被積函數(shù),由此導(dǎo)出的求積公式稱為插值型求積公式。</p><p><b>  3.2 程序清單</b></p><p>  復(fù)合辛普森

48、公式求解: </p><p>  function s=xinpusen(fun,a,b,n)</p><p><b>  h=(b-a)/n</b></p><p>  s1=0;s2=0;</p><p>  for k=0:(n-1)</p><p><b>  x=a+h*k;&

49、lt;/b></p><p>  s1=s1+feval(fun,x);</p><p><b>  end</b></p><p>  for k=0:(n-1)</p><p>  x=a+h*(k+1/2);</p><p>  s2=s2+feval(fun,x);</p>

50、;<p><b>  end</b></p><p>  s=h/6*(feval(fun,a)+feval(fun,b)+2*s1+4*s2);</p><p><b>  高斯求積公式求解:</b></p><p>  function g=gaosi(fname,a,b,n,m) </p>

51、<p>  switch m </p><p>  case 1 </p><p><b>  t=0;</b></p><p><b>  A=1; </b></p><p>  case 2 </p><p>  t

52、=[-1/sqrt(3),1/sqrt(3)];</p><p>  A=[1,1]; </p><p>  case 3 </p><p>  t=[-sqrt(0.6),0.0,sqrt(0.6)];</p><p>  A=[5/9,8/9,5/9]; </p><p>  case 4

53、 </p><p>  t=[-0.8612136,-0.339981,0.339981,0.861136]; </p><p>  A=[0.347855,0.652145,0.652145,0.347855]; </p><p>  case 5 </p><p>  t=[-0.906180,-

54、0.538469,0.0,0.538469,0.906180]; </p><p>  A=[0.236927,0.478629,0.568889,0.478629,0.236927]; </p><p>  case 6 </p><p>  t=[-0.932470,-0.661209,-0.238619,0.238619,0.66120

55、9,0.932470]; </p><p>  A=[0.171325,0.360762,0.467914,0.467914,0.360762,0.171325]; </p><p><b>  otherwise</b></p><p><b>  error</b></p><p><b&

56、gt;  end</b></p><p>  x=linspace(a,b,n+1);</p><p><b>  g=0;</b></p><p><b>  for i=1:n</b></p><p>  g=g+gsint(fname,x(i),x(i+1),A,t);</p

57、><p><b>  end</b></p><p>  function g=gsint(fname,a,b,A,t) </p><p>  g=(b-a)/2*sum(A.*feval(fname,(b-a)/2*t+(a+b)/2));</p><p>  龍貝格求積公式求解:</p><p>

58、;  function[t]=romberg(f,a,b,e) </p><p>  t=zeros(15,4); </p><p>  t(1,1)=(b-a)/2*(f(a)+f(b)); </p><p>  for k=2:4 </p

59、><p><b>  sum=0;</b></p><p>  for i=1:2^(k-2)</p><p>  sum=sum+f(a+(2*i-1)*(b-a)/2^(k-1));</p><p><b>  end</b></p><p>  t(k,1)=0.5*t(k

60、-1,1)+(b-a)/2^(k-1)*sum;</p><p><b>  for i=2:k</b></p><p>  t(k,i)=(4^(i-1)*t(k,i-1)-t(k-1,i-1))/(4^(i-1)-1);</p><p><b>  end</b></p><p><b&g

61、t;  end</b></p><p>  for k=5:15 </p><p><b>  sum=0;</b></p><p>  for i=1:2^(k-2)</p><p>  sum=sum+f(a+(2*i-1)*(b-a)/2^(k-1));</p

62、><p><b>  end</b></p><p>  t(k,1)=0.5*t(k-1,1)+(b-a)/2^(k-1)*sum;</p><p><b>  for i=2:4</b></p><p>  t(k,i)=(4^(i-1)*t(k,i-1)-t(k-1,i-1))/(4^(i-1)-

63、1);</p><p><b>  end </b></p><p>  if k>6 </p><p>  if abs(t(k,4)-t(k-1,4))<e </p><p>  disp([num2str(t(k,4))]); </p><

64、;p><b>  break;</b></p><p><b>  end</b></p><p><b>  end</b></p><p><b>  end</b></p><p><b>  if k>=15</b>

65、;</p><p>  disp(['溢出']); </p><p><b>  end</b></p><p><b>  3.3 結(jié)果分析</b></p><p><b>  復(fù)合辛普森公式</b></p><p>  在命令窗

66、口輸入:fun=inline(‘1./(1+x.^2)’);</p><p>  xinpusen(fun,01,10)</p><p><b>  運(yùn)行結(jié)果如下:</b></p><p><b>  高斯求解高斯</b></p><p>  在命令窗口輸入:gaosi(inline(‘1./(1+

67、x.^2)’),0,1,2,3)</p><p><b>  運(yùn)行結(jié)果如下:</b></p><p><b>  龍貝格求積公式</b></p><p><b>  運(yùn)行結(jié)果如下:</b></p><p><b>  3.4 設(shè)計(jì)總結(jié)</b></p&

68、gt;<p>  實(shí)驗(yàn)結(jié)果顯示每一個(gè)算法都接近真實(shí)值,但龍貝格算法相比較復(fù)合辛普森算法,高斯算法來說更加接近.對(duì)于代數(shù)精度來說,復(fù)合辛普森的代數(shù)精度為11,龍貝格代數(shù)精度為11,高斯代數(shù)精度為11??梢姶鷶?shù)精度相同時(shí),龍貝格的求積精度最小,所以相同條件下龍貝格求積公式最能接近準(zhǔn)確值。這次課程設(shè)計(jì),用MATLAB實(shí)驗(yàn)對(duì)數(shù)值積分進(jìn)行了實(shí)現(xiàn),用了3種不同的數(shù)值積分的方法,實(shí)現(xiàn)過程中發(fā)現(xiàn)了各種方法之間的區(qū)別和聯(lián)系.并且在實(shí)驗(yàn)過程中

69、,使自己對(duì)數(shù)值積分和MATLAB更加的熟悉.做到了學(xué)習(xí)和實(shí)踐相聯(lián)系。</p><p><b>  設(shè)計(jì)題十一 </b></p><p>  非線性方程的數(shù)值解法的Matlab實(shí)現(xiàn)及其應(yīng)用 </p><p>  4.1 問題思路與設(shè)計(jì)思路</p><p>  非線性是實(shí)際問題中經(jīng)常出現(xiàn)的,并且在科學(xué)與工程計(jì)算中的地位越來越

70、重要,很多我們熟悉的線性模型都是在一定條件下由非線性問題簡(jiǎn)化得到的。非線性問題一般不存在直接的求解公式,故沒有直接方法求解,都要使用迭代法求解,迭代法要求先給出根的一個(gè)近似,若且,根據(jù)連續(xù)函數(shù)性質(zhì)可知在內(nèi)至少有一個(gè)實(shí)根,這時(shí)稱為方程的有根區(qū)間,通常可通過逐次搜索法求得方程的有根區(qū)間。對(duì)于方程,如果是線性函數(shù),則它的求根是容易的。牛頓法實(shí)質(zhì)上是一種線性化方法,其基本思想是將非線性方程逐步歸結(jié)為某種線性方程來求解。設(shè)已知方程有近似根,將函數(shù)

71、在點(diǎn)展開,有,于是方程可近似地表示為: ,這是個(gè)線性方程</p><p>  記其根為 ,則 的計(jì)算公式為: ,這就是牛頓法。二分法的基本思想是將方程根的區(qū)間平分為兩個(gè)小區(qū)間,把有根的小區(qū)間再平分為兩個(gè)更小的區(qū)間,進(jìn)一步考察根在哪個(gè)更小的區(qū)間內(nèi)。如此繼續(xù)下去,直到求出滿足精度要求的近似值。</p><p><b>  4.2 程序清單</b></p>&

72、lt;p>  迭代法:求方程的一個(gè)近似解,給定初值為,誤差不超過。</p><p>  function[p,k,err,P]=fixpt(f1021,p0,tol,max1)</p><p>  P(1) = p0; </p><p>  for k = 2:max1 </p><p>  P(k) = feval

73、('f1021', P(k-1)); </p><p>  k, err = abs(P(k) - P(k-1)) </p><p>  p = P(k); </p><p>  if(err<tol), </p><p><b>  break;

74、 </b></p><p><b>  end</b></p><p>  if k == max1 </p><p>  disp('maximum number of iterations exceeded'); </p><p><b>  end<

75、;/b></p><p><b>  end</b></p><p><b>  P=P;</b></p><p>  定義一個(gè)名為f1021.m的函數(shù)文件</p><p>  function y = f1021(x) </p><p>  y = sin(x

76、)/x;</p><p>  割線法:求方程的一個(gè)近似解,給定初值-1.5,-1.52,誤差不超過。</p><p>  function [p1, err, k, y] = secant(f1042, p0, p1, delta, max1) </p><p>  p0, p1, feval('f1042', p0), feval('f10

77、42',p1), k = 0; </p><p>  for k = 1:max1</p><p>  p2 = p1 - feval('f1042',p1)*(p1-p0)/(feval('f1042',p1) - feval('f1042',p0)); </p><p>  err = abs(p

78、2-p1); </p><p>  p0 = p1; </p><p>  p1 = p2; </p><p>  p1, err, k, y = feval('f1042', p1); </p><p>  if (err < delta) | (y == 0),</p>&

79、lt;p>  break, </p><p><b>  end</b></p><p><b>  end</b></p><p>  先定義一個(gè)名為f1042.m的函數(shù)文件</p><p>  function y = f1042(x) </p><

80、;p>  y = x^3-x + 2;</p><p>  建立一個(gè)主程序prog1042.m</p><p><b>  clc</b></p><p><b>  clear</b></p><p>  secant(‘f1042’,-1.5,-1.52,10^(-6),11)</p

81、><p>  牛頓法:求解方程的一個(gè)近似解,給定初值為1.2,誤差不超過。</p><p>  function [p1,err,k,y]=newton(f1041,df1041,p0,delta,max1) </p><p>  p0, feval('f1041',p0) </p><p>  for k=1:max1

82、 </p><p>  p1=p0-feval('f1041',p0)/feval('df1041',p0); </p><p>  err=abs(p1-p0); </p><p>  p0=p1; </p><p>  p1,err,k,y=feval('

83、;f1041', p1) </p><p>  if (err < delta)| (y == 0), </p><p>  break, </p><p><b>  end</b></p><p>  p1,err,k,y=feval('f104

84、1', p1)</p><p><b>  end</b></p><p>  先用m文件定義兩個(gè)名為f1014.m和df1041.m的函數(shù)文件</p><p>  function y=f1041(x) </p><p>  y=x^4-4*x+2;</p><p>  func

85、tion y=df1041(x)</p><p>  y=4*x^3-4;</p><p>  建立一個(gè)主程序prog1041.m</p><p><b>  clear</b></p><p>  newton(‘f1041’,’df1041’,1.2,10^(-6),18)</p><p>&

86、lt;b>  二分法:</b></p><p>  function er_fen(f,a,b,esp);</p><p>  f1=subs(f,a);</p><p>  f2=subs(f,b);</p><p>  if f1*f2>0</p><p>  disp('該方程在【

87、a,b】上無解');</p><p>  elseif f1==0</p><p><b>  root=a;</b></p><p>  elseif f2==0</p><p><b>  root=b;</b></p><p><b>  else&l

88、t;/b></p><p><b>  a0=a;</b></p><p><b>  b0=b;</b></p><p><b>  A=[];</b></p><p>  while abs((b0-a0)/2)>=esp</p><p>

89、;  half=(a0+b0)/2;</p><p>  fa=subs(f,a0);</p><p>  fb=subs(f,b0);</p><p>  fhalf=subs(f,half);</p><p>  if fhalf==0</p><p>  root=half;</p><p&g

90、t;<b>  break;</b></p><p>  elseif fa*fhalf<0</p><p><b>  b0=half;</b></p><p><b>  else</b></p><p><b>  a0=half;</b>&l

91、t;/p><p><b>  end </b></p><p>  A=[A,half];</p><p><b>  end</b></p><p>  root=(b0+a0)/2;</p><p><b>  end</b></p>

92、<p><b>  root</b></p><p><b>  A</b></p><p><b>  4.3 結(jié)果分析</b></p><p><b>  迭代法:</b></p><p><b>  在命令窗口輸入:</b&

93、gt;</p><p><b>  clc</b></p><p><b>  clear all</b></p><p>  fixpt(‘f1021’,0.5,10^(-5),20)</p><p><b>  運(yùn)行結(jié)果如下:</b></p><p>

94、;<b>  k = 2</b></p><p>  err =0.4589</p><p><b>  k = 3</b></p><p>  err = 0.1052</p><p><b>  k = 4</b></p><p>  err = 0

95、.0292</p><p><b>  k =5</b></p><p>  err = 0.0078</p><p><b>  k = 6</b></p><p>  err = 0.0021</p><p><b>  k = 7</b></

96、p><p>  err = 5.7408e-004</p><p><b>  k = 8</b></p><p>  err = 1.5525e-004</p><p><b>  k = 9</b></p><p>  err = 4.1975e-005</p>

97、<p><b>  k = 10</b></p><p>  err =1.1350e-005</p><p><b>  k =11</b></p><p>  err =3.0688e-006</p><p>  ans =0.8767</p><p><

98、;b>  割線法:</b></p><p>  在命令窗口輸入:clc</p><p><b>  clear </b></p><p>  secant('f1042',-1.5,-1.52,10^(-6),11)</p><p><b>  運(yùn)行結(jié)果如下:</b>

99、;</p><p>  p0 =-1.5000</p><p>  p1 =-1.5200</p><p>  ans =0.1250</p><p>  ans =0.0082</p><p>  p1 =-1.5214</p><p>  err = 0.0014</p>&l

100、t;p><b>  k = 1</b></p><p>  p1 =-1.5214</p><p>  err =2.2961e-005</p><p><b>  k =2</b></p><p>  p1 =-1.5214</p><p>  err =2.431

101、8e-008</p><p><b>  k =3</b></p><p>  ans = -1.5214</p><p><b>  牛頓法:</b></p><p>  在命令窗口輸入:clear </p><p>  newton('f1041',&#

102、39;df1041',1.2, 10^(-6), 18)</p><p><b>  運(yùn)行結(jié)果如下:</b></p><p>  p0 =1.2000</p><p>  ans =-0.7264</p><p>  p1 =1.4495</p><p>  err =0.2495<

103、/p><p><b>  k =1</b></p><p>  y = 0.6160</p><p>  p1 =1.4495</p><p>  err = 0.2495</p><p><b>  k =1</b></p><p>  y = 0.61

104、60</p><p>  p1 =1.3741</p><p>  err = 0.0753</p><p><b>  k =2</b></p><p>  y = 0.0690</p><p>  p1 = 1.3741</p><p>  err = 0.0753&l

105、t;/p><p><b>  k = 2</b></p><p><b>  y =0.0690</b></p><p>  p1 =1.3633</p><p>  err = 0.0108</p><p><b>  k = 3</b></p>

106、;<p><b>  y =0.0013</b></p><p>  p1 = 1.3633</p><p>  err = 0.0108</p><p><b>  k = 3</b></p><p><b>  y =0.0013</b></p>

107、<p>  p1 = 1.3631</p><p>  err =2.1510e-004</p><p><b>  k = 4</b></p><p>  y =5.1591e-007</p><p>  p1 =1.3631</p><p>  err =2.1510e-004&l

108、t;/p><p><b>  k =4</b></p><p>  y =5.1591e-007</p><p>  p1 = 1.3631</p><p>  err = 8.4146e-008</p><p><b>  k = 5</b></p><p&

109、gt;  y = 7.9048e-014</p><p>  ans = 1.3631</p><p><b>  二分法:</b></p><p>  在命令窗口輸入:syms x;er_fen(sin(x),-2,1,1.0e-2)</p><p><b>  運(yùn)行結(jié)果如下:</b></p

110、><p><b>  4.4 設(shè)計(jì)總結(jié)</b></p><p>  求解非線性方程的問題有以下幾種基本方法。二分法簡(jiǎn)單易行,但收斂較慢,僅有線性收斂速度。而且該方法不能用于求偶數(shù)重根或復(fù)根,但可以用來確定迭代法的初始值。牛頓法是方程求根中常用的一種迭代方法,它除了具有簡(jiǎn)單迭代法的優(yōu)點(diǎn)外,還具有二階收斂速度(在單根鄰近處)的特點(diǎn),但牛頓法對(duì)初始值選取比較苛刻(必須充分靠近方

111、程的根)否則牛頓法可能不收斂。根據(jù)二分法求解非線性方程根的原理,將所求方程根所在的區(qū)間平分為兩個(gè)小區(qū)間,在判斷根屬于哪個(gè)小區(qū)間;把有根的小區(qū)間再平分為二,再判斷根所在的更小的區(qū)間對(duì)分;重復(fù)這一過程,最后求出所要的近似值。當(dāng)所分的小區(qū)間的間距越小的時(shí)候,得出的方程根結(jié)果就越精確,其原因就是所分的小區(qū)間間距越小,則就越接近方程等于0的根。所以最后的結(jié)果的精度越高,得到的誤差越??;而對(duì)于簡(jiǎn)單迭代法,只有在滿足一定條件的情況下,才能求解出在區(qū)間

112、上有唯一根使迭代序列收斂于。根據(jù)牛頓迭代法的原理,求解出非線性方程根的結(jié)果可以看出,牛頓迭代法具有平方收斂的速度,所以在迭代過程中只要迭代幾次就會(huì)得到比較精確的解,并不像簡(jiǎn)單迭代法,需要迭代多次才能解出較為精確的結(jié)果,但是用牛頓迭代法求解時(shí)選定的初值要接</p><p><b>  設(shè)計(jì)題十二 </b></p><p>  常微分方程的數(shù)值解法及Matlab實(shí)現(xiàn)

113、</p><p>  5.1 問題思路與設(shè)計(jì)思路</p><p>  歐拉方法是解常微分方程初值問題最簡(jiǎn)單最古老的一種數(shù)值方法,其基本思路就是把中的導(dǎo)數(shù)項(xiàng)用差商逼近,從而將一個(gè)微分方程轉(zhuǎn)化為一個(gè)代數(shù)方程,以便求解。</p><p>  龍格-庫(kù)塔方法的基本思路是想辦法計(jì)算f(x,y)在某些點(diǎn)上的函數(shù)值,然后對(duì)這些函數(shù)值做數(shù)值線性組合,構(gòu)造出一個(gè)近似的計(jì)算公式;再把近

114、似的計(jì)算公式和解的泰勒展開式相比較,使得前面的若干項(xiàng)相吻合,從而達(dá)到較高的精度。</p><p><b>  5.2 程序清單</b></p><p><b> ?。?)歐拉法:</b></p><p>  創(chuàng)建M文件euler.m</p><p>  function [x,y]=euler1(f

115、un,x0,xfinal,y0,n)</p><p>  if nargin<5,n=50;</p><p><b>  end</b></p><p>  h=(xfinal-x0)/n;</p><p>  x(1)=x0;y(1)=y0;</p><p><b>  for

116、i=1:n</b></p><p>  x(i+1)=x(i)+h;</p><p>  y(i+1)=y(i)+h*feval(fun,x(i),y(i));</p><p><b>  end</b></p><p>  定義函數(shù)方程組中的函數(shù)f1,創(chuàng)建f1.m文件</p><p>

117、;  function f=f1(x,y)</p><p><b>  f=y-2*x/y</b></p><p>  在matlab命令窗口輸入:</p><p>  (2)龍格-庫(kù)塔方法:</p><p>  function [ ] = LGKT(h,x0,y0,X,Y)</p><p> 

118、 format long </p><p>  h=input('h='); </p><p>  x0=input('x0='); </p><p>  y0=input('y0=');</p><p>  disp('輸入的范圍是:');</p><p&g

119、t;  X=input('X=');Y=input('Y=');</p><p>  n=round((Y-X)/h); </p><p>  i=1;x1=0;k1=0;k2=0;k3=0;k4=0;</p><p>  for i=1:1:n </p><p><b>  x1=x0+h;<

120、;/b></p><p>  k1=-x0*y0^2; </p><p>  k2=(-(x0+h/2)*(y0+h/2*k1)^2); </p><p>  k3=(-(x0+h/2)*(y0+h/2*k2)^2);</p><p>  k4=(-(x1)*(y0+h*k3)^2);</p><p>  y1=

121、y0+h/6*(k1+2*k2+2*k3+k4);</p><p>  x0=x1;y0=y1;</p><p>  y=2/(1+x0^2); </p><p>  fprintf('結(jié)果=%.3f,%.7f,%.7f\n',x1,y1,y); </p><p><b>  end</b></p

122、><p><b>  end</b></p><p><b>  5.3 結(jié)果分析</b></p><p><b> ?。?)歐拉法</b></p><p>  在matlab命令窗口輸入:</p><p>  plot(x,y,'r*-‘,x,sq

123、rt(1+2*x),’g+--‘;xlabel(‘x’);ylabel(‘y’);title(‘y’=y-2x/y’);legend(‘?dāng)?shù)值解’,’精確解’)</p><p><b>  運(yùn)行結(jié)果如下:</b></p><p><b>  (2)龍格-庫(kù)塔法</b></p><p>  在命令窗口輸入:LGKT</p

124、><p><b>  h=0.25</b></p><p><b>  x0=0</b></p><p><b>  y0=2</b></p><p>  運(yùn)行結(jié)果如下: LGKT</p><p><b>  h=0.25</b>&

125、lt;/p><p><b>  x0=0</b></p><p><b>  y0=2</b></p><p><b>  h=0.25</b></p><p><b>  x0=0</b></p><p><b>  y0=

126、2</b></p><p><b>  輸入的范圍是:</b></p><p><b>  X=0</b></p><p><b>  Y=5</b></p><p>  結(jié)果=0.250,1.8823080,1.8823529</p><p&g

127、t;  結(jié)果=0.500,1.5998962,1.6000000</p><p>  結(jié)果=0.750,1.2799478,1.2800000</p><p>  結(jié)果=1.000,1.0000271,1.0000000</p><p>  結(jié)果=1.250,0.7805556,0.7804878</p><p>  結(jié)果=1.500,0.6

128、154594,0.6153846</p><p>  結(jié)果=1.750,0.4923742,0.4923077</p><p>  結(jié)果=2.000,0.4000543,0.4000000</p><p>  結(jié)果=2.250,0.3299396,0.3298969</p><p>  結(jié)果=2.500,0.2758952,0.2758621

129、</p><p>  結(jié)果=2.750,0.2336023,0.2335766</p><p>  結(jié)果=3.000,0.2000200,0.2000000</p><p>  結(jié)果=3.250,0.1729886,0.1729730</p><p>  結(jié)果=3.500,0.1509558,0.1509434</p><

130、p>  結(jié)果=3.750,0.1327899,0.1327801</p><p>  結(jié)果=4.000,0.1176550,0.1176471</p><p>  結(jié)果=4.250,0.1049245,0.1049180</p><p>  結(jié)果=4.500,0.0941229,0.0941176</p><p>  結(jié)果=4.750,

131、0.0848850,0.0848806</p><p>  結(jié)果=5.000,0.0769267,0.0769231</p><p><b>  5.4 設(shè)計(jì)總結(jié)</b></p><p>  常微分方程在科學(xué)技術(shù)和工程中占有重要的地位,這里主要應(yīng)用的是歐拉方法、龍格-庫(kù)塔法。它們都是都是采用單步法求常微分方程的數(shù)值解。從構(gòu)造過程看來,它們互相聯(lián)

132、系,但它們又互有差異,它們的精度不同,在每步的迭代過程產(chǎn)生的誤差不一樣。一般來說,歐拉方法較大,而龍格-庫(kù)塔法法產(chǎn)生的誤差較小。因此,我們可以根據(jù)實(shí)際的需要,采取不同的方法求常微分方程的數(shù)值解。</p><p>  數(shù)值分析課程設(shè)計(jì)總結(jié)</p><p>  通過此次課程設(shè)計(jì),使我更加扎實(shí)的掌握了MATLAB方面的知識(shí),在設(shè)計(jì)過程中雖然遇到了一些問題,但經(jīng)過一次又一次的思考,一遍又一遍的檢查

133、終于找出了原因所在,也暴露出了前期我在這方面的知識(shí)欠缺和經(jīng)驗(yàn)不足。實(shí)踐出真知,通過親自動(dòng)手制作,使我們掌握的知識(shí)不再是紙上談兵。由于能力有限,部分功能尚未實(shí)現(xiàn),但是我想至少我做了,也掌握了不少課外的知識(shí)。 過而能改,善莫大焉。在課程設(shè)計(jì)過程中,我們不斷發(fā)現(xiàn)錯(cuò)誤,不斷改正,不斷領(lǐng)悟,不斷獲取。最終的檢測(cè)調(diào)試環(huán)節(jié),本身就是在踐行“過而能改,善莫大焉”的知行觀。這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多問題,最后在老師的指導(dǎo)下,終于游逆

134、而解。在今后社會(huì)的發(fā)展和學(xué)習(xí)實(shí)踐過程中,一定要不懈努力,不能遇到問題就想到要退縮,一定要不厭其煩的發(fā)現(xiàn)問題所在,然后一一進(jìn)行解決,只有這樣,才能成功的做成想做的事,才能在今后的道路上劈荊斬棘,而不是知難而退,那樣永遠(yuǎn)不可能收獲成功,收獲喜悅,也永遠(yuǎn)不可能得到社會(huì)及他人對(duì)你的認(rèn)可! 課程設(shè)計(jì)誠(chéng)然是一門專業(yè)課,給我很多專業(yè)知識(shí)以及專業(yè)技能上的提升,同時(shí)又是一門講道課,一門辯思課,給了我許多道,給了我很多思,給了我莫大的空間。</p&

135、gt;<p>  我認(rèn)為,在這學(xué)期的課程設(shè)計(jì)中,不僅培養(yǎng)了獨(dú)立思考、動(dòng)手操作的能力,在各種其它能力上也都有了提高。更重要的是,在實(shí)驗(yàn)課上,我們學(xué)會(huì)了很多學(xué)習(xí)的方法。而這是日后最實(shí)用的,真的是受益匪淺。要面對(duì)社會(huì)的挑戰(zhàn),只有不斷的學(xué)習(xí)、實(shí)踐,再學(xué)習(xí)、再實(shí)踐。這對(duì)于我們的將來也有很大的幫助。</p><p>  回顧起此課程設(shè)計(jì),至今我仍感慨頗多,從理論到實(shí)踐,在這段日子里,可以說得是苦多于甜,但是可以

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論