




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)名稱(chēng): 實(shí)驗(yàn)一 拉格朗日插值1 引言我們?cè)谏a(chǎn)生活中常常會(huì)遇到這樣的問(wèn)題:某個(gè)實(shí)際問(wèn)題中,函數(shù)f(x)在區(qū)間a,b上存在且連續(xù),但卻很難找到其表達(dá)式,只能通過(guò)實(shí)驗(yàn)和觀測(cè)得到有限點(diǎn)上的函數(shù)表。顯然,根據(jù)這些點(diǎn)的函數(shù)值來(lái)求其它點(diǎn)的函數(shù)值是非常困難的。有些情況雖然可以寫(xiě)出表達(dá)式,但結(jié)構(gòu)復(fù)雜,使用不方便。所以我們總是希望根據(jù)已有的數(shù)據(jù)點(diǎn)(或函數(shù)表)來(lái)構(gòu)造某個(gè)簡(jiǎn)單函數(shù)P(x)作為f(x)的近似值。插值法是解決此類(lèi)問(wèn)題的一種比較古老的、但卻很常用的方法。它不僅直接廣泛地應(yīng)用于生產(chǎn)實(shí)際和科學(xué)研究中,而且也是進(jìn)一步學(xué)習(xí)數(shù)值計(jì)算方法的基礎(chǔ)。2 實(shí)驗(yàn)?zāi)康暮鸵筮\(yùn)用Matlab編寫(xiě)三個(gè).m文件,定義三種插值函數(shù)
2、,要求一次性輸入整張函數(shù)表,并利用計(jì)算機(jī)選擇在插值計(jì)算中所需的節(jié)點(diǎn)。分別通過(guò)分段線(xiàn)性插值、分段二次插值和全區(qū)間上拉格朗日插值計(jì)算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è)函數(shù)y=在插值區(qū)間a,b上連續(xù),且在n+1個(gè)不同的插值節(jié)點(diǎn)ax0,x1,xnb上分別取值y0,y1,yn。目的是要在一個(gè)性質(zhì)優(yōu)良、便于計(jì)算的插值函數(shù)類(lèi)中,求一簡(jiǎn)單函數(shù)P(x),滿(mǎn)足插值條件P(xi)=yi(i=0,1,n),而在其
3、他點(diǎn)xxi上,作為f(x)近似值。求插值函數(shù)P(x)的方法稱(chēng)為插值法。在本實(shí)驗(yàn)中,采用拉格朗日插值法。分段低次插值當(dāng)給定了n+1個(gè)點(diǎn)x0x1xn上的函數(shù)值y0,y1,yn后,若要計(jì)算xxi處函數(shù)值f(x)的近似值,可先選取兩個(gè)節(jié)點(diǎn)xi-1與xi使xxi-1,xi,然后在小區(qū)間xi-1,xi上作線(xiàn)性插值,即得這種分段低次插值叫分段線(xiàn)性插值,又稱(chēng)折線(xiàn)插值。類(lèi)似地,我們可以選取距離x最近的三個(gè)節(jié)點(diǎn)xi-1,xi與xi+1,然后進(jìn)行二次插值,即得這種分段低次插值叫分段二次插值,又稱(chēng)分段拋物線(xiàn)插值。全區(qū)間上拉格朗日插值對(duì)節(jié)點(diǎn)xi(i=0,1,n)中任一點(diǎn)xk(0kn),作一n次多項(xiàng)式lk(x),使它在該
4、點(diǎn)上的取值為1,在其余點(diǎn)xi(i=0,1,k-1,k+1,n)上取值為零。對(duì)應(yīng)于每一節(jié)點(diǎn)xk(k=0,1,n),都能寫(xiě)出一個(gè)滿(mǎn)足此條件的多項(xiàng)式,這樣寫(xiě)出了n+1個(gè)多項(xiàng)式l0(x),l1(x),ln(x),其中;由條件可得于是我們可以得出如下的拉格朗日n次插值多項(xiàng)式(對(duì)于全區(qū)間上的插值,n取函數(shù)表的長(zhǎng)度)(2) 流程圖 分段線(xiàn)性插值分段二次插值 全區(qū)間拉格朗日插值4 程序代碼及注釋1、分段線(xiàn)性插值%分段線(xiàn)性插值function y=piece_linear(x0,y0,x)% x0,y0為已知點(diǎn),x為待求點(diǎn)n=length(x0);p=length(y0);m=length(x);% n,p,m
5、分別為x0,y0,x長(zhǎng)度if n=p fprintf(Error! Please input again!n);% x0和y0長(zhǎng)度不等時(shí),報(bào)錯(cuò)elsefor i=1:m z=x(i); sum=0.0; l=0;%給l賦初值,根據(jù)x的值確定l if zx0(n) fprintf(Error!x(%d) is out of range!n,i); break; end%當(dāng)插值點(diǎn)超出范圍時(shí),報(bào)錯(cuò) 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; for s=l-1:l
6、 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é)果和所需節(jié)點(diǎn)endendend2、分段二次插值%分段二次插值function y=piece_square(x0,y0,x)% x0,y0為已知點(diǎn),x為待求點(diǎn)n=length(x0);p=length(y0);m=length(x);% n,p,m分別為x0,y0,x
7、長(zhǎng)度if n=p fprintf(Error! Please input again!n);% x0和y0長(zhǎng)度不等時(shí),報(bào)錯(cuò)elsefor i=1:m z=x(i); sum=0.0; l=0;%給l賦初值,根據(jù)x的值確定lif zx0(n) fprintf(Error!x(%d) is out of range!n,i); break; end%當(dāng)插值點(diǎn)超出范圍時(shí),報(bào)錯(cuò) 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=n-1; end%輸入正
8、確時(shí),若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é)果與所需節(jié)點(diǎn)endendend3、拉格朗日全區(qū)間插值%拉格朗日全區(qū)間插值function y=lagran
9、ge(x0,y0,x)% x0,y0為已知點(diǎn),x為待求點(diǎn)n=length(x0);p=length(y0);m=length(x);%n,p,m分別為x0,y0,x長(zhǎng)度if n=p fprintf(Error! Please input again!n);%x0和y0長(zhǎng)度不等時(shí),報(bào)錯(cuò)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%當(dāng)插值點(diǎn)超出范圍時(shí),報(bào)錯(cuò) for k=1:n p=1.0; for j=1:n if j=k p=p*(z-x0(j)/(x0(k)
10、-x0(j); end end s=p*y0(k)+s; end y(i)=s;fprintf(y(%d)=%.5fn,i,y(i);%輸出插值結(jié)果endendend5 算例分析1、 測(cè)試示例 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=lagrange(x,y,x0)y(1
11、)=2.50000Error!x(2) is out of range!y2 = 2.50002、首先輸入函數(shù)變及待求點(diǎn) 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工作目錄中有三個(gè).m文件3、分段線(xiàn)性插值y0=piece_linear(x,y,x0)y(1)=0.394039x1=0.100 y1=0.39695,x2=0.195 y2=0.39142y(2)=0.380067x1=0.300 y1=0.38138,
12、x2=0.401 y2=0.36812y(3)=0.356927x1=0.401 y1=0.36812,x2=0.500 y2=0.35206y0 = 0.3941 0.3871 0.3569266666666674、分段二次插值 y1=piece_square(x,y,x0)y(1)=0.394460x1=0.100 y1=0.39695x2=0.195 y2=0.39142x3=0.300 y3=0.38138y(2)=0.380225x1=0.195 y1=0.39142x2=0.300 y2=0.38138x3=0.401 y3=0.36812y(3)=0.357247x1=0.300
13、 y1=0.38138x2=0.401 y2=0.36812x3=0.500 y3=0.35206y1 = 0.394460319548872 0.3873 0.3572468448844885、全區(qū)間拉格朗日插值 y2=lagrange(x,y,x0)y(1)=0.39447y(2)=0.38022y(3)=0.35722y2 = 0.394472803878061 0.3832 0.3572221123394856 討論與結(jié)論1、使用tic,toc函數(shù)計(jì)算下列四種方法計(jì)算上述問(wèn)題所運(yùn)行的時(shí)間Functionlagrange(x0,y0,x)piece_linear(x0,y0,x)piec
14、e_square(x0,y0,x)運(yùn)行時(shí)間(s)0.0002720.0003750.000272從三次實(shí)驗(yàn)結(jié)果可知,三個(gè)程序的運(yùn)行時(shí)間都很短。2、程序優(yōu)化由分段線(xiàn)性插值和分段二次插值的原理,x取值在函數(shù)表范圍內(nèi)時(shí),插值結(jié)果有意義,而當(dāng)x取值在函數(shù)表范圍以外,利用分段線(xiàn)性插值公式仍可以進(jìn)行運(yùn)算并得到一個(gè)值,但其結(jié)果不準(zhǔn)確;分段二次插值則無(wú)法找到三個(gè)合適的點(diǎn)以求插值,不予以輸出結(jié)果;若輸入的函數(shù)表x與y的長(zhǎng)度不相等,則無(wú)法插值。所以加入以下判斷以提高插值的準(zhǔn)確性n=length(x0);p=length(y0);m=length(x);if n=p fprintf(Error! Please input again!n);if zx0(n) fprintf(Error!x(%d
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新能源開(kāi)發(fā)用地承包經(jīng)營(yíng)合同模板
- 2025年企業(yè)間合資經(jīng)營(yíng)合同范本
- 如何設(shè)定可達(dá)成的財(cái)務(wù)目標(biāo)計(jì)劃
- 2025年鈷粉系列項(xiàng)目合作計(jì)劃書(shū)
- 強(qiáng)化小學(xué)生的公平公正計(jì)劃
- 幼兒園國(guó)際交流活動(dòng)策劃計(jì)劃
- 注重班級(jí)文化融合的必要性計(jì)劃
- 圖書(shū)目錄員的工作計(jì)劃
- 藝術(shù)教育與演藝技巧社團(tuán)工作計(jì)劃
- 提升工作效率的年度策略探討計(jì)劃
- 中國(guó)航天日揚(yáng)帆起航逐夢(mèng)九天(課件)-小學(xué)主題班會(huì)通用版
- 動(dòng)脈血?dú)馕鰳?biāo)本采集
- DB42T 1049-2015房產(chǎn)測(cè)繪技術(shù)規(guī)程
- 平面鋼閘門(mén)課程
- 幼兒園食堂生鮮進(jìn)貨記錄表
- nasm cpt考試試題及答案
- 2023年吉林省吉林市統(tǒng)招專(zhuān)升本民法自考真題(含答案)
- 幼兒園大班教案《改錯(cuò)》含反思
- 2023-2024學(xué)年四川省涼山州小學(xué)數(shù)學(xué)二年級(jí)上冊(cè)期末深度自測(cè)測(cè)試題
- 學(xué)校副校長(zhǎng)述職報(bào)告PPT模板下載
- MT 211-1990煤礦通信、檢測(cè)、控制用電工電子產(chǎn)品質(zhì)量檢驗(yàn)規(guī)則
評(píng)論
0/150
提交評(píng)論