基于matlab的數(shù)值逼近仿真設計與實現(xiàn)_第1頁
基于matlab的數(shù)值逼近仿真設計與實現(xiàn)_第2頁
基于matlab的數(shù)值逼近仿真設計與實現(xiàn)_第3頁
基于matlab的數(shù)值逼近仿真設計與實現(xiàn)_第4頁
基于matlab的數(shù)值逼近仿真設計與實現(xiàn)_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于matlab的數(shù)值逼近程序設計研究意義

數(shù)值逼近的方法包括插值、擬合與逼近等,這些算法其實可以通過C,C++以及Fortran等語言編程實現(xiàn).不過用C,C++以及Fortran等實現(xiàn)語言編寫相對于Matlab更為復雜從而使程序易錯,而Matlab在語言環(huán)境來說更為簡單,并且在內部程序中自帶相當多得函數(shù),是程序的設計變得更為簡單。使用Matlab對所編制的逼近程序進行繪圖,讓得到的結果在圖形中進行展示,是我們看到的結果更為清楚明白。2.1分段插值

我們用高次插值多項式是不妥當?shù)?,從?shù)值計算上可解釋為高次插值多項式的計算會帶來舍入誤差的增大,從而引起計算失真。因此,實踐上作插值時一般只用一次、二次最多用三次插值多項式。那么如何提高插值精度呢?采用分段插值是一種辦法。分段線性插值方法在速度和誤差之間取得了比較好的均很,其插值函數(shù)具有連續(xù)性,但在已知數(shù)據(jù)點的斜率一般不會改變,因此不是光滑的。分段線性插值方法是matlab一維插值默認的方法。定義

設f(x)是定義在[a,b]上的函數(shù),在[a,b]上節(jié)點a=x0<x1<x2<…<xn-1<xn=b,的函數(shù)值為y0,y1,y2,…yn-1,yn,若函數(shù)(x)滿足條件(1)(x)在區(qū)間[a,b]上連續(xù);(2)(x)在每個子區(qū)[xi,xi+1](i=0,1,2,…,n-1)上是次數(shù)為m的多項式;則稱(x)是f(x)在[a,b]上的分段m次插值多項式,m=1稱為分段線性插值;m=2稱為分段拋物線插值。由定義,(x)在每個子區(qū)間[xi,xi+1](i=0,1,2,…,n-1)上是一次插值多項式;

圖2-1分段線性插值曲線圖

2.1.2分段插值計算

例4-1:設

(-1≤x≤1);將[-1,1]10等份,用分段線性插值近似計算f(-0.96)。解:插值節(jié)點為xi=-1+i/5(i=0,1,…,10),h=1/5因為-0.96∈[-1,-0.8],取此區(qū)間為線性插值區(qū)間,其上的插值函數(shù)為所以f(-0.96)

(-0.96)=0.042532.1.3基于matlab分段插值實現(xiàn)

Matlab分段插值命令:interp1功能:一維數(shù)據(jù)插值。該命令對數(shù)據(jù)點之間計算內插值。它找出一元函數(shù)f(x)在中間點的數(shù)值。其中函數(shù)f(x)由所給數(shù)據(jù)決定。格式:yi=interp1(x,y,xi)其中x,y為原始數(shù)據(jù)點,xi,yi為插值點。由上面的例題基于matlab分段插值程序設計:(1)在工作空間建立名為example1.m的m文件。(2)在m文件中進行程序設計:%對原數(shù)據(jù)點進行定義x=[-1:0.2:1];y=(1+25*x.^2).^-1%對插值點進行定義x0=[-1:2/10:1];y0=(1+25*x0.^2).^-1y1=interp1(x,y,x0);%進行分段插值%x1=-0.96;%計算f(-0.96)%y2=(1+25*x1.^2).^-1y2=interp1(x,y,x0)figure%畫出分段插值圖形%plot(x0,y0,'o',x0,y1,'-b');legend('原曲線','分段線性插值曲線');2.1.4小結

實際上,上面介紹的分段低次插值,雖然具有計算簡便,收斂性有保證,數(shù)值穩(wěn)定性又好且易在計算機上實現(xiàn)等優(yōu)點,但它卻不能保證整條曲線的光滑性,從而不能滿足某些工程技術上的要求,從六十年代開始,首先由于航空、造船等工程設計的需要而發(fā)展起來的樣條插值(spline)方法,既保留了分段低次插值的各種優(yōu)點,又提高了插值函數(shù)的光滑性,在許多領域顯得越來越廣泛的應用。2.2拉格朗日插值

2.2.1線性插值

給定兩個插值點

其中

,怎樣做通過這兩點的一次插值函數(shù)?過兩點作一條直線,這條直線就是通過這兩點的一次多項式插值函數(shù),簡稱線性插值(如圖4-2)。圖2-2拉格朗日線性插值

在初等數(shù)學中,可用兩點式、點斜式或截距式構造通過兩點的一條直線。下面先用待定系數(shù)法構造插值直線。設直線方程為

,將

分別代入直線方程

得:當

時,因

,所以方程組有解,而且解是唯一的。這也表明,平面上兩個點,有且僅有一條直線通過。用待定系數(shù)法構造插值多項式的方法簡單直觀,容易看到解的存在性和惟一性,但要解一個方程組才能得到插值函數(shù)的系數(shù),因工作量較大和不便向高階推廣,故這種構造方法通常不宜采用。當

時,若用兩點式表示這條直線,則有:;這種形式稱為拉格朗日插值多項式。記;,

稱為插值基函數(shù),計算

,

的值,易見在拉格朗日插值多項式中可將

看做兩條直線

,

的疊加,并可看到兩個插值點的作用和地位都是平等的。拉格朗日插值多項式型式免除了解方程組的計算,易于向高次插值多項式型式推廣。2.2.2二次朗格拉日插值給定三個插值點

,,其中

互不相等,怎樣構造函數(shù)

的二次的(拋物線)插值多項式?平面上的三個點能確定一條次曲線,如圖2-3所示。2.2.3n次拉格朗日插值

給定平面上兩個互不相同的插值點

,有且僅有一條通過這兩點的直線;給定平面上三個互不相同的插值點

,

,有且僅有一條通過這三個點的二次曲線;給定平面上,個互不相同的插值點

,互不相同是指

互不相等,是否有且僅有一條不高于

次的插值多項式曲線,如果曲線存在,那么如何簡單地作出這條

次插值多項式曲線?分析:

次多項式

,它完全由

個系數(shù)

決定。若曲線

通過給定平面上

個互不相同的插值點

,

,則

應滿足

,事實上一個插值點就是一個插值條件。將

,

依次代入

中得到線性方程組:方程組的系數(shù)行列式是范德蒙(Vandermonde)行列式:通過求解方程組得到插值多項式

,因其計算量太大而不可取,仿照線性以及二次插值多項式的拉格朗日形式,我們可構造

次拉格朗日插值多項式。對于

個互不相同的插值節(jié)點

,由

次插值多項式的惟一性,可對每個插值節(jié)點

作出相應的

次插值基函數(shù)

。要求

的零點,因此可設

2.2.4拉格朗日計算2.2.5基于matlab的拉格朗日程序設計由于拉格朗日在matlab中沒有進行函數(shù)定義,所以進行拉格朗日較其他程序的編寫稍微復雜。1)在工作空間建立Folder文件夾;2)建立M文件定義lagrange函數(shù):%%lagrange.mfunctionf=lagrange(x,fx,inx)n=length(x);m=length(inx);fori=1:mz=inx(i);s=0.0fork=1:np=1.0;forj=1:nifj~=kp=p*(z-x(j))/(x(k)-x(j));endends=s+p*fx(k);endf(i)=s;end3)建立執(zhí)行m文件:x=[-2.000.001.002.00];y=[17.001.002.0017.00]x0=[-2:4/3:2];y0=lagrange(x,y,x0);x1=0.6;y1=lagrange(x,y,x1)sufigurebplot(1,2,1)plot(x,y,'o',x0,y0,'--r')legend('原曲線','三次拉格朗日插值')title('例題')2.2.6rung(龍格)現(xiàn)象并不是插值多項式的次數(shù)越高,插值效果就越好,精度也不一定是隨次數(shù)的提高而升高,這種現(xiàn)象在上個世紀初由Runge發(fā)現(xiàn),故稱runge現(xiàn)象Runge現(xiàn)象在matlab中體現(xiàn):1)建立文件名為lagrange1.m的函數(shù)functioncy=lagrange(x,y,n,cx)m=length(cx);cy=zeros(m,1);fork=1:n+1t=ones(m,1);forj=1:n+1ifj~=kt=t.*(cx-x(j))./(x(k)-x(j));endendcy=cy+y(k).*t;end2)體現(xiàn)runge現(xiàn)象:fori=1:18x=-5:10/i:5;y=1./(1+x.^2);cx=-5:0.0001:5;cy=lagrange1(x,y,i,cx');subplot(6,3,i)plot(cx,cy)axis([-5,5,-0.5,2])holdont=-5:0.0001:5;y=1./(1+t.^2);plot(t,y,'r')end2.3.4小結

鑒于高次插值不收斂又不穩(wěn)定的特點,低次插值既具有收斂性又具有穩(wěn)定性,因此低次值更具有實用價值,但是低次插值的光滑性較差,比如分段線性插值多項式在插值區(qū)間中僅具有連續(xù)性,在插值節(jié)點處有棱角,一階導數(shù)不存在;分段三次Hermite插值多項式在插值區(qū)間中僅具有一階導數(shù)即一階光滑性但不具備二階光滑性,不能滿足某些實際應用比如汽車、輪船、飛機等的外形中流線形設計。樣條是在二十世紀初期經(jīng)常用于圖樣設計的一種富有彈性的細長條,多個樣條互相彎曲連接后沿其邊緣畫出的曲線就是三次樣條曲線。后來數(shù)學上對其進行了抽象,定義了m次樣條函數(shù),并成為數(shù)值逼近的重要研究分枝,進一步擴大了樣條函數(shù)的應用范圍。結

論本課題利用各類算法,以matlab為平臺,設計了分段插值,三次樣條,曲線擬合以及拉格朗日插值幾種逼近方式,并且對幾種逼近方式的優(yōu)缺點進行了對比。使用matlab設計上面的幾種方法可以有效快速地解決在科學研究與工程分析學上的實際問題,雖然這些算法都可以通過C,C++以及Fortran等語言編寫程序實現(xiàn),但是相對于matlab計算過程都比較復雜。Matlab提供了強大的矩陣處理和繪圖功能,給出了一個融合計算、可視化和程序設計的交互環(huán)境,操作簡便,能高效求解各種復雜工程問題并實現(xiàn)計算結果的可視化。Matlab本身已經(jīng)包含了一些插值和擬合的函數(shù),能夠方便地實現(xiàn)函數(shù)逼近。本文設計的基于matlab的數(shù)值逼近主要實現(xiàn)了以下功能:使用擬合的方式在matlab7中實現(xiàn)數(shù)值逼近,其中擬合分為線性擬合和曲線擬合,本設計以曲線擬合為主。使用插值的方式在matlab7中實現(xiàn)數(shù)值逼近,其中采用了三種插值方式——分段插值,三次樣條插值和拉格朗日插值。其中特別說明了拉格朗日高次插值的龍格現(xiàn)象。使用上述的兩種方式進行應用,表明了基于matlab的數(shù)值逼近在科學研究與工程分析學的重要意義。上述的幾種方法都是實現(xiàn)函數(shù)逼近的有效處理法,這里就其Matlab的實現(xiàn)方法進行了研究,給出了Matlab實現(xiàn)的源程序,并得出了仿真結果。采用Matlab進行數(shù)據(jù)處理,克服了計算機高級語言編程復雜的問題,調試方便,運行效率比較高,還能夠快捷地得到圖文并茂的處理結果,這在工程分析和科學研究中會越來越重要的作用。

參考文獻[1]徐躍良.數(shù)值分析[M].成都:西南交通大學出版社,2005.[2]王正林,劉明.精通Matlab7[M].北京:電子工業(yè)出版杜,2006.[3]周開利,鄧春暉.Matlab基礎及其應用教程[M].北京:北京大學出版社,2007.[4]羅成漢,劉小山.曲線擬合法的Matlab實現(xiàn)[J].現(xiàn)代電子技術,2003,26(20):16—18.[5]王可,毛志假.基于Matlab實現(xiàn)最/Ix--乘曲線擬合[J].北京廣播學院學報:自然科學版,2005(2):52—56.[6]陳奮策.Matlab在數(shù)據(jù)處理和數(shù)值模擬中的應用[J].福建教育學院學報,2007(1):107—110.[7]董長虹.Matlab神經(jīng)網(wǎng)絡與應用[M]北京:國防工業(yè)出版社,2005.[8]HornikK,StinchcombeM,WhiteH.MultilayerFeedfor—wardNetworksareUniversalApproximators[J].NeuralNetworks,1996(3):359—366.[9]CHUICK

溫馨提示

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

評論

0/150

提交評論