二元拉格朗日插值Fortran程序設(shè)計(jì)實(shí)驗(yàn)_第1頁
二元拉格朗日插值Fortran程序設(shè)計(jì)實(shí)驗(yàn)_第2頁
二元拉格朗日插值Fortran程序設(shè)計(jì)實(shí)驗(yàn)_第3頁
二元拉格朗日插值Fortran程序設(shè)計(jì)實(shí)驗(yàn)_第4頁
二元拉格朗日插值Fortran程序設(shè)計(jì)實(shí)驗(yàn)_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

二元拉格朗日插值一實(shí)驗(yàn)?zāi)康?程序功能利用FORTRAN編程實(shí)現(xiàn)二元拉格朗日插值求解函數(shù)在給定點(diǎn)的函數(shù)值。設(shè)已知插值節(jié)點(diǎn)(xi,yi)(i=1,…,m,j=1,…,n)及對應(yīng)函數(shù)值zij=f(xi,yi)(i=1,…,m,j=1,…,n),用拉格朗日插值法求函數(shù)在給定點(diǎn)(x,y)處的對應(yīng)函數(shù)值z。二實(shí)驗(yàn)內(nèi)容1、 了解和學(xué)習(xí)FORTRAN程序語言,會編寫一些小程序;2、 學(xué)習(xí)和理解拉格朗日插值的原理及方法,并拓展至二元拉格朗日插值方法;3、 利用FORTRAN編程實(shí)現(xiàn)二元拉格朗日插值法;4、 舉例進(jìn)行求解,并對結(jié)果進(jìn)行分析。三實(shí)驗(yàn)原理及方法1、基本概念已知函數(shù)y=f(x)在若干點(diǎn)七的函數(shù)值七二/匕)(i=0,1,...,n)一個差值問題就是求一“簡單”的函數(shù)p(x):p(x)二七’詐0,1,...?, ⑴則p(x)為f(x)的插值函數(shù),而f(x)為被插值函數(shù)會插值原函數(shù),x0,氣,x2,...,七為插值節(jié)點(diǎn),式(1)為插值條件,如果對固定點(diǎn)x求f(x)數(shù)值解,我們稱x為一個插值節(jié)點(diǎn),f(x)ap(x)稱為^點(diǎn)的插值,當(dāng)"[min(X0,氣,x2,...,xn),max(%,氣,x2,...,xn)]時,稱為內(nèi)插,否則稱為外插式外推,特別地,當(dāng)p(x)為不超過n次多項(xiàng)式時稱為n階Lagrange插值。

2、Lagrange插值公式2.1線性插值%(1)設(shè)已知%,X及J—f(x)y—f(x)L(x)為不招過一次多項(xiàng)式日0, 1 0—(0) —1—1(1),1'滿足L1(xo)=*,L1(x1)—七,幾何上,L1(x)為過(xo,*),(%,y1)的直線,從而得到TOC\o"1-5"\h\zL(x)-y+隊(duì)(x-xo). (2)1 0x一x(3)為了推廣到高階問題,我們將式(2(3)L(x)—l(x)y+1(x)y.1 0 0 1 1其中,x一x x一x 1- 0-l0(x)—x一xl0(x)—0 1,1(x)—1 0均為1次多項(xiàng)式且滿足l(x)—1且l(x)—0?l(x)—0且l(x)—1c0 0 — 1(0)—u, 0 ] — 1(1)—兩關(guān)系式可統(tǒng)一寫成l(xl(x)=ii1(i=j)0(i豐j)(4)2.2 n階Lagrange插值Ln(x)(5)設(shè)已知x0,x1,x2,…,xn及yi-f(xi)(i=0,1,.....,n),L(x)為不超過n次多項(xiàng)式且滿足L(丹)=七(i=0,1,...n(5)L(x)=l(x)y+...+1(x)y=^l(x)y曰左口n 0 0 nn ii易知 0其中,l(x)均為n次多項(xiàng)式且滿足式(4)(i,j-0,1,...,n),再由x((j,i)mx-x.為n次多項(xiàng)式l(x)的n個根,知匕(x)—cj;0 .最后,由

ll(x)=c計(jì)(xij ij=0j&-x.)=1nC= 總之得到:j=0總之得到:j=0j&(6)(7)勺(x)=丈(6)(7)i=0nx一xl(x)=n L.j=0ijjwi(6)式為n階Lagrange插值公式,其中,(i=0,1,…,n)稱為n階Lagrange插值的基函數(shù)。3二元拉格朗日插值方法對于一元函數(shù)y=f(x),得到n+1個數(shù)據(jù)點(diǎn)(\X)(i=0,1,…,n),可由(6)、(7)式求得n階Lagrange插值公式,然后求函數(shù)在y=f(x)在x點(diǎn)的函數(shù)值。對于二元函數(shù)七=f(x,^),若知道數(shù)據(jù)點(diǎn)*,j=f(土,七)(i=1,…,m,j=1,…,n),可利用兩次拉格朗日插值計(jì)算Zf(x,')在點(diǎn)(x,y)的函數(shù)值,方法如下:(1) 對每個Xi(i=1,…,m)^七(j=1,…,n)為插值節(jié)點(diǎn),%(j=1,…,n)為對應(yīng)函數(shù)值,y為插值變量,作一元函數(shù)插值得ui(i=1,…,m);(2) 以土(i=1,…,m)為插值節(jié)點(diǎn),Ui(i=1,…,m)為對應(yīng)函數(shù)值,x為插值變量,作一元函數(shù)插值求得(x,y)點(diǎn)的值z。四FORTRAN編程開發(fā)環(huán)境使用CompaqVisualFortran6.6進(jìn)行程序設(shè)計(jì),編程實(shí)現(xiàn)二元拉格朗日插值算法。使用說明先編出一元拉格朗日差值算法子程序lagrange,然后編寫二元拉格朗日插值算法程序lagrange2,其中兩次調(diào)用lagrange子程序。Lagrange(xa,ya,n,x,y)n 整型變量,輸入?yún)?shù),節(jié)點(diǎn)個數(shù)xa n個元素的一維實(shí)數(shù)型數(shù)組,輸入?yún)?shù),存放自變量插值節(jié)點(diǎn)x.(i=1,…,n)yan個元素的一維實(shí)數(shù)型數(shù)組,輸入?yún)?shù),存放函數(shù)值(y「???,yn)Tx 實(shí)型變量,輸入?yún)?shù),插值自變量y 實(shí)型變量,輸出參數(shù),所求值““““““““““““““““““““““““““““““““““““““““““““““““““““““******************************************************Lagrange2(x1a,x2a,ya,m,n,x1,x2,y)m 整型變量,輸入?yún)?shù),x自變量節(jié)點(diǎn)個數(shù)n 整型變量,輸入?yún)?shù),y自變量節(jié)點(diǎn)個數(shù)xlam個元素的一維實(shí)數(shù)型數(shù)組,輸入?yún)?shù),存放x自變量插值節(jié)點(diǎn)x.(i=1,…,m)x2an個元素的一維實(shí)數(shù)型數(shù)組,輸入?yún)?shù),存放y自變量插值節(jié)點(diǎn)y.(j=1,…,n)xl 實(shí)型變量,輸入?yún)?shù),插值x自變量x2 實(shí)型變量,輸入?yún)?shù),插值y自變量yamXn個元素的二維實(shí)數(shù)型數(shù)組,輸入?yún)?shù),存放(Xi,yj)(i=1,…,m,j=1,…,n)函數(shù)值(y1,…,y)ty 實(shí)型變量,輸出參數(shù),所求插值結(jié)果c)程序代碼Lagrange子程序SUBROUTINElagrange(xa,ya,n,x,y)TOC\o"1-5"\h\zintegern,nmax irealx,y,xa(n),ya(n),l(n),dy \parameter(nmax=10) !1integeri,j -l(1)=1 idoj=2,n il(1)=l(1)*(x-xa(j))/(xa(1)-xa(j)) !計(jì)算l1(x) \enddo !doi=2,n-1 -l(i)=1 idoj=1,i-1 il(i)=l(i)*(x-xa(j))/(xa⑴-xa(j)) !enddo !idoj=i+1,n [l(i)=l(i)*(x-xa(j))/(xa(i)-xa(j)) !計(jì)算li(x),1<i<n ;enddo ienddo !l(n)=1 -doj=1,n-1 jl(n)=l(n)*(x-xa(j))/(xa(n)-xa(j)) !計(jì)算ln(x) ienddo \y=0 !doi=1,n jy=y+l(i)*ya(i) !計(jì)算y=求和li(x)*ya(i)enddo iendsubroutinelagrange !

已知數(shù)據(jù)點(diǎn)(xa(i),ya(i))(i=0,1,…,已知數(shù)據(jù)點(diǎn)(xa(i),ya(i))(i=0,1,…,n),求插值多項(xiàng)式nx-x— x-x整’Jy=Zl(x)?ya(i)苴「⑴=*i ,其中程序中l(wèi)(n)為一維實(shí)型數(shù)組,存放先求i(x)=K (x程序中l(wèi)(n)為一維實(shí)型數(shù)組,存放先求1 2(xa(1)-xu(j))插值基函數(shù),l(1)即為〈(x);然后,對于i=2,…,n-1,i①=i(x)=[H(xF))]?n(x一皿))(xa(i)-xu(j)) (xa(i)-xu(j))J=1 J=i+1"(x-xa(j))最后計(jì)算(n)=n(x)= (xa(n)-xa(j))J=1求和得到y(tǒng)=£li(x)*ya(i)(i=1,2,…,n)對于每一個自變量乂輸入?yún)?shù),可以得到一個y輸出參數(shù)。TOC\o"1-5"\h\zLagrange2子程序,一.一.一,一,一.一,一,一,一.一.一,一,一.一,一,一,一.一.一,一,一.一,一,一,一.一」SUBROUTINEIagrange2(x1a,x2a,ya,m,n,x1,x2,y) jintegern,nmax,m,mmax irealx1,x2,y,x1a(m),x2a(n),ya(m,n) Jparameter(nmax=100,mmax=100) !iintegeri,j jrealym(mmax),yn(nmax) \doi=1,m idoj=1,n !yn(j)=ya(i,j)!對每一個xi,以(yj,zij)作為插值節(jié)點(diǎn):enddo ;calllagrange(x2a,yn,n,x2,ym(i)) !求得(xi,y)的函數(shù)值 ui ienddo \calllagrange(x1a,ym,m,x1,y) !以(xi,ui)插值點(diǎn)求(x,y)函數(shù)值!endsubroutinelagrange2 -

Lagrange2子程序說明:首先對每一個x1=x1a(i)(i=1,2,…,m),也就是x=xi,以(yj,zij)作為插值節(jié)點(diǎn),得到插值多項(xiàng)式,以y為變量,可求得(xi,y)點(diǎn)的函數(shù)值ui,程序中調(diào)用一次lagrange子程序,以x2a(即為yj,j=1,2,…,n)、yn(即為zij,j=1,2,…,n)輸入得到x2=y點(diǎn)(對應(yīng)點(diǎn)(xi,y))的值ym(i)(即為ui)(i=1,2,…,m);然后以(xi,ui)(i=1,2,…,m)為插值點(diǎn),得到插值多項(xiàng)式,以x為變量,求得點(diǎn)(x,y)點(diǎn)的函數(shù)值z=f(x,y),程序中再次調(diào)用lagrange子程序,以x1a(即為xi,i=1,2,…,m)、ym(即為ui,i=1,2,…,m)輸入得到x1=x點(diǎn)(對應(yīng)點(diǎn)(x,y))的值y,也就是z=f(x,y)使用二元拉格朗日插值法的計(jì)算值。五舉例驗(yàn)證Lagrange子程序參考了參考書《VisualBasic常用數(shù)值算法集》(何光渝,北京航科學(xué)出版社,2002)73頁?75頁,但不相同,參考書中使用了Neville算法,而以上子程序則是使用的拉格朗日插值得基本定義算法。與參考書75頁使用相同的例子進(jìn)行驗(yàn)證,f(x)=sinx,驗(yàn)證程序如下(見附件la2.f90):或bsss';或bsss';1pr(lesuirceFilesaderFiles:sduitdeFilespardaieter(m-I?Bpi-S*1^1)real叫ditrwnsitinxdi(n).y日(n)write(*T WflCicCPl1Xsa(i)=i?pi/nEodldoyrite<?pB(TlfflpAl32flpfi4pXsa(i)=i?pi/nEodldoyrite<?pB(TlfflpAl32flpfi4pT2?i.!lAlz,T^6,ft5)'>"xa, ,■interpolatBia','err-nir■do1=1P1?calll^ur+ 1調(diào)用■T^JThaJfranj*,求解¥叫-尸 迎炳誤差,即成釉8與真紹眈差enddDendpregran以下為子程.為楠斗1插通頃5驅(qū)SIJIHROIJIIHElayranqe(Mainteger“me邸心1xTyPxa(n)pjvB(n)3l[n)Tdypar抓ter(nmaK=10)integer土盤1⑴T血j=2Bne-nddD圖1驗(yàn)證一元拉格朗日算法f(x)=sinx

Iprogram11I! parameter(n=10,pi=3.1415926)! realdyij dimensionxa(n),ya(n)i write(*,*)'y=sin(x)0<x<PI'i write(*,*)'sinfunctionfrom 0toPI輸入xi輸入xi輸入yixa(i)=i*pi/n; ya(i)=sin(xa(i))i enddoiwrite(*,'(T10,A1,T20,A4,T28,A12,T46,A5)')'x','f(x)','interpolated','error'!doi=1,10x=(-0.05+i/10.0)*pi !自變量x;f=sin(x) !f(x)真實(shí)值icalllagrange(xa,ya,n,x,y) !調(diào)用子程序lagrange,求解y!dy=y-f !dy為誤差,即插值求解值與真實(shí)值之差! write(*,'(1x,3F12.6,F15.6)')x,f,y,dyIjenddojendprogram運(yùn)行后,得到:,"C:\ProgiraB.FilesMicroscTtVisualStudioMyProj...y=sin<x)0<x<PIsinfunctionfron§toPIx f interpolated error0.15708S 0-156434 0.156437 G_2101E-856-471239 0.4539?0 ^.453991 ^.8?41E-0?0.785398 0-797107 0.707107 0.1192E-661.B99E57 目.8?13B7 目.竅B容包E/N何1-413717 H-987688 0.987638 -0_59tSE-0?727876 0-987688 @.9S7668 0_596SE-07042035 B-8S1007 B.851307 -0_596^E-072-35&194 707107 8.707107 -0_59£0E-072.670354 0-4539P1 0.4539912.984513 0-156435 0.156434 -0.47GSE-B6Pressan^ke_ytocontynne▲圖2驗(yàn)證f(x)=sinx結(jié)果

以上結(jié)果與參考書(下圖)進(jìn)行對照sinefunctionfram0toPJx f(x)mterp口外tederror0,1570800.1564340.15643&,498£E-04t0.4712390.4539S00..4539911£79E-05□3853980.7A7107(h707107?5972E-O6L0995570.8910070,&91O07一,1604E-OSb4137170.&876BS0.987688,3663E-07L7E78750,98T&880.啤688i3663E—。72.0420350.8910070,891007-.1604E-062,S56L94Ck7071070.707107.5972E-062$70354Q.45399]0.453991-.3279E-052,984513p U U KK pH M JB-0.J564350.156434-.2969E-05圖3參考書f(x)=sinx驗(yàn)證結(jié)果(P76?P77)通過對比可以看到,誤差數(shù)量級差不多,說明本子程序是可行的。的。同樣對f(x)=eAx進(jìn)行驗(yàn)證,只需將以上程序中的sin更改為exp,變量x進(jìn)行相應(yīng)更改(見附件la1.f90);=:山;accS=:山;accSsssb:1preIlesjurceFiles]|lal-fgneaderFillerEsourccFilesparamcter(n=lospl=3BlM5SZfi)reardydinensioinu<x<lBeKp(M:)functionfrom(Jto1■do1=1,n)=1*1.0/n ?前入心ya(l)=&Kp(Ka(i))TteXyienddowrite(?5■(Tlti.Rl,T20sn^p1281,^123116,05)■〕?#.,Bf(s)i',1interpolatGfl",■error■do1=1,100,10) T自變量囂F=eKP(M) [初X慎箸值call13grange(xa,yasii5x,y)[調(diào).用乎程grange,求解9dy=y-f,可為誤差,即插節(jié)京解借與真實(shí)值之差writer, Jenddoendproigram『以下為子■程序技格朗日MlagranqeSUDliUulJNLlagrang&(Ha,p<i,nintenern,nnax圖4f(x)=eAx驗(yàn)證程序^C:\Progra>files\IicrosoftVisualStudio\ByPr.ijec__y=eAy=eAx0<x<l.0exptx^xU.05^0000.156000H-250880H_350800H_450800?.55@0g@0_750000H.9&0003Pt*essJcmyintei?poLated

1.051261

1.161835

1.284S36

1.419068

1.568312

1.733253

1.915541

2.117000

2.339647

2.58570HfromH"to1f<x>1.0512711.161S341.2840251.4190681.5603121.7332531.9155412.1170002.3396472.585710c^ntinue

ei'i'oi?-9.¥65tE-053.3576E-060.2384E-060.3576E-06ti.008PiE+000.1192E-06-0.1192E-06-0.2384E-06^.(J00?)E+R0-0.1192E-05圖5f(x)=eAx驗(yàn)證結(jié)果exponentialfunctionfrom0to1XfWinterelatederror0.050000L0512711.051271,971BE-O8M1500001.161834L161834—+6396E—090.2500001.2840?51.284025.1165E-O90.350000L4190681,419068一.3129E—Q90.4500。。1.5683121,568312.7146E710.5500001.7332531.733253?7145E-110.650000L孫55411.915541一,3129E—1O0.7500002,1170002.117OO0■116SE—。90.8500002..3396472,339647-+6396E-090.9500002.58571Q2^85710—.5?9犯一。9#w*?#<t*^*###*#***圖6參考書77頁f(x)=eAx驗(yàn)證結(jié)果對比兩個驗(yàn)證結(jié)果可以看到參考書的插值程序計(jì)算的誤差比較小(10-ii~10-8),而本實(shí)驗(yàn)的對f(x)=eAx驗(yàn)證結(jié)果誤差較大(10-6~10-5,其中誤差為0的除外),說明Neville插值方法改善了精度。下面進(jìn)行二元拉格朗日插值計(jì)算驗(yàn)證,同樣實(shí)用參考書P104的例子進(jìn)行驗(yàn)證,函數(shù)為f(x,y)=eysinx,0<x<PI,0vyv1。編寫驗(yàn)證程序如下(見附件l2.f90):

.program12Ij parameter(n=5,pi=3.1415926)\ realdyI dimensionx1a(n),x2a(n),ya(n,n)! write(*,*)'f(x)=sin(x)eAy0<x<PI,0<y<1'! write(*,*)'f(x)=sinx*eAyfunction from 0 toPI,0to1'i[doi=1,nx1a(i)=i*pi/n !輸入xii doj=1,n! x2a(j)=1.0*j/n !輸入yj- ya(i,j)=sin(x1a(i))*exp(x2a①) !輸入ya(i,j),即zijj enddoenddowrite(*,'(T10,A1,T22,A,T32,A,T40,A,T58,A)')'x','y','f(x)','interpo1ated','error'doi=1,5!賦予自變量!賦予自變量x值doj=1,5!賦予自變量!賦予自變量y值!f(x,y)真實(shí)值f=sin(x1)*exp(x2)call1agrange2(x1a,x2a,ya,n,n,x1,x2,y) !調(diào)用程序1agrange2計(jì)算z=f(x,y)dy=y-f !計(jì)算二元拉格朗日插值法的誤差write(*,'(1x,4F12.6,F14.7)')x1,x2,f,y,dy !輸出write(*,*)enddowrite(*,*)kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL* kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*kL*enddoendprogram12程序中輸入數(shù)據(jù)節(jié)點(diǎn)(xi,yj)及函數(shù)值zij,調(diào)用1agrange2子程序進(jìn)行求解(x,y)點(diǎn)的函數(shù)值z(即為程序中的y),其中x#xi,yNyj,函數(shù)在(x,y)處的真實(shí)值為f(x,y)(程序中為f),并求解插值法的誤差dy=z-f。

progran12zspacc'sss1:1preuslileszspacc'sss1:1preusliles [SuweeFHeg也I2J90jHeaderFilesJResauircEFilesdpdimensionx1a<n^Px?a(ni)aya(n,n)wrlty[*sM)"F(^)=sln(s)^y 0<^<PI#9<^<1■writipf^.^J"f(x)?3inx*e^yfunctionfrom0toPl?flto1*da1=1snHla(i)=i*pl/n 序輸入對doj=1?nipa(i,j)=sin(Kla(iJ)*Dwp(x2a(J)J t輸入yatLjL即旦jendrioenddio^rite(*B"tn0.IFI.T22.府.Taz.fijr曲u,n*TSJL1!ii).)?*'.?_y?《囂??.'Interpolated"terror■doi-1P5*l=Ef.l*lVSH)*pi [賦予自呀量柿IHQjF.SK?-n-,j/5J ,底予自蘭星虹£f=bin(xij*vkp(j<2) 、—..-£211Imgrmn如.xT.M』J T調(diào)用程序算*頓uf ?i皆二元僉格明E掛恒法的誤莖'uNLta^-(IM,^12-a,^14.7)■>m"1fM2,fp(ly t輸出eoddoMritp[置■**]*K Itsex**!?■!<■?■!?■■?**■?■?*■?■?■***■StSt* *聚■■?■?*■?*■**ItStSt**!KK 1Ml]endprogram12圖7 f(x)=sin(x)eAy驗(yàn)證程序運(yùn)行后得到的驗(yàn)證結(jié)果:*C:\Pzogra>Fil?>B\Ixcro^o£-tVisualStudLc\lyProjcctb\^b:s\Dgbugf<x>=Ein<x>eAi?F 0<x<PI,&<y<lfCm>=£inx^e^jnfunctionfranx0.31415?0-3141590.3141590.31415y0-3141550-iQBOSO口.3扁。@胃切1S.5009B0Q.7iQB0SOB-9QBMB0tnPIto1f<x>0.3415170.4171290.509483S.622284B.760059interyulated

ti.MH麝4

fi.415569

0.507584

0.&199£1

B.7^7230error-0.0012322-0_0ai5S07-0.0018704-0.00Q3224-0_0fi?K??2900.9424780i次咀4器0-?42478B.9424760b^4247B

6.1S00Q00.3SOW00.50B00B0,700000Q.9Q0WB

S.S941021.B92B591.3338431.G29LG0

0.B94&431.M257?1.3344961.G29M51h^U84U

a.asgeiiua_ua^i778.0OB65280.0907948a.uawi?7ff2村n責(zé)攔**mh*村n責(zé)攔**壯村*t;■?<at壯村村壯村*t;■?<at;<扯村h*JtH扯村h*村陽扯*x*at>t#扯*x*atn責(zé)-0.0001W5-a_ua?3^&4-0.B00458R-0.0005756-a_uawt77K1.5707961.,用WE1.5707?61.GP07SG1.57Q79G0.100068Q.3Q0W00.50B0000.7000000?9QOW0「349859I.6487212.0137531.104991*觸如31.6482622.0131??845?^25喋NJt村村村皺?quán)㎞Jt MHJt時翻Jt傳翻JtMHJt時翻Jt傳我林巍喋妖Jt?H我林巍喋妖Jt#Jt憚爾Jt時村Jt壯丑Jt憚爾Jt時村JtNJt0.00054133-W0BS1770_0ORi65270.00078518.00097923.19911E2-l^llE2.1751152.ISSUE何?3劇口廈寸甘B.S何0,700000昉.他?曲U0.994102i.syass^1.3338441.6291601.989BG10.894G431.3^25771.3344961.629J451.990346-0.0012330-0.0012330-0.uaiE604-0.001S982-0.8023232-0-00082992.8274332.8274332.S274332.8274332.827433

Q.1Q00BB0.3^0000@-ESfiMfl0,700000

0.34151?0.417129?.5W94fi30.6222840.7&B0S90.340264Li.115569B.SB75850.&19761W.257229■Fress<mykejytoc(?Fitinue圖8二元拉格朗日插值法輸出結(jié)果EndSub計(jì)算結(jié)果如下xlf(x)interpolatedierrQr0.3141胸0.1000000.3415170.3血340,0419370.3141590.3000000.4171290.4155690.0512150.3141590一5000000.5094830.5075350,0625550.3141590.7000000.62228+0.5199610+076404******###?*##餐普冒昌骨*,0.9424780.100000OhB941020,894644-0.0059910+9424780.3000001.0920591.092576—0.0073160.9424780.5000001.3338441.334496一0.0089360.9424780.700000L6291601.629945-0.010915W并 ■■樸耗*皆舞置■琳烤 M椎##*#MM#1,5707970.100000L1051711.1049920*0035951.5707970.30000。1.3498S9L3494620.00+390L5707970.5000001.648721L64駝620.0053621.57079?0.7000002.0137532.0131770.006549ViauT *■用數(shù)fit算法能??#M*2.1991150.lOOOtW0.8941022.1991150.3000001.0920592.1991150.5CHM00ViauT *■用數(shù)fit算法能??#M*2.1991150.lOOOtW0.8941022.1991150.3000001.0920592.1991150.5CHM00L3338432,1991150.7000001.629160**?***_?#f;>N?tf?*>##0.894643—0.00599】1.092576-0.007316t334496—Oh0089361.629945一。,010915*甘*柳**片#M?<i*********w?##fr參考書給自變量賦值4X4個點(diǎn),本實(shí)驗(yàn)賦值了5X5個數(shù)據(jù)點(diǎn),可看出該實(shí)驗(yàn)程序計(jì)算的誤差值比參考書誤差值小,取得了良好的效果。最后來用幾個其他函數(shù)進(jìn)行驗(yàn)證。1、f(x,y)=(x+y)3程序見圖10(見附件l22.f90),驗(yàn)證結(jié)果見圖11。

函2Sicesss函2Sicesss1:1prelesurceFilesl£-2.f9[)|adcrFilessourceFlitsparametertri&5>pi-3B1415926)r^aldydlmnslonx"la(n)9K2^(n)fifa(nfn),f(K)=(K+ypao<x<i■urite(??*)'f(x)-<K+yP3functionFromSto1a?to11doi=1,nXld(i)=i*1.0/11 吟,如i[輸Ayafh,j),即Nijdoj-1,nM2J(j)-1.u^j/n [輸Ayafh,j),即NijEHllIdoenddawrite】x,'(iiu,ni.iez.h.ijz』.I斗。."158.(1尸]'虹,'p','1(k)','interpniated','error'doi-TJxi-(-n.i*i/so> 口亡天量da|=1,5u.1+1/b.U 罰匚予m莎景」牟Ti(M,yjcalll^grang?2(KiajScZa.ya.n.nPx2,yi) "前角程序計(jì)其「F(w)心胡-F ,計(jì)算二元拉格朗日插值法的很差.-writp(*s(l!<liiFl2.fiiFlii.7))xlpx2lf^,dy亍輸出enddoWirltS'(MBM)h*******理蚤iK喪群肆丟林牌蜀*釜*理事iN器肆丟Mi部神牌岑咨理演***理碧iNWa&iN駐神牌■***理蚤*理*iN器*牌署>iN釜SiN1enddoeiidprograni12圖10二元拉格朗日插值法計(jì)算程序:f(x,y)=(x+y)3m*C:\Proera*Files\MicrDsoftVisualStudibYS^PiojectsXsss^Debu^Xsss.exe*■國■Ftq=g+u〉y▲F《Q:Mk+¥〉勺Functionfrum0to1,0to1Xyf<K>interpoLatederror0.1^S00O0.1306000.0080^0.6B7???—0.600906?nan00R0R.3906000.064(100可用64麗臥-0-麗切麗01破誠聊0.59S0@^0.21S0S30.216900-0^0000002-"-|80.1^00000.7000&^0.5120S00.511999-0r0000RG60.1060^0B.90006^1.0030^00.599?99—0j.'6?3530^307通3齡酮?01000E:5i島.醫(yī)64鼬用0^0640003000000103000990勤施施0.21606^3^2169^0&000000003GSQ000E000BS0.5120660.G12300&S00000003朋屈河07000t'S1,000^0^1-:000000&萸豹朋1030003909000E:Sl.?2800^1-728000&60090613.500090O.130S000.21G0QS—0■S0000040-3?潮屈?0,51200^0.E129000.S0000000.5069^00.500BI0S1.風(fēng)鼬麗回1屈屈?屈臥-0.60000010.5MMBBU虬7)30600i.728aee-M.Ht1W00Kl3.5069938.999@932.7440602.743999—0_S0000S507000300190@0^0,51200^0.S11999-3603900570000903900f:S1.00906^1..S00900&@00900270@Q9@05I3Q@0@1.7283601.72?90S&6000000070003007000E:5i2.744鼬目2-74400006000000700R3009000t'S4.內(nèi)即嬲4.6969^0360000^河村*t村村村片蜂村村村童村村村X村村蜂村弁蜂村依村*****我村村片蜂村村村童村村村X弁*t蜂喋村河蜂村依村*****我X村壯*t河村村it村村村0-9H聃向HOn.innpiflai.nnHURQi-Rnnnns頊-Ed(布砸西0.9^6000B.3006RS1.72806^1-7280000.S^090S4毋-9軻維豳0.59RBRS2.74400S2-744000-0.E麗麗020.?R0^0D-79^6^3^4.096^i4.6969^300.6^09065FL9施仇靦XJOtJCXJC1OCJCKJCJCM:Ik9肺i明同JOtJCJOCMJCKJCJCJCK5.831999XJOtJCXJC1OCJCJOCS.fl32flfl0JO<JO<JCJOCXJ<JOCJ<隊(duì)麗0麗購JCJOtJOtKKJCKJCJCJCKJCJOtKPressanykeytocontinue圖11驗(yàn)證結(jié)果:f(x,y)=(x+y)3

2、f(x,y)=(x+y5)sin(xy)程序見圖12(見附件l23.f90),驗(yàn)證結(jié)果見圖13。ice'ggg1;ice'ggg1;1pFL心urceFilesiz-s.fsnaderFiltusciurr.eFilesdimension wrltH*,*) 0<w<pi,0<lj<Twrltk!(*,*j fUlluLiuilfKUHI自LupiLu1'doi-1,ndoj-1,nw2d(j)-1.0*j/nr^j.:\yjydCi.J)=[xia[l)*x2a[J)**5)*£ln[xia[l)*x2a[J)) r輸入如〔1即HJenddoenddowrltuf*,'(I10,fl1,122,fl,132,fl,IJh0,fl,153,fl 'g',''inLurpuldLud','urrur'doi-i,5doj-i,5W2--0.VJ/5.0 還呈IT■直{=-”卜德**5)*」,1”1*德) *f(w山)真.5?■苴callldyrdiiyu2(Mld,n2d ,w2,y) 'f說甬程序計(jì)算£=打*@)Jy-y-f t..尊一兒.標(biāo)嚀即-斧差’write(*,'(Im,4F12.6,F1Jh.7)')X1,X2,f,y,dy f輸出enddowriter*.*)'*******************************************************************‘enddoendprogram12圖12二元拉格朗日插值法計(jì)算程序:f(x,y)=(x+ys)sin(xy)f<x)=Cx+iT5>*sin<xy?0<x<pi,IKyClf<x

溫馨提示

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

評論

0/150

提交評論