请问如何用vb编写一个计算函数积分的程序。我的问题是求∫F(x)dx 此处x为(0,25)    f(x)=λ^(-(x-u)^2/(2*a^2))/a*sqrt(2π)

解决方案 »

  1.   


    先取步长dx=0.1(根据精度需要)
        x0=0
        x=25
        x1=x0
        s=0
       for x1=x0+dx to x step dx
          s=s + (f(x1-dx)+ f(x1))*dx/2
       next
       dx取值越小,s的结果越正确
      

  2.   

    用梯形的逐次分半法
              Dim i As Long
               Dim n As Long
               Dim h As Double
               Dim T0 As Double
               Dim T As Double
               Dim F As Double
               Dim Distant As Double
                  n = 1
                  h = (Unum - Lnum) / 2
                  T0 = h * f(0)+ f(25)
                  Do
                      F = 0
                      For i = 1 To n
                          F = F + f(2 * i - 1) * h)
                      Next i
                      T = T0 / 2 + h * F
                      Distant = T - T0
                      '为下一次做准备
                      n = 2 * n
                      h = h / 2
                      T0 = T
                  Loop While (Abs(Distant) > 3 * ExpectError)
                  Answer= T
    其中ExpectError是需要的精度。