public double setRange(Kmeans.Centroid c) { List <double> r = new List <double>(); foreach (Centroid ce in centre) { if (ce != c) { r.Add(EDistance(new Kmeans.Point(ce.X, ce.Y, ce.Z, ce.Q), c)); } } return(Math.Sqrt(r.Min()));; }
public double EDistance(Point a, Centroid c) { return(Math.Sqrt(Math.Pow(a.X - c.X, 2) + Math.Pow(a.Y - c.Y, 2) + Math.Pow(a.Z - c.Z, 2) + Math.Pow(a.Q - c.Q, 2))); }
public double EDistance(Kmeans.Point a, Kmeans.Centroid c) { return(Math.Pow(a.X - c.X, 2) + Math.Pow(a.Y - c.Y, 2) + Math.Pow(a.Z - c.Z, 2) + Math.Pow(a.Q - c.Q, 2)); }
private double GaussianBasisFunction(Kmeans.Point x, Kmeans.Centroid c, double r) //??? wzór do sprawdzenia { return(Math.Exp((-1) * (EDistance(x, c)) / r * r)); }