數(shù)值分析課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  本科生課程論文</b></p><p>  題 目: 數(shù)值分析課程設(shè)計(jì) </p><p>  姓 名: </p><p>  學(xué) 院: 理學(xué)與信息科學(xué)學(xué)院 </p>&l

2、t;p>  專 業(yè): 信息與計(jì)算科學(xué)專業(yè) </p><p>  班 級(jí): </p><p>  學(xué) 號(hào): </p><p>  指導(dǎo)教師:

3、 </p><p>  完成時(shí)間: 2011年12月23日 </p><p>  二○一一年十二月二十三日</p><p>  課 程 論 文 任 務(wù) 書</p><p>  論文題目 數(shù)值分析課程設(shè)計(jì) </p

4、><p>  論文內(nèi)容(需明確列出研究的問(wèn)題): 運(yùn)用MATLAB數(shù)學(xué)軟件設(shè)計(jì)出數(shù)值分析的求拉格朗日插值多項(xiàng)式和牛頓插值多項(xiàng)式以及Polyfit多項(xiàng)函數(shù)擬合來(lái)求的擬合曲線和列主元Guass消去法解方程組。 </p><p>  

5、資料、數(shù)據(jù)、技術(shù)水平等方面的要求:論文要符合一般學(xué)術(shù)論文的寫作規(guī)范,具備學(xué)術(shù)性、科學(xué)性和一定的創(chuàng)造性。文字要流暢、語(yǔ)言要準(zhǔn)確、論點(diǎn)要清楚、論據(jù)要準(zhǔn)確、論證要完整、嚴(yán)密,有獨(dú)立的觀點(diǎn)和見(jiàn)解。內(nèi)容要理論聯(lián)系實(shí)際,計(jì)算數(shù)據(jù)要求準(zhǔn)確,涉及到他人的觀點(diǎn)、統(tǒng)計(jì)數(shù)據(jù)或計(jì)算公式等要標(biāo)明出處,結(jié)論要寫的概括簡(jiǎn)短。參考文獻(xiàn)的書寫按論文中引用的先后順序連續(xù)編碼。(根據(jù)情況修改) </p><p>  發(fā)出任務(wù)書日期

6、2011.12.18 完成論文(設(shè)計(jì))日期 2011.12.23 </p><p>  學(xué)科組或教研室意見(jiàn)(簽字) </p><p>  院、系(系)主任意見(jiàn)(簽字) </p><p><b>  目錄</b&g

7、t;</p><p><b>  前言3</b></p><p><b>  一、設(shè)計(jì)題1:4</b></p><p> ?。ㄒ唬?、求拉格朗日插值多項(xiàng)式4</p><p><b>  1.1理論知識(shí)4</b></p><p>  1.2拉格朗日插

8、值的設(shè)計(jì)思路與算法如下:5</p><p>  2.求拉格朗日插值多項(xiàng)式的程序如下:(即Language.m文件)5</p><p>  3.程序運(yùn)行操作過(guò)程與輸出結(jié)果6</p><p>  4.對(duì)計(jì)算過(guò)程與結(jié)果分析7</p><p> ?。ǘ?、 求牛頓插值多項(xiàng)式7</p><p><b>  1

9、.1理論知識(shí)7</b></p><p>  1.2設(shè)計(jì)思路與算法步驟8</p><p>  2.求牛頓插值多項(xiàng)式的程序如下:(即Newton.m文件)8</p><p>  3.程序運(yùn)行操作過(guò)程與輸出結(jié)果9</p><p>  4.對(duì)計(jì)算過(guò)程與結(jié)果的分析10</p><p>  5.在課程設(shè)計(jì)中的

10、心得體會(huì)10</p><p>  二、設(shè)計(jì)題2:10</p><p>  1.1理論知識(shí)11</p><p>  1.2算法步驟11</p><p>  2程序運(yùn)行操作過(guò)程與輸出結(jié)果11</p><p>  3.對(duì)計(jì)算過(guò)程與結(jié)果的分析12</p><p>  4.在課程設(shè)計(jì)中的心得體

11、會(huì)12</p><p>  三、設(shè)計(jì)題3:12</p><p>  1.1理論知識(shí)13</p><p>  1.2設(shè)計(jì)思路13</p><p>  1.3算法步驟13</p><p><b>  2.程序清單14</b></p><p>  3.程序運(yùn)行操作過(guò)程

12、與輸出結(jié)果17</p><p>  4.對(duì)計(jì)算過(guò)程與結(jié)果的分析18</p><p>  5.在課程設(shè)計(jì)中的心得體會(huì)19</p><p><b>  參考文獻(xiàn)19</b></p><p>  【ABSTRACT】20</p><p><b>  數(shù)值分析課程設(shè)計(jì)</b>

13、;</p><p>  信息與計(jì)算科學(xué)專業(yè) 楊寶赟</p><p>  指導(dǎo)教師 常桂娟</p><p>  【摘要】本文對(duì)運(yùn)用MATLAB軟件分別對(duì)求拉格朗日插值多項(xiàng)式、牛頓插值多項(xiàng)式、曲線擬合、高斯列主元消去法進(jìn)行設(shè)計(jì),設(shè)計(jì)從理論知識(shí)、設(shè)計(jì)思路、算法步驟、程序清單等方面進(jìn)行了系統(tǒng)的表達(dá)。理論知識(shí)方面分別給出了以上各個(gè)方法的來(lái)由、定義等,設(shè)計(jì)思路構(gòu)成了

14、程序清單的靈魂,簡(jiǎn)要表達(dá)了實(shí)現(xiàn)程序的各個(gè)步驟。最后,通過(guò)以上環(huán)節(jié)總結(jié)出自己對(duì)各個(gè)程序設(shè)計(jì)的心得體會(huì)。</p><p>  【關(guān)鍵詞】MATLAB 拉格朗日插值 牛頓插值 曲線擬合 高斯消去 </p><p><b>  前言</b></p><p>  計(jì)算機(jī)與計(jì)算數(shù)學(xué)的發(fā)展以及它們?cè)诠こ碳翱茖W(xué)技術(shù)問(wèn)題中的廣泛應(yīng)用,使得數(shù)值分析(計(jì)算

15、方法)課程對(duì)高等院校理工科學(xué)生來(lái)說(shuō)越來(lái)越重要。 數(shù)值分析是一門基礎(chǔ)課,它象通常的數(shù)學(xué)課程一樣有自身嚴(yán)密的科學(xué)體系,但它又是一門應(yīng)用性很強(qiáng)的課程,目的是使學(xué)生能夠用本課程的理論在計(jì)算機(jī)上實(shí)現(xiàn)有關(guān)的科學(xué)與工程計(jì)算,計(jì)算能力的培養(yǎng)對(duì)工科各專業(yè)的學(xué)生都是十分重要的,數(shù)值分析課程的課程設(shè)計(jì)環(huán)節(jié)正是為了適應(yīng)這種需要而設(shè)置的,使得學(xué)生在學(xué)習(xí)各種算法時(shí),能在課程設(shè)計(jì)環(huán)節(jié)中深刻體會(huì)算法的內(nèi)涵、物理背景和實(shí)際意義,同時(shí)也能提高學(xué)生學(xué)習(xí)該課程的興趣, 而更重

16、要的是能提高學(xué)生綜合運(yùn)用知識(shí)的能力和培養(yǎng)學(xué)生利用計(jì)算機(jī)解決實(shí)際問(wèn)題的能力。</p><p><b>  一、設(shè)計(jì)題1:</b></p><p>  根據(jù)下表所列的數(shù)據(jù)點(diǎn)求出其拉格朗日插值多項(xiàng)式及牛頓插值多項(xiàng)式,并計(jì)算當(dāng)x=2.0時(shí)的值。</p><p> ?。ㄒ唬?、求拉格朗日插值多項(xiàng)式</p><p><b>

17、  1.1理論知識(shí)</b></p><p>  拉格朗日插值法是以法國(guó)十八世紀(jì)數(shù)學(xué)家約瑟夫?路易斯?拉格朗日命名的一種多項(xiàng)式插值方法。許多實(shí)際問(wèn)題中都用函數(shù)來(lái)表示某種內(nèi)在聯(lián)系或規(guī)律,而不少函數(shù)都只能通過(guò)實(shí)驗(yàn)和觀測(cè)來(lái)了解。如對(duì)實(shí)踐中的某個(gè)物理量進(jìn)行觀測(cè),在若干個(gè)不同的地方得到相應(yīng)的觀測(cè)值,拉格朗日插值法可以找到一個(gè)多項(xiàng)式,其恰好在各個(gè)觀測(cè)的點(diǎn)取到觀測(cè)到的值。這樣的多項(xiàng)式稱為拉格朗日(插值)多項(xiàng)式。數(shù)學(xué)上

18、來(lái)說(shuō),拉格朗日插值法可以給出一個(gè)恰好穿過(guò)二維平面上若干個(gè)已知點(diǎn)的多項(xiàng)式函數(shù)。拉格朗日插值法最早被英國(guó)數(shù)學(xué)家愛(ài)德華?華林于1779年發(fā)現(xiàn),不久后(1783年)由萊昂哈德?歐拉再次發(fā)現(xiàn)。1795年,拉格朗日在其著作《師范學(xué)校數(shù)學(xué)基礎(chǔ)教程》中發(fā)表了這個(gè)插值方法,從此他的名字就和這個(gè)方法聯(lián)系在一起。</p><p>  對(duì)某個(gè)多項(xiàng)式函數(shù),已知有給定的k + 1個(gè)取值點(diǎn):</p><p>  其中對(duì)

19、應(yīng)著自變量的位置,而對(duì)應(yīng)著函數(shù)在這個(gè)位置的取值。</p><p>  假設(shè)任意兩個(gè)不同的都互不相同,那么應(yīng)用拉格朗日插值公式所得到的拉格朗日插值多項(xiàng)式為:</p><p>  其中每個(gè) 為拉格朗日基本多項(xiàng)式(或稱插值基函數(shù)),其表達(dá)式為:。 </p><p>  拉格朗日基本多項(xiàng)式 的特點(diǎn)是在 上取值為1,在其它的點(diǎn)上取值為0。</p><p&g

20、t;  1.2拉格朗日插值的設(shè)計(jì)思路與算法如下:</p><p><b>  (1)輸入,,。</b></p><p><b>  (2)對(duì)置。</b></p><p><b>  (3)置。</b></p><p><b> ?。?)輸出。</b><

21、;/p><p>  2.求拉格朗日插值多項(xiàng)式的程序如下:(即Language.m文件)</p><p>  function f=Language(x,y,x0)</p><p>  %求已知數(shù)據(jù)點(diǎn)的拉格朗日插值多項(xiàng)式</p><p>  %已知數(shù)據(jù)點(diǎn)的x坐標(biāo)向量:x</p><p>  %已知數(shù)據(jù)點(diǎn)的y坐標(biāo)向量:y<

22、;/p><p>  %插值的x坐標(biāo):x0</p><p>  %求得的拉格朗日插值多項(xiàng)式在x0處的插值:f</p><p><b>  syms t;</b></p><p>  if(length(x)==length(y))</p><p>  n=length(x);</p>&l

23、t;p><b>  else</b></p><p>  disp('x和y的維數(shù)不相等!');</p><p><b>  return;</b></p><p>  end %檢錯(cuò)</p><p><b>  f=0.0;</b>&l

24、t;/p><p>  for(i=1:n)</p><p><b>  l=y(i);</b></p><p>  for(j=1:i-1)</p><p>  l=l*(t-x(j))/(x(i)-x(j));</p><p><b>  end;</b></p>

25、<p>  for(j=i+1:n)</p><p>  l=l*(t-x(j))/(x(i)-x(j));%計(jì)算拉格朗日基函數(shù)</p><p><b>  end;</b></p><p>  f=f+l; %計(jì)算拉格朗日插值函數(shù)</p><p>  simplify(

26、f); %化簡(jiǎn)</p><p><b>  if(i==n)</b></p><p>  if(nargin==3)</p><p>  f=subs(f,'t',x0); %計(jì)算插值點(diǎn)的函數(shù)值</p><p><b>  else </b><

27、;/p><p>  f=collect(f); %將插值多項(xiàng)式展開(kāi)</p><p>  f=vpa(f,6); %將插值多項(xiàng)式的系數(shù)化成6位精度的小數(shù)</p><p><b>  end</b></p><p><b>  end</b></p><p><b&

28、gt;  end</b></p><p>  3.程序運(yùn)行操作過(guò)程與輸出結(jié)果</p><p>  在文件中新建一個(gè)M文件Language.m,編寫出求拉格朗日插值多項(xiàng)式的程序,然后在命令區(qū)調(diào)用Language.m文件,即在命令區(qū)打入f=Language(x,y)即可得到,再次調(diào)用Language.m文件,利用f=Language(x,y,2)語(yǔ)句得出x=2.0時(shí)的值。</

29、p><p>  Matlab中的命令如下:</p><p>  >> x=[1 1.2 1.8 2.5 4];</p><p>  >> y=[1 1.44 3.24 6.25 16];</p><p>  >> f=Language(x,y)</p><p><b>  f

30、=</b></p><p><b>  t^2</b></p><p>  >> f=Language(x,y,2)</p><p><b>  f =</b></p><p><b>  4</b></p><p>  4.對(duì)計(jì)

31、算過(guò)程與結(jié)果分析</p><p>  由于本題的例題給出的數(shù)據(jù)很簡(jiǎn)單,所以僅憑觀察法就可以得出結(jié)果,而且計(jì)算量很小,不太符合程序設(shè)計(jì)的理念。所以對(duì)簡(jiǎn)單的數(shù)據(jù)處理可以直接用計(jì)算方法手動(dòng)算出,本程序僅對(duì)復(fù)雜數(shù)據(jù)處理方面有很大用處。</p><p>  (二)、 求牛頓插值多項(xiàng)式</p><p><b>  1.1理論知識(shí)</b></p>

32、<p>  牛頓插值法利用函數(shù)f (x)在某區(qū)間中若干點(diǎn)的函數(shù)值,作出適當(dāng)?shù)奶囟ê瘮?shù),在這些點(diǎn)上取已知值,在區(qū)間的其他點(diǎn)上用這特定函數(shù)的值作為函數(shù)f (x)的近似值。如果這特定函數(shù)是多項(xiàng)式,就稱它為插值多項(xiàng)式。利用插值基函數(shù)很容易得到拉格朗日插值多項(xiàng)式,公式結(jié)構(gòu)緊湊,在理論分析中甚為方便,但當(dāng)插值節(jié)點(diǎn)增減時(shí)全部插值基函數(shù)均要隨之變化,整個(gè)公式也將發(fā)生變化, 這在實(shí)際計(jì)算中是很不方便的,為了克服這一缺點(diǎn),提出了牛頓插值。 &

33、lt;/p><p>  牛頓插值通過(guò)求各階差商,遞推得到的一個(gè)公式: </p><p>  1.2設(shè)計(jì)思路與算法步驟</p><p> ?。?)輸入插值節(jié)點(diǎn)數(shù)n,插值點(diǎn)序列,要計(jì)算的插值點(diǎn)u。</p><p>  (2)形成差商表 !g[k]表示</p><p>  (3)置初始值t=1;newton=f(0)</

34、p><p> ?。?)for(i=1:n-1) </p><p>  for(j=i+1:n)</p><p>  y1(j) = (y(j)-y(i))/(x(j)-x(i));</p><p><b>  end</b></p><p>  c(i) = y1(i+1); </p

35、><p>  l = l*(t-x(i)); </p><p>  f = f + c(i)*l;</p><p><b> ?。?)輸出f(x)</b></p><p>  2.求牛頓插值多項(xiàng)式的程序如下:(即Newton.m文件)</p><p>  function f = Newton(x,

36、y,x0)</p><p>  %本程序?yàn)镹ewton插值,</p><p>  %其中x,y為插值節(jié)點(diǎn)和節(jié)點(diǎn)上的函數(shù)值,輸出為插值點(diǎn)x0的函數(shù)值,</p><p><b>  %x0可以是向量。</b></p><p><b>  syms t;</b></p><p> 

37、 if(length(x) == length(y))</p><p>  n = length(x);</p><p>  c(1:n) = 0.0;</p><p><b>  else</b></p><p>  disp('x和y的維數(shù)不相等!');</p><p><

38、;b>  return;</b></p><p><b>  end</b></p><p><b>  f = y(1);</b></p><p><b>  y1 = 0;</b></p><p><b>  l = 1;</b>&

39、lt;/p><p>  for(i=1:n-1) </p><p>  for(j=i+1:n)</p><p>  y1(j) = (y(j)-y(i))/(x(j)-x(i));</p><p><b>  end</b></p><p>  c(i) = y1(i+1); </

40、p><p>  l = l*(t-x(i)); </p><p>  f = f + c(i)*l;</p><p>  simplify(f)</p><p><b>  y = y1;</b></p><p>  if(i==n-1)</p><p>  if(nargi

41、n == 3)</p><p>  f = subs(f,'t',x0);</p><p><b>  else</b></p><p>  f = collect(f); %將插值多項(xiàng)式展開(kāi)</p><p>  f = vpa(f, 6);</p><p

42、><b>  end</b></p><p><b>  end</b></p><p><b>  end</b></p><p>  3.程序運(yùn)行操作過(guò)程與輸出結(jié)果</p><p>  在文件中新建一個(gè)M文件Newton.m,編寫出求拉格朗日插值多項(xiàng)式的程序,然后在命

43、令區(qū)調(diào)用Newton.m文件,即在命令區(qū)打入f=Newton([1 1.2 1.8 2.5 4],[1 1.44 3.24 6.25 16],2)即可得到,以及x=2.0時(shí)的值為4。</p><p>  MATLAB中的命令如下:</p><p>  >> f=Newton([1 1.2 1.8 2.5 4],[1 1.44 3.24 6.25 16],2) </p>

44、;<p><b>  ans =</b></p><p><b>  t^2 </b></p><p><b>  f =</b></p><p><b>  4</b></p><p>  4.對(duì)計(jì)算過(guò)程與結(jié)果的分析</p>

45、<p>  由于本題的例題給出的數(shù)據(jù)很簡(jiǎn)單,所以僅憑觀察法就可以得出結(jié)果,而且計(jì)算量很小,不太符合程序設(shè)計(jì)的理念。所以對(duì)簡(jiǎn)單的數(shù)據(jù)處理可以直接用計(jì)算方法手動(dòng)算出,本程序僅對(duì)復(fù)雜數(shù)據(jù)處理方面有很大用處。</p><p>  5.在課程設(shè)計(jì)中的心得體會(huì)</p><p>  在對(duì)拉格朗日插值多項(xiàng)式的程序進(jìn)行編輯過(guò)程中,遇到了很多方法不知道用什么函數(shù)表達(dá)的問(wèn)題,通過(guò)查找有關(guān)Matab軟件

46、和現(xiàn)代數(shù)值計(jì)算的書籍得出本程序,在對(duì)程序調(diào)用時(shí),不知道如何調(diào)用,通過(guò)上網(wǎng)查找方法知道了需要在Matlab中的文件中新建一個(gè)M文件,然后保存,然后到命令區(qū)直接調(diào)用就可以了。特別注意的是,在對(duì)M文件保存時(shí),要直接保存到默認(rèn)的matlab文件夾中,不可以隨意更改保存路徑。</p><p><b>  二、設(shè)計(jì)題2:</b></p><p>  根據(jù)下面實(shí)驗(yàn)數(shù)據(jù)求解擬合曲線&

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論