解决方案 »

  1.   

    何光渝的《VB常用数值算法集源代码》里面的“辛普森算法”:Sub QSIMP(A, B, S)    '辛普森算法
        EPS = 0.000001
        JMAX = 20
        OST = -1E+30
        OS = -1E+30
        For J = 1 To JMAX
            Call TRAPZD(A, B, ST, J)
            S = (4# * ST - OST) / 3#
            If Abs(S - OS) < EPS * Abs(OS) Then Exit Sub
            OS = S
            OST = ST
        Next J
        Debug.Print "Too many steps."
    End SubSub TRAPZD(A, B, S, N)
        If N = 1 Then
            S = 0.5 * (B - A) * (FUNC(A) + FUNC(B))
            IT = 1
        Else
            IT = 2 ^ (N - 2)
            TNM = IT
            DEL = (B - A) / TNM
            X = A + 0.5 * DEL
            Sum = 0#
            For J = 1 To IT
                Sum = Sum + FUNC(X)
                X = X + DEL
            Next J
            S = 0.5 * (S + (B - A) * Sum / TNM)
        End If
    End SubPrivate Sub Command1_Click()
        PIO2 = 1.5707963
        A = 0#
        B = PIO2
        Debug.Print "积分真实值:"; Format$((FINT(B) - FINT(A)), "0.000000")
        Call QSIMP(A, B, S)
        Debug.Print "程序QSIMP计算的积分值:"; Format$(S, "0.000000")
    End SubFunction FUNC(X)
        FUNC = X * X * (X * X - 2) * Sin(X)
    End FunctionFunction FINT(X)
        FINT = 4 * X * (X * X - 7) * Sin(X) - (X * X * X * X - 14 * X * X + 28) * Cos(X)
    End Function
      

  2.   

    Quote: 引用 2 楼 a814153a 的回复:

    那这本书里有牛顿法的不?我在图书馆查到了他编写的  VB常用算法大全 ,应该差不多的一本书,明天借来看看。