public void Predict(double dT, double q)
        {
            this.F[0, 1] = dT;
            this.G[0, 0] = 0.5 * (dT * dT);
            this.G[1, 0] = dT;
            this.Q[0, 0] = q;

            filter.Predict(this.F, this.G, this.Q);
        }
        public void Predict(double T, double q)
        {
            Matrix <double> F = GenerateTransition(T);
            Matrix <double> G = GenerateNoiseCoupling(T);
            Matrix <double> Q = Matrix <double> .Build.Dense(1, 1, new[] { q });

            //System.Console.WriteLine("GQG' " + G * Q * Matrix.Transpose(G));

            //kf.Predict(F);
            //kf.Predict(F, G * Q * Matrix.Transpose(G));
            kf.Predict(F, G, Q);
        }
        public void Predict(double T, double q)
        {
            Matrix F = GenerateTransition(T);
            Matrix G = GenerateNoiseCoupling(T);
            Matrix Q = new Matrix(1, 1);

            Q[0, 0] = q;

            //System.Console.WriteLine("GQG' " + G * Q * Matrix.Transpose(G));

            //kf.Predict(F);
            //kf.Predict(F, G * Q * Matrix.Transpose(G));
            kf.Predict(F, G, Q);
        }