Esempio n. 1
0
        public StochasticManifoldPoint(IManifoldPoint expectation, OSymmetricMatrix covariance)
        {
            ArgAssert.Equal(expectation.Dimension, "expectation.Dimension", covariance.Dimension, "covariance.Dimension");

            _expectation = expectation;
            _covariance  = covariance;
        }
Esempio n. 2
0
        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);
        }
Esempio n. 5
0
        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));
        }