插值法VB源程序_第1頁
插值法VB源程序_第2頁
插值法VB源程序_第3頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、第四章插值方法VB一、線性插值應(yīng)用實例VB1已知:169的平方根為13,196的平方根為14,編程求175的平方根。Private Sub Comma nd1_click()Dim x(1 To 2),y(1 To 2) As Si nglex(1)=169:y=13x(2)=196:y(2)=14x0=175yO=F(x,y,xO)a=Format$(yO,"#.#")Text1.Text="yO=" & Str$(a)End SubPrivate Fun cti on F(x,y,xO)F=y(1)+(y (2)-y(1)/(x (2)-x(

2、1)*(x0-x(1)End Fun cti on線性插值應(yīng)用實例VB2已知水的溫度與密度和關(guān)系如下:溫度5.010.015.020.025.030.0密度0.99990.9970.990.990.990.99試編程計算溫度為 6、13、16、19、23、26 oC時的密度。Private Sub Comma nd1_click()N = 6X = Array(0, 5, 10, 15, 20, 25, 30)Y = Array(0, 0.999965, 0.9997, 0.999099, 0.998203, 0.997044, 0.995646)xc = Array(0, 6, 13, 16

3、, 19, 23, 26)List1.Addltem "x0" & "y0"For I = 1 To 6X0 = xc(I)Y0 = f(N, X, Y , X0)List1.AddItem Str$(X0) & Str$(Y0)Next IEnd SubPrivate Function f(N, X, Y , X0)For I = 1 To NIf X0 <= X(I) The nW = IExit ForEnd IfNext IW = W - 1If W <= 1 The nW = 1: End IfIf W >=

4、N ThenW = N - 1: End Iff = Y(W) + (Y(W + 1) - Y(W) / (X(W + 1) - X(W) * (XO - X(W)End Fun cti on二、拉格朗日三點插值實例例:實驗測得25OC乙醇溶液的平均摩爾體積v與乙醇的摩爾分?jǐn)?shù)xi的關(guān)系數(shù)據(jù)如下表。試編程求摩爾數(shù)xi為0.3時的乙醇溶液的平均體積v。VB清單Dim X, v計 Wv21.2222.1623.1824.3225.5726.95xi0.0890.1150.1430.1730.2060.242v28.4730.1532.0134.0736.37xi0.2810.3230.3690.42

5、00.477找牯巾|日二點Jit.怛Private Sub Command1_click()N = 11X = Array(0, 0.0891, 0.1153, 0.1435, 0.1739, 0.2068, 0.2424, 0.2811, 0.3234, 0.3697, 0.4207, 0.4771)v = Array(0, 21.22, 22.16, 23.18, 24.32, 25.57, 26.95, 28.47, 30.15, 32.01, 34.07, 36.37)M = 3X0 = Val(Text1.Text)If X0 < X(1) Or X0 > X(N) Th

6、enPrint "error"ElseEnd IfCall pt(N, M, XO, A, B)vO = F(XO, A, B)Listl. Additem "a=" & AListl. AddItem "b=" & BList1. AddItem "X0=" & X0List1. AddItem "v0=" & Format$(v0, "#.#")End SubPrivate Sub pt(N, M, XO, A, B)For I = 1 T

7、o NIf XO <= X(I) ThenIf Abs(X0 - X(I - 1) <= Abs(X0 - X(I) ThenA = I - Int(M + 1) / 2)Exit ForEnd IfElseA = I - Int(M / 2)End IfNext IIf A <= 0 ThenA = 1: End IfB = A + M - 1If B >= N ThenB = N: End IfA = B - M + 1End SubPrivate Function F(X0, A, B)For I = A To BW = 1For J = A To BIf J &

8、lt;> I ThenW = W * (XO - X(J) / (X(I) - X(J): End IfNext Js = s + W * v(I)Next IF = sEnd Function三、拉格朗日全點插值VB試對上例編程對比利用三個、五個、七個、九個和全部節(jié)點時,摩爾分?jǐn)?shù) xi為0.30時乙醇溶液的平均摩爾體積v。Dim X, vPrivate Sub Comma nd1_click()N = 11X = Array© 0.0891, 0.1153, 0.1435, 0.1739, 0.2068, 0.2424, 0.2811, 0.3234, 0.3697, 0.4

9、207, 0.4771)v = Array(0, 21.22, 22.16, 23.18, 24.32, 25.57, 26.95, 28.47, 30.15, 32.01, 34.07, 36.37)X0 = Val(Text1.Text)If X0 < X(1) Or X0 > X(N) The nPrin t "error"EndElseEnd IfList1.Addltem "x0=" & X0For M = 3 To N Step 2Call pt(N, M, X0, A, B)v0 = F(X0, A, B)List1.A

10、ddItem "M=" & M & ”A=" & A & ”B=" & B & ”v0" & Format$(v0, "#.#")Next MEnd SubPrivate Sub pt(N, M, X0, A, B)For I = 1 To NIf X0 <= X(l) The nIf Abs(X0 - X(l - 1) <= Abs(X0 - X(l) The nA = I - I nt(M + 1) / 2)Exit ForEnd IfElseA = I - In t(M / 2)End IfNext IIf A <= 0 The nA = 1: End IfB = A + M - 1If B >= N The nB = N: End IfA = B - M + 1End SubPriv

溫馨提示

  • 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

提交評論