Class SensitivityMatrix
java.lang.Object
neqsim.process.util.uncertainty.SensitivityMatrix
- All Implemented Interfaces:
Serializable
Represents a sensitivity matrix for uncertainty propagation in process simulations.
The sensitivity matrix contains partial derivatives of output variables with respect to input variables, enabling uncertainty propagation and sensitivity analysis for optimization.
- Version:
- 1.0
- Author:
- ESOL
- See Also:
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionSensitivityMatrix(String[] inputVariables, String[] outputVariables) Creates a new sensitivity matrix. -
Method Summary
Modifier and TypeMethodDescriptionString[]Gets the input variable names.double[][]Gets the raw Jacobian matrix.Identifies the most influential input for each output.double[][]getNormalizedSensitivities(double[] inputValues, double[] outputValues) Calculates normalized sensitivities (elasticities).String[]Gets the output variable names.double[]getSensitivitiesForOutput(String outputVariable) Gets the sensitivity row for a specific output.doublegetSensitivity(String outputVariable, String inputVariable) Gets a sensitivity value.double[][]propagateCovariance(double[][] inputCovariance) Propagates uncertainties with correlation.double[]propagateUncertainty(double[] inputStdDevs) Propagates input uncertainties to output uncertainties.voidsetSensitivity(String outputVariable, String inputVariable, double sensitivity) Sets a sensitivity value (partial derivative).
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
inputVariables
-
outputVariables
-
jacobian
private final double[][] jacobian -
inputIndex
-
outputIndex
-
-
Constructor Details
-
SensitivityMatrix
-
-
Method Details
-
setSensitivity
-
getSensitivity
-
getJacobian
public double[][] getJacobian()Gets the raw Jacobian matrix.- Returns:
- the Jacobian matrix (output x input)
-
getSensitivitiesForOutput
Gets the sensitivity row for a specific output.- Parameters:
outputVariable- the output variable name- Returns:
- array of sensitivities to all inputs, or null if not found
-
propagateUncertainty
public double[] propagateUncertainty(double[] inputStdDevs) Propagates input uncertainties to output uncertainties.Uses the formula: Cov(Y) = J * Cov(X) * J^T where J is the Jacobian.
- Parameters:
inputStdDevs- standard deviations of input variables- Returns:
- standard deviations of output variables
-
propagateCovariance
public double[][] propagateCovariance(double[][] inputCovariance) Propagates uncertainties with correlation.- Parameters:
inputCovariance- covariance matrix of inputs- Returns:
- covariance matrix of outputs
-
getInputVariables
Gets the input variable names.- Returns:
- array of input variable names
-
getOutputVariables
Gets the output variable names.- Returns:
- array of output variable names
-
getMostInfluentialInputs
-
getNormalizedSensitivities
public double[][] getNormalizedSensitivities(double[] inputValues, double[] outputValues) Calculates normalized sensitivities (elasticities).- Parameters:
inputValues- current values of input variablesoutputValues- current values of output variables- Returns:
- normalized sensitivity matrix (% change in output / % change in input)
-