Class ParameterizedSurface


  • public abstract class ParameterizedSurface
    extends ParameterizedFunction<DoublesPair,​DoubleArray,​Double>
    A parameterised surface that gives the both the surface (the function z=f(xy) where xy is a 2D point and z is a scalar) and the surface sensitivity (dz/dp where p is one of the parameters) for given parameters.
    • Constructor Detail

      • ParameterizedSurface

        public ParameterizedSurface()
    • Method Detail

      • getZParameterSensitivity

        public Function<DoublesPair,​DoubleArray> getZParameterSensitivity​(DoubleArray params)
        For a function of two variables (surface) that can be written as $z=f(x, y;\boldsymbol{\theta})$ where x, y & z are scalars and $\boldsymbol{\theta})$ is a vector of parameters (i.e. $x,y,z \in \mathbb{R}$ and $\boldsymbol{\theta} \in \mathbb{R}^n$) this returns the function $g : \mathbb{R} \to \mathbb{R}^n; x,y \mapsto g(x,y)$, which is the function's (curves') sensitivity to its parameters, i.e. $g(x,y) = \frac{\partial f(x,y;\boldsymbol{\theta})}{\partial \boldsymbol{\theta}}$

        The default calculation is performed using finite difference (via ScalarFieldFirstOrderDifferentiator) but it is expected that this will be overridden by concrete subclasses.

        Parameters:
        params - The value of the parameters ($\boldsymbol{\theta}$) at which the sensitivity is calculated
        Returns:
        The sensitivity as a function with a DoublesPair (x,y) as its single argument and a vector as its return value