Integrating Over an Interval with VBA


New Member
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.

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

End Function
I'm not sure where this project has gone wrong considering it is working properly with my simpler function.

Some videos you may like

This Week's Hot Topics

  • Importing multiple excel files into one spreadsheet
    Hi, I'm trying to import multiple excel files (with the same format into a single spreadsheet) so that each day's file is listed underneath the...
  • find many based on a certain criteria
    good evening, I hope someone can help me? I have a workbook sheet 2 contains lots of data.... I would like to be able to find anything on sheet...
  • How to copy multiple rows using If
    Hi all, I'm very new to VBA and have written this simple code to copy certain cells if a certain cell within that row contains any data. I need...
  • VBA If statement
    Dear All, I have two dates, where I'd like a message box to pop, if the dates are between this criteria. [CODE] sDate1 = #10/1/2019#...
  • Text Format
    I have a sheet for user to keyin the data. The format of the data can be 451 / 1903, 0012 / 9908 or 00287 / 0099. The number after the "/" is...
  • Macro to copy values across rows and transposing them and add the user id
    [FONT=Times New Roman][SIZE=3][COLOR=#000000][/COLOR][/SIZE][/FONT][FONT=Calibri][SIZE=3][COLOR=#000000]Hi,[/COLOR][/SIZE][/FONT] [FONT=Times New...