Beispiel #1
0
        public void Apply_Expectation_matches_AttractorPoint_for_large_times()
        {
            var tolerance = 1e-7;
            var time      = 1e50;

            var process = new OrnsteinUhlenbeckProcess(_diffusionMatrix, _relaxationTime, _attractorPoint);

            Expect(((OVector)process.Apply(_point, time).Expectation - _attractorPoint).Norm(), Is.LessThan(tolerance));
        }
Beispiel #2
0
        public void Apply_Covariance_matches_EquilibriumCovariance_for_large_times()
        {
            var tolerance = 1e-7;
            var time      = 1e50;

            var process = new OrnsteinUhlenbeckProcess(_diffusionMatrix, _relaxationTime, _attractorPoint);

            Expect((process.Apply(_point, time).Covariance - process.EquilibriumCovariance).FrobeniusNorm(), Is.LessThan(tolerance));
        }
Beispiel #3
0
        public void EquilibriumCovariance_of_OrnsteinUhlenbeckProcess_GivenByCovariance_matches_provided_covariance()
        {
            var covariance = new SymmetricMatrix(new double[][]
            {
                new double [] { +0.3, },
                new double [] { -0.1, +0.4, },
                new double [] { +0.1, +0.2, +0.4 }
            });

            var process = OrnsteinUhlenbeckProcess.GivenByCovariance(covariance, _relaxationTime, _attractorPoint);

            Expect((process.EquilibriumCovariance - covariance).FrobeniusNorm(), Is.LessThan(_tolerance));
        }
Beispiel #4
0
        public void Common_IStochasticProcess_validation()
        {
            var process = new OrnsteinUhlenbeckProcess(_diffusionMatrix, _relaxationTime, _attractorPoint);

            ProbabilityTestUtils.ValidateProcess(process, _point, time: 7.4, eps: 1e-5, tolerance: 1e-7);
        }