數(shù)值計(jì)算編程20個(gè)_第1頁(yè)
數(shù)值計(jì)算編程20個(gè)_第2頁(yè)
數(shù)值計(jì)算編程20個(gè)_第3頁(yè)
數(shù)值計(jì)算編程20個(gè)_第4頁(yè)
數(shù)值計(jì)算編程20個(gè)_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1、P11,第一題Private Sub Form_Click()Dim a, b, x, s As Doublea= 1b = 2s = 0.001Dox = (a + b) / 2If (x A 3 - x - 1) * (a A 3 a 1) v 0 Then b = xElsea = xEnd IfLoop Until Abs(x A 3 - x - 1) < sPrint xPrint x A3-x- 1End Sub結(jié)果:12、P12,第五題Private Sub Form_CIick()Dim a、x, s As Doublea = 8s = 0.001x = aDop =

2、 xx = (p + a/p)/2Loop Until Abs(x p) < sPrint xEnd Sub結(jié)果:2.9863、程序:Private Sub Form_Click()Dim i As IntegerDim t, a(0 To 3), p As Doublet = 2Fori = 0To3a(i) = InputBox(Hx(M & i & M)=M)Next iP = a(3)For i = 2 To 0 Step -1 p = p * t + a(i)Next iPrint pEnd Sub結(jié)果:494、程序:Private Sub Form_Click

3、()Dim a, b. s As Doublea = 0.2b= 1.34s = (a + b) / 2DoIf a * (1 - a) * s * (1 s) v 0 Then b = sElsea = sEnd Ifs = (a + b) / 2Loop Until b a < 0.01Print sEnd Sub結(jié)果:0.9971093755、程序:Private Sub Form_click()Dim x, s. p As DoubleDim i As Integerx= 101s= 10p=l/2/10i= 1Dos = s + pp = p/2*(-l)/100*(2*i-l

4、)i = i+ 1Loop Until p < 0.01Print sEnd Sub結(jié)果:10.056、拉格朗日:Private Sub Form_Click()Dim i, j, n As IntegerDim x(l To 100), y(l To 100), p. s, t As Double t = 2.5n = 3For i = 1 To nx(i) = InputBox(vx(M & i & H)=H)y(i) = InputBox(Hy(M & i & H)=H)Next is = 0For i = 1 To np= 1For j = 1 T

5、o nIfiojThenP = P * (t - X(j) / (x(i) - x(j)End IfNext js = s + p * y(i)Next iPrint sEnd Sub結(jié)果:67、課堂埃爾米特插值程序:Private Sub Form_Activate()Dim xO. yO, xh yl, gO, gl As Doublex0 = 0yO = 0xl = 1yl = 1g0 = 0gl=2x = 0.5a0 = -2/(x0-xl)A3bO = 1 / (xO - xl) A 2 + 2 xO / (xO - xl) A 3al =-2/(x1 -x0)A3bl =2*xl

6、/(xl x0)八3 + 1 / (xl x0)八2 k0= l/(x0-xl)A2kl = 1/(x1 -xO)A210 = (x-xl)A2*(a0*x + b0)11 = (x-xO)A2*(al *x + bl)ggO = kO*(x-xO)*(x-xl) A2 ggl = kl * (x - xO)A 2 * (x - xl)y = 10 * yO + 11 * yl + ggO * gO + ggl * glPrint yEnd Sub結(jié)果:0.258、第一個(gè):樣條函數(shù):Private Sub Form_Activate()Dim x(3), y(3), m0. ml. m2 As

7、 DoubleDim i As IntegerFori = 0To2x(i) = iy(i) = i*iNext imO = 0m2 = 4hO = x(l) - x(0)hl =x(2)-x(l)a = 2 / hOb = 4/h0 + 4/hlc = 2/hld = (-6 * y(l) + 6* y(2)/hl A2-(6* y(0) -6 * y(l)/hO A2 ml = (d > a * mO - c * m2)/ bPrint mlEnd Sub結(jié)果:29、牛頓插值:Dim k As IntegerPrivate Sub Combo l_Click()Dim i As In

8、tegerk = C Int (Combo 1.Text)For i = 0 To 9Text 1(2 * i).Visible = FalseText 1(2 * i + 1).Visible = FalseLabcI(i).Visible = FalseNext iFor i = 0 To k - 1With Label(i).Visible = True.Top= 1560+ 400* i.Caption = H第” &i + 1 &”點(diǎn): .Left = 120End WithWithTextl(2*i).Visible = True.Left = 800.Top= 1

9、500+ 400* iEnd WithWithTextl(2*i + 1).Visible = True.Left = 1500.Top= 1500+ 400* iEnd WithNext iEnd SubPrivate Sub Command l_Click()Dim i As IntegerDim s As Doubles = 0For i = 0 To k - 1s = s + ff(i) * fl(Text3.Text, i)Next iText2.Text = sEnd SubPrivate Sub Command2_Click()EndEnd SubPrivate Sub Form

10、_Load()Dim i As IntegerFor i = 2 To 10Combo 1. Additem iNext iEnd SubFunction ff(ByVal n As Integer)Dim i As IntegerDim s As Doubles = 0If n = 0 Thenff = Text 1(1 ).TextExit FunctionEnd IfFor i = 0 To ns = s + Text 1(2 * i + 1 ).Text / f(i, n)Next iff=sEnd FunctionFunction f(ByVal p As Integer, By V

11、ai n As Integer)Dim i As IntegerDim s As Doubles= 1For i = 0 To nIf i <> p Thens = s * (Text 1(2 * p).Text - Text 1(2 * i).Text)End IfNext if = sEnd FunctionFunction fl (By Vai x As Double, ByVal n As Integer)Dim i As IntegerDim s As DoubleIf n = 0 Thenfl = 1Exit FunctionEnd Ifs= 1For i = 0 To

12、 n - 1s = s*(x- Text 1(2 * i).Text)Next ifl =sEnd Function結(jié)果:帶入(1,1), (2,4), (3,7), (4,8), (5,6得到變量為35時(shí),插值結(jié)果為7.835937510、復(fù)化辛普生算法:Private Sub Commandl_Click()Dim i, n As IntegerDim s, h, x As Doublea = InputBox(M請(qǐng)輸入左端點(diǎn)a: ,r)b = InputBox(u請(qǐng)輸入右端點(diǎn)b: ”)n = InputBoxC*請(qǐng)輸入分段數(shù)n: ”)h = (b - a) / ns = f(b)- f(

13、a)x = aFor i = i To nx = x + h / 2s = s + 4 * f(x)x = x + h / 2s = s + 2 * f(x)Next is = h/6 * sText 1.Text = sEnd SubFunction f(ByVal x As Double)If x = 0 Thenf= 1Exit FunctionEnd Iff = Sin(x)/xEnd Function結(jié)果:當(dāng)輸入?yún)^(qū)間為(0,1),分8段,運(yùn)行結(jié)果是0.194311、pl53 第 6 題Private Sub Form_Load()Dim s, t, e As DoubleDim i.

14、 k As Integert = 0k = 0s = (t + 2)A 0.5e = 0.001For i = 0 To 20If Abs(s -1) < e Thenk= 1Exit ForEnd Ift = ss = (t + 2)A 0.5Next iText 1.Text = sEnd Sub結(jié)果:1.82912、pl54 第 18 題Dim a As DoublePrivate Sub Form_Load()Dim xO. x, e As DoubleDim i As Integerx = 5e = 0.000001a = InputBox(Ha=N)Fori = 0To20x

15、0 = xText 1.Text = Text 1 .Text & vbCrLf & fl(xO)If fl(xO) = OThenExit ForEnd Ifx = xO f(xO)/fl(xO)If Abs(x - xO) < e ThenExit ForEnd IfNext iIfi = 20 ThenMsgBox u迭代失??!”EndEnd IfText 1.Text = xEnd SubFunction f(ByVal x As Double)f = x A 3End FunctionFunction fl (By Vai x As Double)f 1 = 3

16、 * x A 2End Function結(jié)果:2.18813、pl55第24題牛頓法Private Sub Form_Load()Dim xO, e As DoubleDim i As Integerx0 = 0e = 0.000001n = 20If fl(xO) = OThenMsgBox "奇異EndEnd IfFor i = o To 20x0 = xIf fl(x) = OThenMsgBox 奇異EndEnd Ifx = xO-f(xO)/fl(xO)If Abs(x - xO) < e ThenExit ForEnd IfNext iIfi = 20 ThenMs

17、gBox u迭代失敗!”EndEnd IfText 1.Text = xEnd SubFunction f(ByVal x As Double) f=xA3 + 2*xA2+10*x-20 End FunctionFunction fl (By Vai x As Double) fl =3*x A2 + 4*x+ 10End Function結(jié)果:1.13714、pl55第24題弦截法 Private Sub Form_Load() Dim xO, xl, e As DoubleDim i As Integer x0 = 0e = 0.000001n = 20Iffl(xO) = OThenM

18、sgBox "奇異EndEnd Ifxl =xO f(xO)/fl(xO)For i = o To 20x = xl -f(xl)/(f(xl)-f(xO)*(xl -xO) If Abs(x-xl)<eThenExit ForEnd Ifxl = xNext iIfi = 20 ThenMsgBox u迭代失?。?quot;EndEnd IfText 1.Text = xEnd SubFunction f(ByVal x As Double) f=xA3 + 2*xA2+10*x-20End FunctionFunction fl(ByVaI x As Double) fl=

19、3*xA2 + 4*x+10End Function結(jié)果:1.56215、pl55第24題快速弦截法 Private Sub Form_Load() Dim xO, xl, e As DoubleDim i As Integerx0 = 0e = 0.000001n = 20Iffl(xO) = OThenMsgBox奇異”EndEnd Ifxl =x0 f(xO)/fl(xO)For i = o To 20xO = xlxl = Xx = xl -f(xl)/(f(xl)-f(xO)*(xl -xO)If Abs(x -xl)<eThenExit ForEnd IfNext iIfi

20、= 20 ThenMsgBox u迭代失??!”EndEnd IfText 1.Text = xEnd SubFunction f(ByVal x As Double)f=x A3 + 2*xA2+ 10*x-20End FunctionFunction fl (By Vai x As Double)fl=3*xA2 + 4*x+10End Function結(jié)果:1.49616、消去法Dim n As IntegerDim a(l To 10, 1 To 10), b( 1 To 10), x(l To 10) As DoublePrivate Sub Combo l_Click()Dim i.

21、j As IntegerFor i = 1 To 100Text l(i). Visible = FalseNext iFor i = 1 To 10Text2(i).Visible = FalseTsxt3(i). Visible = FalseNext in = Combo 1.TextFor i = 1 To nFor j = 1 To nWith Text l(i 1 嚴(yán) n + j).Visible = True.Top = 500 * i + 200.Left = 500 * j .Height = 300 End WithNext jWith Text2(i) .Visible

22、= True .Top = 500 * i + 200 .Left = 500 * n + 800 .Height = 300End WithWith Text3(i) .Visible = True .Top = 500 * i + 200 .Left = 500+ 1800.Width = 700 .Height = 300End WithNext iEnd SubPrivate Sub Commandl_Click() Dim i. j, k As IntegerDim s, r As DoubleFor i = 1 To nFor j = 1 To na(ij) = Textl(i 1

23、) * n + j).Text Next jb(i) = Text2(i).TextNext iFor i = 1 To n - 1For j = i + 1 To n r = a(j, i) / a(i, i) For k = i To n a(j, k) = a(j, k) - r * a(i, k) Next kb(j) = b(j) - r * b(i)Next jNext iFor i = n To I Step -1s = b(i)If i <> n ThenFor j = i To ns = s-a(ij)*x(j)Next jEnd Ifx(i) = s /a(i,

24、 i)Text3(i).Text = x(i)Next iEnd SubPrivate Sub Command2_Click()EndEnd SubPrivate Sub Form_Load()Dim i As IntegerFor i = 2 To 10Combol.Addltem iNext iEnd Sub結(jié)果:選擇求解未知數(shù)個(gè)數(shù)為3,再依次輸入A=2, -1,3: 4,2,5; 1,2,0: B= 1,4,7; 得到 x=9» -1, -617、追趕法Private Sub Command l_Click()Dim i. j, k As IntegerDim aa(l To

25、4), bb(l To 4), cc(l To 4), dd(l To 4), xx(l To 4), g(l To 4), f(l To 4) As DoubleDim s, r As DoubleFor i = 1 To 4Ifi= 1 Thenaa(i) = 0Elseaa(i) = a(i).TextEnd Ifbb(i) = b(i).TextIf i = 4 Thencc(i) = 0Elsecc(i) = c(i).TextEnd If dd(i) = d(i).TextNext ig(l) = dd(l)/bb(l)f(l) = -cc(l)/bb(l)For i = 2 To

26、 4g(i) = (dd(i) - aa(i) * g(i - 1)/ (aa(i) * f(i - 1) + bb(i)f(i) = -cc(i) / (aa(i) * f(i -1) + bb(i)Next ixxg) = g(4)x(4).Text = xx(4)For i = 3 To 1 Step -1xx(i) = g(i) + f(i) * xx(i + 1)x(i).Text = xx(i)Next iEnd SubPrivate Sub Command2_Click()EndEnd Sub結(jié)果:依次輸入方程組系數(shù)A=l;l,2,l:123:l,2:,B=3,8.20l得到結(jié)果

27、為X= 1,23,4:18、高斯-賽徳爾程序如下:Private Sub Command l_Click()Dim i, j As IntegerDim k, t( 1 To 3), s, a( 1 To 3, 1 To 3)、b( 1 To 3), x( 1 To 3) As DoubleFor i = i To 3For j = i To 3a(ij) = Textl(i * 3 + j - 3).TextNext jb(i) = Text2(i).Textx(i) = 0Next ik= 1Do Until k< 0.0001For i = 1 To 3s = b(i)For j

28、= 1 To 3Ifj <> i ThenText4.Text = ss = s - a(i J) * x(j)Text5.Text = sEnd IfNext jt(i) = s / a(i, i)Ifi = 1 Thenk = Abs(t(i) - x(i)Elself Abs(t(i) - x(i) > k Thenk = Abs(t(i) - x(i)End Ifx(i) = t(i)Next iLoopFor i = 1 To 3Text3(i).Text = x(i)Next iEnd Sub運(yùn)行結(jié)果:輸入系數(shù) A二7.5廠3;5.7,1;2丄7; B二24-11

29、得到 X=-1.727,2.000,-1.36319、迭代法程序如下:Private Sub Command l_Click()Dim i, j As IntegerDim k, t( 1 To 3), s, a( 1 To 3, 1 To 3), b(l To 3), x(l To 3) As DoubleFor i = 1 To 3For j = 1 To 3a(ij) = Textl(i * 3 + j - 3).TextNext jb(i) = Text2(i).Textx(i) = 0Next ik= 1Do Until k< 0.0001For i = 1 To 3s = b(i)For j = 1 To 3Ifj <>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論