public StochasticManifoldPoint(IManifoldPoint expectation, OSymmetricMatrix covariance) { ArgAssert.Equal(expectation.Dimension, "expectation.Dimension", covariance.Dimension, "covariance.Dimension"); _expectation = expectation; _covariance = covariance; }
public StochasticVector(OVector expectation, OSymmetricMatrix covariance) { ArgAssert.Equal(expectation.Dimension, "expectation.Dimension", covariance.Dimension, "covariance.Dimension"); _expectation = expectation; _covariance = covariance; }
public AffineStochasticTransformation(OMatrix matrix, OVector freeTerm, OSymmetricMatrix covariance) { _domain = new AffineSpace(matrix.ColumnCount); _codomain = new AffineSpace(matrix.RowCount); _matrix = matrix; _freeTerm = freeTerm; _covariance = covariance; }
public OrnsteinUhlenbeckProcess(OSymmetricMatrix diffusionMatrix, double relaxationTime, OVector?attractorPoint = null) { _diffusionMatrix = diffusionMatrix; RelaxationTime = relaxationTime; if (attractorPoint != null) { AttractorPoint = attractorPoint.Value; } else { AttractorPoint = Vector.Zero(diffusionMatrix.Dimension); } _stateSpace = new AffineSpace(diffusionMatrix.Dimension); }
public WienerProcess(OSymmetricMatrix diffusionMatrix, OVector?driftVelocity = null) { _stateSpace = new AffineSpace(diffusionMatrix.Dimension); _diffusionMatrix = diffusionMatrix; if (driftVelocity == null) { _driftVelocity = Vector.Zero(diffusionMatrix.Dimension); } else { ArgAssert.Equal(driftVelocity.Value.Dimension, "driftVelocity.Value.Dimension", diffusionMatrix.Dimension, "diffusionMatrix.Dimension"); _driftVelocity = driftVelocity.Value; } }
public static OrnsteinUhlenbeckProcess GivenByCovariance(OSymmetricMatrix covariance, double relaxationTime, OVector?attractorPoint = null) { var diffusionMatrix = (2 / relaxationTime) * covariance; return(new OrnsteinUhlenbeckProcess(diffusionMatrix, relaxationTime, attractorPoint)); }