Packages

o

scalation.calculus

Differential

object Differential

The Differential object contains functions for computing derivatives, partial derivatives, Laplacians, gradient vectors, Hessian matrices and Jacobian matrices.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Differential
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. type FunctionsV = Array[FunctionV2S]

Value Members

  1. def derivative(f: FunctionS2S, x: Double): Double

    Estimate the derivative of the scalar-to-scalar function 'f' at 'x' using a 2-sided method (central difference).

    Estimate the derivative of the scalar-to-scalar function 'f' at 'x' using a 2-sided method (central difference). Approximate the tangent line at '(x, f(x))' with the secant line through points '(x-h, f(x-h))' and '(x+h, f(x+h))'. Tends to be MORE ACCURATE than the 1-sided method. Although a noun, 'derivative' was chosen over the verb 'differentiate'.

    f

    the function whose derivative is sought

    x

    the point (scalar) at which to estimate the derivative

    See also

    www.math.montana.edu/frankw/ccp/modeling/continuous/heatflow2/firstder.htm

  2. def derivative1(f: FunctionS2S, x: Double): Double

    Estimate the derivative of the scalar-to-scalar function 'f' at 'x' using a 1-sided method (forward difference).

    Estimate the derivative of the scalar-to-scalar function 'f' at 'x' using a 1-sided method (forward difference). Approximate the tangent line at '(x, f(x))' with the secant line through points '(x, f(x))' and '(x+h, f(x+h))'.

    f

    the function whose derivative is sought

    x

    the point (scalar) at which to estimate the derivative

  3. def derivative2(f: FunctionS2S, x: Double): Double

    Estimate the second derivative of the scalar-to-scalar function 'f' at 'x' using the central difference formula for second derivatives.

    Estimate the second derivative of the scalar-to-scalar function 'f' at 'x' using the central difference formula for second derivatives.

    f

    the function whose second derivative is sought

    x

    the point (scalar) at which to estimate the derivative

  4. def fdiffernce(f: FunctionS2S, x: Double): Double

    Estimate the finite difference of the scalar-to-scalar function 'f' at 'x' using a 1-sided method (forward difference).

    Estimate the finite difference of the scalar-to-scalar function 'f' at 'x' using a 1-sided method (forward difference). May work better than the derivative for noisy functions.

    f

    the function whose derivative is sought

    x

    the point (scalar) at which to estimate the finite difference

  5. def gradient(f: FunctionV2S, x: VectorD): VectorD

    Estimate the gradient of the vector-to-scalar function 'f' at point 'x' returning a value for the partial derivative for each dimension of 'x'.

    Estimate the gradient of the vector-to-scalar function 'f' at point 'x' returning a value for the partial derivative for each dimension of 'x'.

    f

    the function whose gradient is sought

    x

    the point (vector) at which to estimate the gradient

  6. def gradientD(d: FunctionsV, x: VectorD): VectorD

    Compute the gradient of the vector-to-scalar function 'f' using partial derivative functions evaluated at point 'x.' Return a value for the partial derivative for each dimension of the vector 'x.'

    Compute the gradient of the vector-to-scalar function 'f' using partial derivative functions evaluated at point 'x.' Return a value for the partial derivative for each dimension of the vector 'x.'

    d

    the array of partial derivative functions

    x

    the point (vector) at which to compute the gradient

  7. def hessian(f: FunctionV2S, x: VectorD): MatrixD

    Estimate the Hessian of the vector-to-scalar function 'f' at point 'x' returning a matrix of second partial derivative.

    Estimate the Hessian of the vector-to-scalar function 'f' at point 'x' returning a matrix of second partial derivative.

    f

    the function whose Hessian is sought

    x

    the point (vector) at which to estimate the Hessian

  8. def jacobian(f: FunctionsV, x: VectorD): MatrixD

    Compute the Jacobian matrix for a vector-valued function represented as an array of scalar-valued functions.

    Compute the Jacobian matrix for a vector-valued function represented as an array of scalar-valued functions. The 'i'th row in the matrix is the gradient of the 'i'th function.

    f

    the array of functions whose Jacobian is sought

    x

    the point (vector) at which to estimate the Jacobian

  9. def laplacian(f: FunctionV2S, x: VectorD): Double

    Estimate the Laplacian of the vector-to-scalar function 'f' at point 'x' returning the sum of the pure second partial derivatives.

    Estimate the Laplacian of the vector-to-scalar function 'f' at point 'x' returning the sum of the pure second partial derivatives.

    f

    the function whose Hessian is sought

    x

    the point (vector) at which to estimate the Hessian

  10. def partial(i: Int)(f: FunctionV2S, x: VectorD): Double

    Estimate the 'i'th partial derivative of the vector-to-scalar function 'f' at point 'x' returning the value for the partial derivative for dimension 'i'.

    Estimate the 'i'th partial derivative of the vector-to-scalar function 'f' at point 'x' returning the value for the partial derivative for dimension 'i'.

    i

    the dimension to compute the partial derivative on

    f

    the function whose partial derivative is sought

    x

    the point (vector) at which to estimate the partial derivative

  11. def partial2(i: Int, j: Int)(f: FunctionV2S, x: VectorD): Double

    Estimate the '(i,j)'th second partial derivative of the vector-to-scalar function 'f' at point 'x' returning the value for the second partial derivative for dimensions '(i, j)'.

    Estimate the '(i,j)'th second partial derivative of the vector-to-scalar function 'f' at point 'x' returning the value for the second partial derivative for dimensions '(i, j)'. If 'i = j', the second partial derivative is called "pure", otherwise it is a "cross" second partial derivative.

    i

    the first dimension to compute the second partial derivative on

    j

    the second dimension to compute the second partial derivative on

    f

    the function whose second partial derivative is sought

    x

    the point (vector) at which to estimate the second partial derivative

    See also

    www.uio.no/studier/emner/matnat/math/MAT-INF1100/h07/undervisningsmateriale/kap7.pdf

  12. def resetH(step: Double): Unit

    Reset the step size from its default step size to one more suitable for your function.

    Reset the step size from its default step size to one more suitable for your function. A heuristic for the central difference method is to let 'h = max (|x|,1) * (machine-epsilon)^(1/3)' For double precision, the machine-epsilon is about 1E-16.

    step

    the new step size to reset h to

    See also

    www.karenkopecky.net/Teaching/eco613614/Notes_NumericalDifferentiation.pdf

  13. def resetHR(largeStep: Double): Unit

    Reset the large step size from its default step size to one more suitable for your function.

    Reset the large step size from its default step size to one more suitable for your function.

    largeStep

    the new large step size to reset hl to

  14. def slope(f: FunctionV2S, x: VectorD, n: Int = 0): VectorD

    Compute the slope of the vector-to-scalar function 'f' defined on mixed real/integer vectors.

    Compute the slope of the vector-to-scalar function 'f' defined on mixed real/integer vectors.

    f

    the function whose slope is sought

    x

    the point (vector) at which to estimate the slope

    n

    the number of dimensions that are real-valued (rest are integers)

  15. def Δ(f: FunctionS2S)(x: Double): Double
  16. def Η(f: FunctionV2S, x: VectorD): MatrixD
  17. def Ј(f: FunctionsV, x: VectorD): MatrixD
  18. def (f: FunctionS2S)(x: Double): Double
  19. def ⅮⅮ(f: FunctionS2S, x: Double): Double
  20. def (i: Int)(f: FunctionV2S, x: VectorD): Double
  21. def ∂∂(i: Int, j: Int)(f: FunctionV2S, x: VectorD): Double
  22. def (f: FunctionV2S, x: VectorD): Double
  23. def (f: FunctionV2S, x: VectorD): VectorD
  24. def ∇*(d: FunctionsV, x: VectorD): VectorD