Ejemplo n.º 1
0
 /// <summary>
 /// Predictive distribution at a given list of points
 /// </summary>
 /// <param name="XList">List of inputs</param>
 /// <returns>Predictive distribution</returns>
 public VectorGaussian Joint(IList <Vector> XList)
 {
     if (IsUniform())
     {
         return(VectorGaussian.Uniform(XList.Count));
     }
     else
     {
         PositiveDefiniteMatrix kXX = FixedParameters.Prior.Covariance(XList);
         Matrix kXB = FixedParameters.KernelOf_X_B(XList);
         kXX.SetToDifference(kXX, kXB * Beta * kXB.Transpose());
         VectorGaussian result = new VectorGaussian(kXB * Alpha + FixedParameters.Prior.Mean(XList), kXX);
         return(result);
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Predictive coariance at a given list of points
 /// </summary>
 /// <param name="XList">List of inputs</param>
 /// <returns>Predictive covariance</returns>
 public PositiveDefiniteMatrix Covariance(IList <Vector> XList)
 {
     if (IsUniform())
     {
         VectorGaussian temp = new VectorGaussian(XList.Count);
         temp.SetToUniform();
         return(temp.GetVariance());
     }
     else
     {
         PositiveDefiniteMatrix kXX = FixedParameters.Prior.Covariance(XList);
         Matrix kXB = FixedParameters.KernelOf_X_B(XList);
         kXX.SetToDifference(kXX, kXB * Beta * kXB.Transpose());
         return(kXX);
     }
 }