Utils

Index

Warning

In the examples in the documentation below, the methods are not prefixed by the module name even if they are private.

julia> using CTFlows
julia> x = 1
julia> private_fun(x) # throw an error

must be replaced by

julia> using CTFlows
julia> x = 1
julia> CTFlows.private_fun(x)

However, if the method is reexported by another package, then, there is no need of prefixing.

julia> module OptimalControl
           import CTFlows: private_fun
           export private_fun
       end
julia> using OptimalControl
julia> x = 1
julia> private_fun(x)

Documentation

CTFlows.ctgradientFunction
ctgradient(f::Function, x::Real) -> Any

Compute the derivative of a scalar function f at a scalar point x.

Arguments

  • f::Function: A scalar-valued function.
  • x::ctNumber: A scalar input.

Returns

  • The derivative of f evaluated at x.

Example

julia> ctgradient(x -> x^2, 3.0)  # returns 6.0
source
ctgradient(f::Function, x) -> Any

Compute the gradient of a scalar function f at a vector point x.

Arguments

  • f::Function: A scalar-valued function accepting a vector input.
  • x: A vector of numbers.

Returns

  • A vector representing the gradient ∇f(x).

Example

julia> ctgradient(x -> sum(x.^2), [1.0, 2.0])  # returns [2.0, 4.0]
source
ctgradient(X::CTFlows.VectorField, x) -> Any

Compute the gradient of a VectorField at a given point.

Arguments

  • X::VectorField: A vector field object with a callable function X.f.
  • x: A scalar or vector input.

Returns

  • The derivative or gradient depending on the type of x.

Example

julia> X = VectorField(x -> x^2)
julia> ctgradient(X, 2.0)  # returns 4.0
source
CTFlows.ctjacobianFunction
ctjacobian(f::Function, x::Real) -> Any

Compute the Jacobian of a vector-valued function f at a scalar point x.

Arguments

  • f::Function: A vector-valued function.
  • x::ctNumber: A scalar input.

Returns

  • A matrix representing the Jacobian Jf(x).

Example

julia> f(x) = [sin(x), cos(x)]
julia> ctjacobian(f, 0.0)  # returns a 2×1 matrix
source
ctjacobian(f::Function, x) -> Any

Compute the Jacobian of a vector-valued function f at a vector point x.

Arguments

  • f::Function: A vector-valued function.
  • x: A vector input.

Returns

  • A matrix representing the Jacobian Jf(x).

Example

julia> f(x) = [x[1]^2, x[2]^2]
julia> ctjacobian(f, [1.0, 2.0])  # returns [2.0 0.0; 0.0 4.0]
source
ctjacobian(X::CTFlows.VectorField, x) -> Any

Compute the Jacobian of a VectorField at a given point.

Arguments

  • X::VectorField: A vector field object with a callable function X.f.
  • x: A scalar or vector input.

Returns

  • A matrix representing the Jacobian of X at x.

Example

julia> X = VectorField(x -> [x[1]^2, x[2]])
julia> ctjacobian(X, [1.0, 3.0])  # returns [2.0 0.0; 0.0 1.0]
source