Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Option Explicit
  2. Public Deriv_Approx As Boolean
  3. Sub Funct(f, c, x)
  4. Dim n&, i&
  5. n = UBound(x)
  6. ReDim f(1 To n)
  7. For i = 1 To n
  8. f(i) = Exp(c(1) * x(i)) + c(2)
  9. Next i
  10. End Sub
  11. Sub DFunct(df, c, x)
  12. Dim m&, n&, i&, j&, t#, df0(), tol#
  13. m = UBound(c)
  14. n = UBound(x)
  15. ReDim df(1 To n, 1 To m)
  16. If Deriv_Approx Then
  17. DFunctApprox df, c, x
  18. Else
  19. For i = 1 To n
  20. df(i, 1) = x(i) * Exp(c(1) * x(i))    
  21. df(i, 2) = 1                          
  22. Next i
  23. End If
  24. End Sub
  25. Private Sub DFunctApprox(df, c, x)
  26. Dim h#, m&, n&, j&, i&, t(), f0(), f1()
  27. h = 10 ^ -4
  28. m = UBound(c)
  29. ReDim t(1 To m)
  30. For j = 1 To m
  31. For i = 1 To m
  32. If i = j Then
  33. t(i) = c(i) + h / 2
  34. Else
  35. t(i) = c(i)
  36. End If
  37. Next i
  38. Funct f1, t, x
  39. For i = 1 To m
  40. If i = j Then
  41. t(i) = c(i) - h / 2
  42. Else
  43. t(i) = c(i)
  44. End If
  45. Next i
  46. Funct f0, t, x
  47. n = UBound(f1)
  48. If j = 1 Then ReDim df(1 To n, 1 To m)
  49. For i = 1 To n
  50. df(i, j) = (f1(i) - f0(i)) / h
  51. Next i
  52. Next j
  53. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement