FreshSaladBar
New Member
- Joined
- Jun 17, 2019
- Messages
- 1
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.
Code:
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
I'm not sure where this project has gone wrong considering it is working properly with my simpler function.