particleFilter.run

Runs an offline particle filter assimilation


Syntax



Description

output = obj.run

Runs the offline particle filter assimilation. Returns the updated state vector and particle weights for each assimilated time step. Requires the particle filter object to have observations, estimates, uncertainties, and a prior.

If you would like details on the implementation of the algorithm, or for advice on troubleshooting large state vectors, please see the help text for the particleFilter class: >> help particleFilter

output = obj.run(…, ‘sse’, returnSSE)
output = obj.run(…, ‘sse’, “return”|”r”|true)
output = obj.run(…, ‘sse’, “discard”|”d”|false)

Indicate whether to include the sum of squared errors for each particle in the output. Default behavior is to not include the SSE values in the output. Use “return”|”r”|true to return these values.


Input Arguments

returnSSE

string scalar | scalar logical
Indicates whether to return the sum of squared errors for each particle in the output.

[“return”|”r”|true]: Returns the SSE values in the output

[“discard”|”d”|false (default)]: Does not return SSE values


Output Arguments

output

scalar struct
Output produced by the particle filter. May include the following fields:

.A (numeric matrix [nState x nTime]): The updated state vector for each assimilated time step. A numeric matrix, each column holds the updated state vector for an assimilated time step.

.weights (numeric matrix [nMembers x nTime]): The particle weights of each ensemble member for each assimilated time step. A numeric matrix. Each row holds the weights of a specific ensemble member, and each column holds the weights for an assimilated time step.

.sse (numeric matrix [nMembers x nTime]): The SSE values for a particle filter. Each row holds the weights for a particular ensemble member. Each column holds weights for an assimilation time step. Lower values indicate greater similarity to the proxy observations.