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