Package org.apache.commons.math3.filter

# Class DefaultProcessModel

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

All Implemented Interfaces:
  `ProcessModel`

public class DefaultProcessModel extends Object implements ProcessModel
Default implementation of a `ProcessModel` for the use with a `KalmanFilter`.

Since:
  3.0

## Constructor Summary

Constructors
Constructor
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

Modifier and Type
Method
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`

## Constructor Details

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

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