org.apache.commons.math3.filter

## Class DefaultProcessModel

- java.lang.Object
- - org.apache.commons.math3.filter.DefaultProcessModel

- All Implemented Interfaces:
    ProcessModel

      public class DefaultProcessModel
      extends java.lang.Object
      implements ProcessModel

  Default implementation of a `ProcessModel` for the use with a `KalmanFilter`.
  Since:
    3.0
  Version:
    $Id: DefaultProcessModel.java 1416643 2012-12-03 19:37:14Z tn $

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private RealMatrix` | `controlMatrix` The control matrix, used to integrate a control input into the state estimation.
    `private RealMatrix` | `initialErrorCovMatrix` The initial error covariance matrix of the observed process.
    `private RealVector` | `initialStateEstimateVector` The initial state estimation of the observed process.
    `private RealMatrix` | `processNoiseCovMatrix` The process noise covariance matrix.
    `private RealMatrix` | `stateTransitionMatrix` The state transition matrix, used to advance the internal state estimation each time-step.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DefaultProcessModel(double[][] stateTransition, double[][] control, double[][] processNoise)` Create a new `ProcessModel`, taking double arrays as input parameters.
    `DefaultProcessModel(double[][] stateTransition, double[][] control, double[][] processNoise, double[] initialStateEstimate, double[][] initialErrorCovariance)` Create a new `ProcessModel`, taking double arrays as input parameters.
    `DefaultProcessModel(RealMatrix stateTransition, RealMatrix control, RealMatrix processNoise, RealVector initialStateEstimate, RealMatrix initialErrorCovariance)` Create a new `ProcessModel`, taking double arrays as input parameters.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `RealMatrix` | `getControlMatrix()` Returns the control matrix.
    `RealMatrix` | `getInitialErrorCovariance()` Returns the initial error covariance matrix.
    `RealVector` | `getInitialStateEstimate()` Returns the initial state estimation vector.
    `RealMatrix` | `getProcessNoise()` Returns the process noise matrix.
    `RealMatrix` | `getStateTransitionMatrix()` Returns the state transition matrix.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### stateTransitionMatrix

          private RealMatrix stateTransitionMatrix

      The state transition matrix, used to advance the internal state estimation each time-step.

    - #### controlMatrix

          private RealMatrix controlMatrix

      The control matrix, used to integrate a control input into the state estimation.

    - #### processNoiseCovMatrix

          private RealMatrix processNoiseCovMatrix

      The process noise covariance matrix.

    - #### initialStateEstimateVector

          private RealVector initialStateEstimateVector

      The initial state estimation of the observed process.

    - #### initialErrorCovMatrix

          private RealMatrix initialErrorCovMatrix

      The initial error covariance matrix of the observed process.

  - ### Constructor Detail

    - #### DefaultProcessModel

          public DefaultProcessModel(double[][] stateTransition,
                             double[][] control,
                             double[][] processNoise,
                             double[] initialStateEstimate,
                             double[][] initialErrorCovariance)
                              throws NullArgumentException,
                                     NoDataException,
                                     DimensionMismatchException

      Create a new `ProcessModel`, taking double arrays as input parameters.
      Parameters:
        `stateTransition` - the state transition matrix
        `control` - the control matrix
        `processNoise` - the process noise matrix
        `initialStateEstimate` - the initial state estimate vector
        `initialErrorCovariance` - the initial error covariance matrix
      Throws:
        `NullArgumentException` - if any of the input arrays is `null`
        `NoDataException` - if any row / column dimension of the input matrices is zero
        `DimensionMismatchException` - if any of the input matrices is non-rectangular

    - #### DefaultProcessModel

          public DefaultProcessModel(double[][] stateTransition,
                             double[][] control,
                             double[][] processNoise)
                              throws NullArgumentException,
                                     NoDataException,
                                     DimensionMismatchException

      Create a new `ProcessModel`, taking double arrays as input parameters.

      The initial state estimate and error covariance are omitted and will be initialized by the `KalmanFilter` to default values.

      Parameters:
        `stateTransition` - the state transition matrix
        `control` - the control matrix
        `processNoise` - the process noise matrix
      Throws:
        `NullArgumentException` - if any of the input arrays is `null`
        `NoDataException` - if any row / column dimension of the input matrices is zero
        `DimensionMismatchException` - if any of the input matrices is non-rectangular

    - #### DefaultProcessModel

          public DefaultProcessModel(RealMatrix stateTransition,
                             RealMatrix control,
                             RealMatrix processNoise,
                             RealVector initialStateEstimate,
                             RealMatrix initialErrorCovariance)

      Create a new `ProcessModel`, taking double arrays as input parameters.
      Parameters:
        `stateTransition` - the state transition matrix
        `control` - the control matrix
        `processNoise` - the process noise matrix
        `initialStateEstimate` - the initial state estimate vector
        `initialErrorCovariance` - the initial error covariance matrix

  - ### Method Detail

    - #### getStateTransitionMatrix

          public RealMatrix getStateTransitionMatrix()

      Returns the state transition matrix.
      Specified by:
        `getStateTransitionMatrix` in interface `ProcessModel`
      Returns:
        the state transition matrix

    - #### getControlMatrix

          public RealMatrix getControlMatrix()

      Returns the control matrix.
      Specified by:
        `getControlMatrix` in interface `ProcessModel`
      Returns:
        the control matrix

    - #### getProcessNoise

          public RealMatrix getProcessNoise()

      Returns the process noise matrix. This method is called by the `KalmanFilter` every prediction step, so implementations of this interface may return a modified process noise depending on the current iteration step.
      Specified by:
        `getProcessNoise` in interface `ProcessModel`
      Returns:
        the process noise matrix
      See Also:
        `KalmanFilter.predict()`, `KalmanFilter.predict(double[])`, `KalmanFilter.predict(RealVector)`

    - #### getInitialStateEstimate

          public RealVector getInitialStateEstimate()

      Returns the initial state estimation vector.

      Note: if the return value is zero, the Kalman filter will initialize the state estimation with a zero vector.

      Specified by:
        `getInitialStateEstimate` in interface `ProcessModel`
      Returns:
        the initial state estimation vector

    - #### getInitialErrorCovariance

          public RealMatrix getInitialErrorCovariance()

      Returns the initial error covariance matrix.

      Note: if the return value is zero, the Kalman filter will initialize the error covariance with the process noise matrix.

      Specified by:
        `getInitialErrorCovariance` in interface `ProcessModel`
      Returns:
        the initial error covariance matrix

Copyright (c) 2003-2013 Apache Software Foundation