diff --git a/src/differentiate.jl b/src/differentiate.jl index 11aa16a..04ef7dd 100644 --- a/src/differentiate.jl +++ b/src/differentiate.jl @@ -20,6 +20,14 @@ function differentiate(ex::Expr,wrt) simplify(differentiate(SymbolParameter(ex.args[1]), ex.args[2:end], wrt)) end +# a finite difference based on a symbolic expression, given a specific x to differentiate at +function differentiate(ex::Expr, wrt::SymbolicVariable, atx::Float64) + ex = differentiate(ex, wrt) # symbolic only + local fex = :(($wrt)->($ex)) + local f = eval(fex) + return f(atx) +end + differentiate{T}(x::SymbolParameter{T}, args, wrt) = error("Derivative of function " * string(T) * " not supported") # The Power Rule: