




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上實驗名稱: 實驗一 拉格朗日插值1 引言我們在生產生活中常常會遇到這樣的問題:某個實際問題中,函數(shù)f(x)在區(qū)間a,b上存在且連續(xù),但卻很難找到其表達式,只能通過實驗和觀測得到有限點上的函數(shù)表。顯然,根據這些點的函數(shù)值來求其它點的函數(shù)值是非常困難的。有些情況雖然可以寫出表達式,但結構復雜,使用不方便。所以我們總是希望根據已有的數(shù)據點(或函數(shù)表)來構造某個簡單函數(shù)P(x)作為f(x)的近似值。插值法是解決此類問題的一種比較古老的、但卻很常用的方法。它不僅直接廣泛地應用于生產實際和科學研究中,而且也是進一步學習數(shù)值計算方法的基礎。2 實驗目的和要求運用Matlab編寫三個
2、.m文件,定義三種插值函數(shù),要求一次性輸入整張函數(shù)表,并利用計算機選擇在插值計算中所需的節(jié)點。分別通過分段線性插值、分段二次插值和全區(qū)間上拉格朗日插值計算f(0.15),f(0.31),f(0.47)的近似值。已知函數(shù)表如下:x0.00.10.1950.30.4010.5f(x)0.398940.396950.391420.381380.368120.352063 算法原理與流程圖(1)原理設函數(shù)y=在插值區(qū)間a,b上連續(xù),且在n+1個不同的插值節(jié)點ax0,x1,xnb上分別取值y0,y1,yn。目的是要在一個性質優(yōu)良、便于計算的插值函數(shù)類中,求一簡單函數(shù)P(x),滿足插值條件P(xi)=yi
3、(i=0,1,n),而在其他點xxi上,作為f(x)近似值。求插值函數(shù)P(x)的方法稱為插值法。在本實驗中,采用拉格朗日插值法。分段低次插值當給定了n+1個點x0x1xn上的函數(shù)值y0,y1,yn后,若要計算xxi處函數(shù)值f(x)的近似值,可先選取兩個節(jié)點xi-1與xi使xxi-1,xi,然后在小區(qū)間xi-1,xi上作線性插值,即得這種分段低次插值叫分段線性插值,又稱折線插值。類似地,我們可以選取距離x最近的三個節(jié)點xi-1,xi與xi+1,然后進行二次插值,即得這種分段低次插值叫分段二次插值,又稱分段拋物線插值。全區(qū)間上拉格朗日插值對節(jié)點xi(i=0,1,n)中任一點xk(0kn),作一n次
4、多項式lk(x),使它在該點上的取值為1,在其余點xi(i=0,1,k-1,k+1,n)上取值為零。對應于每一節(jié)點xk(k=0,1,n),都能寫出一個滿足此條件的多項式,這樣寫出了n+1個多項式l0(x),l1(x),ln(x),其中;由條件可得于是我們可以得出如下的拉格朗日n次插值多項式(對于全區(qū)間上的插值,n取函數(shù)表的長度)(2) 流程圖 分段線性插值分段二次插值 全區(qū)間拉格朗日插值4 程序代碼及注釋1、分段線性插值%分段線性插值function y=piece_linear(x0,y0,x)% x0,y0為已知點,x為待求點n=length(x0);p=length(y0);m=leng
5、th(x);% n,p,m分別為x0,y0,x長度if n=p fprintf(Error! Please input again!n);% x0和y0長度不等時,報錯elsefor i=1:m z=x(i); sum=0.0; l=0;%給l賦初值,根據x的值確定l if zx0(n) fprintf(Error!x(%d) is out of range!n,i); break; end%當插值點超出范圍時,報錯 for j=2:n if zx0(j) l=j; end if l=0 break; end end%一旦l有非零值,則終止循環(huán),選出合適的l for k=l-1:l a=1.0
6、; for s=l-1:l if s=k a=a*(z-x0(s)/(x0(k)-x0(s); end end sum=sum+y0(k)*a; end y(i)=sum; fprintf(y(%d)=%fnx1=%.3f y1=%.5f,x2=%.3f y2=%.5fnn,i,y(i),x0(l-1),y0(l-1),x0(l),y0(l);%輸出插值結果和所需節(jié)點endendend2、分段二次插值%分段二次插值function y=piece_square(x0,y0,x)% x0,y0為已知點,x為待求點n=length(x0);p=length(y0);m=length(x);% n,
7、p,m分別為x0,y0,x長度if n=p fprintf(Error! Please input again!n);% x0和y0長度不等時,報錯elsefor i=1:m z=x(i); sum=0.0; l=0;%給l賦初值,根據x的值確定lif zx0(n) fprintf(Error!x(%d) is out of range!n,i); break; end%當插值點超出范圍時,報錯 for j=1:n-2 p=0.5*(x0(j)+x0(j+1); if zp l=j; end if l=0 break; end%一旦l有非零值,則終止循環(huán),選出合適的l end if l=0 l
8、=n-1; end%輸入正確時,若l還等于零,l=n-1 for k=l-1:l+1 a=1.0; for s=l-1:l+1 if s=k a=a*(z-x0(s)/(x0(k)-x0(s); end end sum=sum+y0(k)*a; end y(i)=sum;fprintf(y(%d)=%fnx1=%.3f y1=%.5fnx2=%.3f y2=%.5fnx3=%.3f y3=%.5fnn,i,y(i),x0(l-1),y0(l-1),x0(l),y0(l),x0(l+1),y0(l+1);%輸出插值結果與所需節(jié)點endendend3、拉格朗日全區(qū)間插值%拉格朗日全區(qū)間插值func
9、tion y=lagrange(x0,y0,x)% x0,y0為已知點,x為待求點n=length(x0);p=length(y0);m=length(x);%n,p,m分別為x0,y0,x長度if n=p fprintf(Error! Please input again!n);%x0和y0長度不等時,報錯elsefor i=1:m z=x(i); s=0.0; if zx0(n) fprintf(Error!x(%d) is out of range!n,i); break; end%當插值點超出范圍時,報錯 for k=1:n p=1.0; for j=1:n if j=k p=p*(z
10、-x0(j)/(x0(k)-x0(j); end end s=p*y0(k)+s; end y(i)=s;fprintf(y(%d)=%.5fn,i,y(i);%輸出插值結果endendend5 算例分析1、 測試示例 x=1 2 3 4; y=2 3 4; y2=lagrange(x,y,x0)Error! Please input again! x=1 2 3 4; y=2 3 4 5; x0=0.5 5.5; y2=lagrange(x,y,x0)Error!x(1) is out of range! x=1 2 3 4; y=2 3 4 5; x0=1.5 5.5; y2=lagran
11、ge(x,y,x0)y(1)=2.50000Error!x(2) is out of range!y2 = 2.00002、首先輸入函數(shù)變及待求點 x=0.0 0.1 0.195 0.3 0.401 0.5; y=0.39894 0.39695 0.39142 0.38138 0.36812 0.35206; x0=0.15 0.31 0.47;注:保證在matlab工作目錄中有三個.m文件3、分段線性插值y0=piece_linear(x,y,x0)y(1)=0.x1=0.100 y1=0.39695,x2=0.195 y2=0.39142y(2)=0.x1=0.300 y1=0.38138
12、,x2=0.401 y2=0.36812y(3)=0.x1=0.401 y1=0.36812,x2=0.500 y2=0.35206y0 = 0.4211 0.2871 0.66674、分段二次插值 y1=piece_square(x,y,x0)y(1)=0.x1=0.100 y1=0.39695x2=0.195 y2=0.39142x3=0.300 y3=0.38138y(2)=0.x1=0.195 y1=0.39142x2=0.300 y2=0.38138x3=0.401 y3=0.36812y(3)=0.x1=0.300 y1=0.38138x2=0.401 y2=0.36812x3=0
13、.500 y3=0.35206y1 = 0.8872 0.5373 0.44885、全區(qū)間拉格朗日插值 y2=lagrange(x,y,x0)y(1)=0.39447y(2)=0.38022y(3)=0.35722y2 = 0.8061 0.4732 0.94856 討論與結論1、使用tic,toc函數(shù)計算下列四種方法計算上述問題所運行的時間Functionlagrange(x0,y0,x)piece_linear(x0,y0,x)piece_square(x0,y0,x)運行時間(s)0.0.0.從三次實驗結果可知,三個程序的運行時間都很短。2、程序優(yōu)化由分段線性插值和分段二次插值的原理,x取值在函數(shù)表范圍內時,插值結果有意義,而當x取值在函數(shù)表范圍以外,利用分段線性插值公式仍可以進行運算并得到一個值,但其結果不準確;分段二次插值則無法找到三個合適的點以求插值,不予以輸出結果;若輸入的函數(shù)表x與y的長度不相等,則無法插值。所以加入以下判斷以提高插值的準確性n=length(x0);p=length(y0);m=length(x);if n=p fprintf(Error! Please input again!n);if zx0(n) fprintf(Error!x(%
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業(yè)園區(qū)供熱可行性研究報告
- 中國除塵環(huán)保設備行業(yè)市場前景預測及投資價值評估分析報告
- 八達電氣(昆山)有限公司介紹企業(yè)發(fā)展分析報告模板
- 2025年體育場地與設施建設市場調研報告
- 直郵讀物商業(yè)計劃書示范文本圖文
- 2025年農業(yè)物聯(lián)網在精準種植中的智能溫室環(huán)境監(jiān)測與優(yōu)化策略研究報告
- 教育信息化基礎設施在教育信息化產業(yè)創(chuàng)新中的應用前景報告
- 2025年裝備制造業(yè)自主創(chuàng)新能力提升的知識產權戰(zhàn)略研究報告
- 數(shù)字人民幣跨境支付技術挑戰(zhàn)2025年解決方案與技術創(chuàng)新報告
- 2025年醫(yī)藥行業(yè)CRO模式下的合同管理與風險管理報告
- 員工工資條模板
- 2023年湖南省長沙市中考英語真題(原卷)
- 會議實務之安排與會人員返程
- 上海市專職消防隊建設標準(常用版)
- 中美乒乓外交
- 自動循跡小車課程設計
- 兒童行為量表(CBCL)Achenbach
- 2023年南方科技大學機試樣題練習
- GB/T 24282-2021塑料聚丙烯中二甲苯可溶物含量的測定
- 講義配電房可視化管理標準課件
- 《新疆精河縣烏蘭達坂脈石英礦資源儲量核實報告》礦產資源儲量
評論
0/150
提交評論