資源描述:
《Lagrange and newton插值法VB實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、Lagrangeandnewton插值法程序結(jié)構(gòu)如下窗體設(shè)計(jì)如下(一個(gè)空白窗體,大小下圖中有)程序代碼如下注意?。。。。。。。。?!下面程序代碼中深紅色部分為VB6.0中自帶的部分。而紫紅色部分為在VB6.0中應(yīng)寫(xiě)在一行中,但在本文中由于紙張限制出現(xiàn)分行的部分,此部分在寫(xiě)入VB6.0時(shí)應(yīng)該寫(xiě)在一行中,否則會(huì)出現(xiàn)錯(cuò)誤FunctionSS#(aaa#(),bbb#())Dimii&,jj&,kk&,mm&,nn&,rr&,uu&,ll#,lll#,xk#nn=UBound(aaa):mm=UBound(bbb)ll=0Forjj=0Tommxk=aaa(jj)Ifj
2、j3、b#(),v#)Dimi&,j&,k&,m&,n&,r&,u&,l#,ll#,g#Dimcs#(),aa1#(),bb1#()n=UBound(aa):m=UBound(bb)ReDimcs#(n)Fori=1TonReDimaa1#(i),bb1#(i)Forj=0Toiaa1(j)=aa(j)bb1(j)=bb(j)Nextjg=SS#(aa1(),bb1())cs(i)=gl=g*W(aa(),v,i)+lS=l+bb(0)Nextil=0Forr=1Tonl=cs(r)*W(aa(),v,r)+lNextrS=l+bb(0)EndFunctionFun
4、ctionW#(pp#(),x#,n&)Dimy&,ww#ww=1Fory=0Ton-1ww=(x-pp(y))*wwNextyW=wwEndFunctionFunctionLagrange#(x,aa#(),bb#())Dimi&,j&,k&,n&,m&,r&,ll#,lll#,l#,xk#,u&l=0n=UBound(aa):m=UBound(bb)Forj=0Tomll=1:lll=1xk=aa(j)Ifj5、serveaa(u)EndIfFori=0Toull=(x-aa(i))*lllll=(xk-aa(i))*lllNextil=bb(j)*ll/lll+lReDimPreserveaa(n)Forr=uTojStep-1aa(r+1)=aa(r)Nextraa(j)=xkNextjLagrange=lEndFunctionPrivateSubtt()Dimq&q=Val(InputBox("輸入插值節(jié)點(diǎn)數(shù)","LangrangeandNewton插值",6))Ifq>1ThenDima()AsDouble,b()AsDoubleDimp&,m&,c&,o&,
6、v#,z#,z1#m=q-1ReDima#(0Tom),b#(0Tom)Forp=0Toma(p)=Val(InputBox("輸入x"&p&"=","LangrangeandNewton插值"))b(p)=Val(InputBox("輸入f"&p&"=","LangrangeandNewton插值"))NextpPrintTab(7);"Lagrange插值法";Tab(37);"Newton插值法"PrintForo=0To10v=0.2+0.02*o'(此處為初值和步長(zhǎng),根據(jù)自己情況自己定)z=Lagrange(v,a(),b())z1=S(a(),b(
7、),v)Print"L"&m&"(x"&o&"="&v&")="&z;Tab(30);"N"&m&"(x"&o&"="&v&")="&z1NextoPrintPrintPrintElseMsgBox"請(qǐng)輸入插值節(jié)點(diǎn)數(shù)目(必須大于1)",5+vbExclamation,"警告"CallttEndIfEndSubPrivateSubForm_DblClick()Form1.ClsCallttEndSubPrivateSubForm_Load()FontSize=12FontName="宋體"EndSub