请高手帮忙解释一下如下的算法,越具体越好,谢谢!算法---多项式积分
Public Function RombergPoly(c() As Single, a As Single, b As Single, tol As Single) As Single
     Dim i As Long, j As Long, T() As Single, L As Long
     Dim x As Single, dx As Single, n As Long, sum As Single
     ReDim T(1 To 3)
     T(1) = (b - a) * (fxP(c, a) + fxP(c, b)) / 2
     T(2) = T(1) / 2 + (b - a) * (fxP(c, (a + b) / 2)) / 2
     T(3) = (4 * T(2) - T(1)) / 3
     j = 3
     Do While Abs(T(UBound(T)) - T(UBound(T) - 2)) > tol
          dx = (b - a) / (2 ^ (j - 1))
          x = a - dx
          n = 2 ^ (j - 2)
          sum = 0
          For i = 1 To n
               x = x + 2 * dx
               sum = sum + fxP(c, x)
          Next
          For i = 2 To UBound(T) Step 2
               T(i - 1) = T(i)
          Next
          T(2) = T(1) / 2 + dx * sum
          ReDim Preserve T(1 To UBound(T) + 2)
          For L = 2 To j
               If L <> j Then
                    T(L * 2) = ((4 ^ (L - 1)) * T(L * 2 - 2) - T(L * 2 - 3)) / ((4 ^ (L - 1)) - 1)
               Else
                    T(UBound(T)) = ((4 ^ (L - 1)) * T(UBound(T) - 1) - _
                    T(UBound(T) - 2)) / ((4 ^ (L - 1)) - 1)
               End If
          Next
          j = j + 1
     Loop
     RombergPoly = T(UBound(T))
End FunctionPublic Function fxP(c() As Single, x As Single) As Single
     Dim i As Long
     fxP = c(UBound(c))
     For i = UBound(c) - 1 To LBound(c) Step -1
          fxP = c(i) + fxP * x
     Next
End Function