版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、<p><b> 本科生課程論文</b></p><p> 題 目: 數(shù)值分析課程設計 </p><p> 姓 名: </p><p> 學 院: 理學與信息科學學院 </p>&l
2、t;p> 專 業(yè): 信息與計算科學專業(yè) </p><p> 班 級: </p><p> 學 號: </p><p> 指導教師:
3、 </p><p> 完成時間: 2011年12月23日 </p><p> 二○一一年十二月二十三日</p><p> 課 程 論 文 任 務 書</p><p> 論文題目 數(shù)值分析課程設計 </p
4、><p> 論文內(nèi)容(需明確列出研究的問題): 運用MATLAB數(shù)學軟件設計出數(shù)值分析的求拉格朗日插值多項式和牛頓插值多項式以及Polyfit多項函數(shù)擬合來求的擬合曲線和列主元Guass消去法解方程組。 </p><p>
5、資料、數(shù)據(jù)、技術(shù)水平等方面的要求:論文要符合一般學術(shù)論文的寫作規(guī)范,具備學術(shù)性、科學性和一定的創(chuàng)造性。文字要流暢、語言要準確、論點要清楚、論據(jù)要準確、論證要完整、嚴密,有獨立的觀點和見解。內(nèi)容要理論聯(lián)系實際,計算數(shù)據(jù)要求準確,涉及到他人的觀點、統(tǒng)計數(shù)據(jù)或計算公式等要標明出處,結(jié)論要寫的概括簡短。參考文獻的書寫按論文中引用的先后順序連續(xù)編碼。(根據(jù)情況修改) </p><p> 發(fā)出任務書日期
6、2011.12.18 完成論文(設計)日期 2011.12.23 </p><p> 學科組或教研室意見(簽字) </p><p> 院、系(系)主任意見(簽字) </p><p><b> 目錄</b&g
7、t;</p><p><b> 前言3</b></p><p><b> 一、設計題1:4</b></p><p> (一)、求拉格朗日插值多項式4</p><p><b> 1.1理論知識4</b></p><p> 1.2拉格朗日插
8、值的設計思路與算法如下:5</p><p> 2.求拉格朗日插值多項式的程序如下:(即Language.m文件)5</p><p> 3.程序運行操作過程與輸出結(jié)果6</p><p> 4.對計算過程與結(jié)果分析7</p><p> (二)、 求牛頓插值多項式7</p><p><b> 1
9、.1理論知識7</b></p><p> 1.2設計思路與算法步驟8</p><p> 2.求牛頓插值多項式的程序如下:(即Newton.m文件)8</p><p> 3.程序運行操作過程與輸出結(jié)果9</p><p> 4.對計算過程與結(jié)果的分析10</p><p> 5.在課程設計中的
10、心得體會10</p><p> 二、設計題2:10</p><p> 1.1理論知識11</p><p> 1.2算法步驟11</p><p> 2程序運行操作過程與輸出結(jié)果11</p><p> 3.對計算過程與結(jié)果的分析12</p><p> 4.在課程設計中的心得體
11、會12</p><p> 三、設計題3:12</p><p> 1.1理論知識13</p><p> 1.2設計思路13</p><p> 1.3算法步驟13</p><p><b> 2.程序清單14</b></p><p> 3.程序運行操作過程
12、與輸出結(jié)果17</p><p> 4.對計算過程與結(jié)果的分析18</p><p> 5.在課程設計中的心得體會19</p><p><b> 參考文獻19</b></p><p> 【ABSTRACT】20</p><p><b> 數(shù)值分析課程設計</b>
13、;</p><p> 信息與計算科學專業(yè) 楊寶赟</p><p> 指導教師 常桂娟</p><p> 【摘要】本文對運用MATLAB軟件分別對求拉格朗日插值多項式、牛頓插值多項式、曲線擬合、高斯列主元消去法進行設計,設計從理論知識、設計思路、算法步驟、程序清單等方面進行了系統(tǒng)的表達。理論知識方面分別給出了以上各個方法的來由、定義等,設計思路構(gòu)成了
14、程序清單的靈魂,簡要表達了實現(xiàn)程序的各個步驟。最后,通過以上環(huán)節(jié)總結(jié)出自己對各個程序設計的心得體會。</p><p> 【關(guān)鍵詞】MATLAB 拉格朗日插值 牛頓插值 曲線擬合 高斯消去 </p><p><b> 前言</b></p><p> 計算機與計算數(shù)學的發(fā)展以及它們在工程及科學技術(shù)問題中的廣泛應用,使得數(shù)值分析(計算
15、方法)課程對高等院校理工科學生來說越來越重要。 數(shù)值分析是一門基礎課,它象通常的數(shù)學課程一樣有自身嚴密的科學體系,但它又是一門應用性很強的課程,目的是使學生能夠用本課程的理論在計算機上實現(xiàn)有關(guān)的科學與工程計算,計算能力的培養(yǎng)對工科各專業(yè)的學生都是十分重要的,數(shù)值分析課程的課程設計環(huán)節(jié)正是為了適應這種需要而設置的,使得學生在學習各種算法時,能在課程設計環(huán)節(jié)中深刻體會算法的內(nèi)涵、物理背景和實際意義,同時也能提高學生學習該課程的興趣, 而更重
16、要的是能提高學生綜合運用知識的能力和培養(yǎng)學生利用計算機解決實際問題的能力。</p><p><b> 一、設計題1:</b></p><p> 根據(jù)下表所列的數(shù)據(jù)點求出其拉格朗日插值多項式及牛頓插值多項式,并計算當x=2.0時的值。</p><p> ?。ㄒ唬?、求拉格朗日插值多項式</p><p><b>
17、 1.1理論知識</b></p><p> 拉格朗日插值法是以法國十八世紀數(shù)學家約瑟夫?路易斯?拉格朗日命名的一種多項式插值方法。許多實際問題中都用函數(shù)來表示某種內(nèi)在聯(lián)系或規(guī)律,而不少函數(shù)都只能通過實驗和觀測來了解。如對實踐中的某個物理量進行觀測,在若干個不同的地方得到相應的觀測值,拉格朗日插值法可以找到一個多項式,其恰好在各個觀測的點取到觀測到的值。這樣的多項式稱為拉格朗日(插值)多項式。數(shù)學上
18、來說,拉格朗日插值法可以給出一個恰好穿過二維平面上若干個已知點的多項式函數(shù)。拉格朗日插值法最早被英國數(shù)學家愛德華?華林于1779年發(fā)現(xiàn),不久后(1783年)由萊昂哈德?歐拉再次發(fā)現(xiàn)。1795年,拉格朗日在其著作《師范學校數(shù)學基礎教程》中發(fā)表了這個插值方法,從此他的名字就和這個方法聯(lián)系在一起。</p><p> 對某個多項式函數(shù),已知有給定的k + 1個取值點:</p><p> 其中對
19、應著自變量的位置,而對應著函數(shù)在這個位置的取值。</p><p> 假設任意兩個不同的都互不相同,那么應用拉格朗日插值公式所得到的拉格朗日插值多項式為:</p><p> 其中每個 為拉格朗日基本多項式(或稱插值基函數(shù)),其表達式為:。 </p><p> 拉格朗日基本多項式 的特點是在 上取值為1,在其它的點上取值為0。</p><p&g
20、t; 1.2拉格朗日插值的設計思路與算法如下:</p><p><b> ?。?)輸入,,。</b></p><p><b> ?。?)對置。</b></p><p><b> ?。?)置。</b></p><p><b> ?。?)輸出。</b><
21、;/p><p> 2.求拉格朗日插值多項式的程序如下:(即Language.m文件)</p><p> function f=Language(x,y,x0)</p><p> %求已知數(shù)據(jù)點的拉格朗日插值多項式</p><p> %已知數(shù)據(jù)點的x坐標向量:x</p><p> %已知數(shù)據(jù)點的y坐標向量:y<
22、;/p><p> %插值的x坐標:x0</p><p> %求得的拉格朗日插值多項式在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 %檢錯</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));%計算拉格朗日基函數(shù)</p><p><b> end;</b></p><p> f=f+l; %計算拉格朗日插值函數(shù)</p><p> simplify(
26、f); %化簡</p><p><b> if(i==n)</b></p><p> if(nargin==3)</p><p> f=subs(f,'t',x0); %計算插值點的函數(shù)值</p><p><b> else </b><
27、;/p><p> f=collect(f); %將插值多項式展開</p><p> f=vpa(f,6); %將插值多項式的系數(shù)化成6位精度的小數(shù)</p><p><b> end</b></p><p><b> end</b></p><p><b&
28、gt; end</b></p><p> 3.程序運行操作過程與輸出結(jié)果</p><p> 在文件中新建一個M文件Language.m,編寫出求拉格朗日插值多項式的程序,然后在命令區(qū)調(diào)用Language.m文件,即在命令區(qū)打入f=Language(x,y)即可得到,再次調(diào)用Language.m文件,利用f=Language(x,y,2)語句得出x=2.0時的值。</
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.對計
31、算過程與結(jié)果分析</p><p> 由于本題的例題給出的數(shù)據(jù)很簡單,所以僅憑觀察法就可以得出結(jié)果,而且計算量很小,不太符合程序設計的理念。所以對簡單的數(shù)據(jù)處理可以直接用計算方法手動算出,本程序僅對復雜數(shù)據(jù)處理方面有很大用處。</p><p> ?。ǘ?、 求牛頓插值多項式</p><p><b> 1.1理論知識</b></p>
32、<p> 牛頓插值法利用函數(shù)f (x)在某區(qū)間中若干點的函數(shù)值,作出適當?shù)奶囟ê瘮?shù),在這些點上取已知值,在區(qū)間的其他點上用這特定函數(shù)的值作為函數(shù)f (x)的近似值。如果這特定函數(shù)是多項式,就稱它為插值多項式。利用插值基函數(shù)很容易得到拉格朗日插值多項式,公式結(jié)構(gòu)緊湊,在理論分析中甚為方便,但當插值節(jié)點增減時全部插值基函數(shù)均要隨之變化,整個公式也將發(fā)生變化, 這在實際計算中是很不方便的,為了克服這一缺點,提出了牛頓插值。 &
33、lt;/p><p> 牛頓插值通過求各階差商,遞推得到的一個公式: </p><p> 1.2設計思路與算法步驟</p><p> ?。?)輸入插值節(jié)點數(shù)n,插值點序列,要計算的插值點u。</p><p> ?。?)形成差商表 !g[k]表示</p><p> ?。?)置初始值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.求牛頓插值多項式的程序如下:(即Newton.m文件)</p><p> function f = Newton(x,
36、y,x0)</p><p> %本程序為Newton插值,</p><p> %其中x,y為插值節(jié)點和節(jié)點上的函數(shù)值,輸出為插值點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); %將插值多項式展開</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.程序運行操作過程與輸出結(jié)果</p><p> 在文件中新建一個M文件Newton.m,編寫出求拉格朗日插值多項式的程序,然后在命
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時的值為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.對計算過程與結(jié)果的分析</p>
45、<p> 由于本題的例題給出的數(shù)據(jù)很簡單,所以僅憑觀察法就可以得出結(jié)果,而且計算量很小,不太符合程序設計的理念。所以對簡單的數(shù)據(jù)處理可以直接用計算方法手動算出,本程序僅對復雜數(shù)據(jù)處理方面有很大用處。</p><p> 5.在課程設計中的心得體會</p><p> 在對拉格朗日插值多項式的程序進行編輯過程中,遇到了很多方法不知道用什么函數(shù)表達的問題,通過查找有關(guān)Matab軟件
46、和現(xiàn)代數(shù)值計算的書籍得出本程序,在對程序調(diào)用時,不知道如何調(diào)用,通過上網(wǎng)查找方法知道了需要在Matlab中的文件中新建一個M文件,然后保存,然后到命令區(qū)直接調(diào)用就可以了。特別注意的是,在對M文件保存時,要直接保存到默認的matlab文件夾中,不可以隨意更改保存路徑。</p><p><b> 二、設計題2:</b></p><p> 根據(jù)下面實驗數(shù)據(jù)求解擬合曲線&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)值分析課程設計
- 數(shù)值分析課程設計
- 數(shù)值分析課程設計報告
- 數(shù)值分析課程設計報告
- 數(shù)值分析課程設計題目
- 數(shù)值分析課程設計報告書
- 地鐵車站ansys數(shù)值分析課程設計
- 數(shù)值逼近課程設計
- 數(shù)值分析課程設計說明書
- 數(shù)值分析課程設計--最速下降法
- 數(shù)值計算課程設計
- 數(shù)值轉(zhuǎn)換 課程設計報告
- 數(shù)值積分課程設計
- 數(shù)值分析課程設計說明書.doc
- 數(shù)值轉(zhuǎn)換課程設計報告
- [數(shù)學]數(shù)值計算課程設計
- 《數(shù)值分析》課程設計實踐教學的幾點探討
- 數(shù)值分析課程設計--newton_迭代法
- 數(shù)值分析課程設計--初值問題、邊值問題
- 數(shù)值分析課程設計---牛頓插值、高斯消去法
評論
0/150
提交評論