Calculus.jl
Calculus.jl copied to clipboard
Calculus functions in Julia
Hi, I've just included the "complex" step method for the multivariable finite_difference, so it can be used to compute the gradient too.
I added a macro @define to store the code of a function when creating it, and another one @makeDerivative to create functions that are derivatives. It becomes possible to do:...
Currently, `derivative.jl` has the two following definintions ``` .jl second_derivative(f::Function) = second_derivative(f, derivative(f), :scalar, :central) hessian(f::Function) = second_derivative(f, gradient(f), :vector, :central) ``` however we discussed that by estimating the first...
Correct changes to the implementations of differentiate() and simpelify() breaks tests if the order of arguements are changed. ``` julia >>> isequal(:(a+b) , :(b+a)) false ``` The test should use...
Does doing this make more sense than putting it into finite_difference and having it called by derivative()? ``` Julia julia> differentiate(:(e^x),:(x)) :(*(^(e,x),log(e))) julia> using Calculus julia> differentiate(:(e^x),:(x),1.0) 2.718281828459045 julia> differentiate(:(e^x),:(x),0.0)...
It would be useful to provide a tool like `differentiate(:(exp(x)), :x))` that returns a compiled function that is immediately evaluable at specific values of `x`.
Hi Most of mathematical languages have various `replace` methods and rules to work with expressions, e.g. see ref[1] & ref[2]. What do you think? Is it useful to add some...
in v0.1.5 `simplify` can not handle Float64(NaN) check this code ``` julia using calculus simplify(:(1-0/0)) ``` thanks