## 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
`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
`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
`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