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)); }
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)); }
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)); }
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); }