插值算法實現_第1頁
插值算法實現_第2頁
插值算法實現_第3頁
插值算法實現_第4頁
插值算法實現_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、.厶專業(yè):電氣工程及其自動化月帀,y弊計算方法實驗報告姓乳一左馳學號:3120104723一日期:2014422實驗名稱:插值算法的MATLAB實現1引言在自然科學和工程中有很多問題的解決歸結為利用實驗中得到的一些數據來作為根據求解幾個變量之間的函數關系。在這種情況下,利用這些數據點進行分段分析來得到一個分段函數關系式就會至關重要。由分段線性與非線性的插值法就是其中最為主要的代表,也是計算機進行擬合的重要選擇。其中,線性插值是利用兩點確定一條直線的原理,利用兩點之間一個直線來實現差值,得到擬合曲線。而二次差值和拉格朗日差值,則是通過幾點之間高次差值,在解一個高次方程組的原理下,得到一個基本的擬

2、合曲線。本實驗所用的差值方式就是分段線性差值與分段二次差值和全區(qū)間上的拉格朗日插值。2實驗目的和要求(一)實驗目的(1)了解基本差值的過程和基本算法原理。(2)對現有數據進行一下簡單的整理(3)根據自己對插值手法的理解設計插值計算的流程圖(4)根據流程圖設計插值程序(5)將課本所給的數據算例帶入程序中進行運行(6)將結果與原本的數據點進行比較,分析結果和。(7)更換插值方式數據進行插值分析,觀察不同的之間有什么樣的區(qū)別和聯系函數圖象。(8)感受差值方法對于解決數字分析的有什么樣的優(yōu)勢(二)實驗要求(1)了解插值算法的要求,對數據的要求和工作條件(2)會用以及了解matlab的使用方法和數據處理

3、(3)總結分析實驗結果3算法原理與流程圖(1)線性插值算法原理:己知n次插值多項式Pn(x)=ao+aix+azx2+但是對于一個實驗中得到的結果來說,但并不是每一次都會使用高次插值進行分析,因為,3+丄cm甩(乂=fCRP込CR=TVS-+丄乂3+1)!有時候截斷誤差并不一定會隨著I】的增大而減小,這時候往往會使用低次插值,比如一次差值和二次差值。如果我們取到Pn(x)=aO+alx就是一個線性插值(一次差值)的結果。我們線性插值就是使用待求變量附近的兩個數據點,通過兩點之間得到一條直線的原理,得到待求變量所在的直線,再根據直線方程得到待求變量的函數值,最終以函數值為返回値,繪制函數圖象。流

4、程圖J+終以函數值為返回値,繪制函數圖象。流程圖J+(2)二次差值二次插值則是比線性插值更高一階的插值方法,就是利用一段拋物線來擬合數據點中相鄰的三個點,來構成整個插值多項式,因而更加平滑,在大多數情況下也更加逼近精確解(3)拉格朗日插值拉格朗日則是使用了所有數據點,來構造一個許多I】次多項式的加和。具有很好的可微分性,在工程中有所應用。但是計算量較大,并且遇到高階發(fā)散的函數,可能由于擬合階數越高,誤差限越大。=ff(兀兒(x)1=0!代)_(x-x0)-.(x-xi_1)(x-).(x-xh)1(X廠冷)(兀一芻一1)(兀一務+J(兀一xj流程圖如下4程序代碼及注釋(1)線性插值functi

5、onv=qcs(x,y,z)義一個函數,向BX,y,z為其輸入值,其中x,y為數據點,n為待求向量n=length(x);*求取x的長度,方便使用循環(huán)。nl=length(z);v=zeros(lfnl);電初始化輸出向量(當時對matlabT解不深,還是保留一些u的做法forj=l:nlb=z(j);$循環(huán)體,對輸出向量每個數值進行運算fori=l:n-1;ifbx(i)&b=x(1)&b=05*(x(n-2)+x(n-1)&b=x(n)k=n-l;elsefori=2:n-1ifb=05*(x(i-l)+x(i)k=i;endendendform=k-l:k+l%對已經得到的三個差值點進行

6、運算,找出滿足的二次方程3=1;forp=(k-l):(k+1)ifp=ma=a*(b-x(p)/(x(m)-x(p);endenda=a*y(m);v(j)=v(j)+a;endendend(3)拉格朗日差值functionv=lalangchazhi(xzyrz)n=length(x);v=0;fori=l:na=l;forj=l:nifj=ia=a.*(z-x(j)/(x(i)-x(j);endendv=v+y(i)*a;endend5算例分析給定數據點x=00.10.1950.30.4010.5尸0.398940.396950.391420.381380.368120.35206(1)

7、進行線性插值程序運行如下x=00.10.1950.30.4010.5;尸0.398940.396950.391420.3SL3S0.368120.35206:z=0.01:0.01:0.5:FileEditViewInsertToolsDesktopWindowHelp口曰日1恪毀亂紗題貳7凰1目1”QFigure1q=q.cs(xyz):QFigure1plot(q,z,JbJ)holdon.plot(y,x/o)程序優(yōu)點:其中,圈形點為原數據點,線性圖象為擬合得到的函數圖象,可以看到,1,利用線性插值可以比較好的得到數據點的一個運行趨勢2,函數之間的不光滑不是很明顯,隨著數據點的逐漸密集,

8、可以想象,函數將得到一條想當平滑的曲線,可以近似認為得到的曲線就是函數f(x)的描述。程序不足:沒有考慮到在數據點之外兩側求取待求變量值的情況,后續(xù)進行函數修正。(2)二次差值程序運行如下x=00.10.1950.30.4010.5:尸0.398940.396950.391420.381380.368120.35206:2=0.01:0.01:0.5;q=qcs仗,%z);plot(z/b5)holdonplot(y,x/o)p=qcs2(x,y,z):plot(p?z,Jb)holdonHFiaurel口1回1File|EditViewInsertToolsDesktopWindowHelp

9、3|程序分析:其中,圈形點為原數據點,線性圖象為擬合得到的函數圖象可以看到,函數通過了每一個數據點。對比一次差值可以看到,函數兩點之間的函數段尤其后兩個函數之間,相比較一次差值要平穩(wěn)很多但是我們可以想象,在兩個數據點之間某個值,比如中點值,可能存在不連續(xù),對于函數求導等等運算有很大的不方便。拉格朗日插值x=00.10.1950.30.4010.5:y=0.398940.39695z=0.01:0.01:0.5;q=qcs(x,y,z):plot(z/bJ)holdonploto)P=qcs2(k.y,z):plot(pb?)holdonplot(y叮c)r=laLangchazhi仗y,z)ploto)holdonplot(rb?)/*0.391420.381380.368120.35206:QFigure1可以看到,拉格朗差值相比于二次差值,在多個數據點的上面都十分平滑,因為拉格朗日差值得到的是一條函數曲線,因而可以實現光滑的差值擬合。6討論與結論插值是程序處理最基本和重要的一種處理方式,利用這個程序可以實現函數的近似擬合,這三種插值方式中,線性插值最簡單,但是也最不平滑,數據點上邊有很強的毛糙,對于進行微分等等有著比較大的麻煩。二次差

溫馨提示

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

評論

0/150

提交評論