I am writing a VBA script to integrate over an interval in Excel. I have begun with a simple position and velocity formula to test my code then expanded on it. Unfortunately, it is not working properly as the outcome I am recieving is .044 while the expected outcome using MATHCAD is .127.
I'm not sure where this project has gone wrong considering it is working properly with my simpler function.
Dim dIdt As Double Dim Isnp As Double Dim Tau As Double Dim A As Double Dim B As Double Dim C As Double Dim D As Double Function Iscr(t) dIdt = Range("B22").Value Isnp = Range("B27").Value Tau = Range("B26").Value Iscr = (dIdt * t) + (Isnp * (Exp((t) / (-1 * Tau)))) End Function Function Econd1(t) A = Range("B28").Value B = Range("B29").Value C = Range("B30").Value D = Range("B31").Value Econd1 = A + (B * (Log(Iscr(t)))) + (C * (Iscr(t))) + (D * (Iscr(t) ^ (1 / 2)) * Iscr(t)) End Function Function Deriv(x0, t1, t2) 'define range of integral int_range = t2 - t1 'discretize the integral into n slices dt wide n = 5000 Dt = int_range / n 'initialize variables ta = t1 tb = ta + Dt Deriv = x0 'calculate areas using trapezoidal rule 'sum area under curve of each slice For j = 1 To n Deriv = Deriv + (tb - ta) * (Econd1(ta) + Econd1(tb)) / 2 ta = tb tb = ta + Dt Next End Function