public ConstantVelocity2DModel GetNoisyState(double accelerationNoise)
        {
            var processNoiseMat = ConstantVelocity2DModel.GetProcessNoise(accelerationNoise);
            var noise           = normalDistribution.Generate(ConstantVelocity2DModel.Dimension).Multiply(processNoiseMat);

            return(new ConstantVelocity2DModel
            {
                Position = new Vector
                {
                    x = currentState.Position.x + (float)noise[0],
                    y = currentState.Position.y + (float)noise[2]
                },

                Velocity = new Vector
                {
                    x = currentState.Velocity.x + (float)noise[1],
                    y = currentState.Velocity.y + (float)noise[3]
                }
            });
        }