// Recalcular el rando en Y private void UpdateYRange() { double minY = double.MaxValue; double maxY = double.MinValue; // recorrer todas las series IDictionaryEnumerator en = seriesTable.GetEnumerator(); while (en.MoveNext()) { DataSeries series = (DataSeries)en.Value; // obtener datos de las series double[,] data = series.data; if (data != null) { for (int i = 0, n = data.GetLength(0); i < n; i++) { double v = data[i, 1]; // checkear maximo if (v > maxY) maxY = v; // checkear minimo if (v < minY) minY = v; } } } if ((minY != double.MaxValue) || (maxY != double.MinValue)) { rangeY = new DoubleRange(minY, maxY); } }
/// <summary> /// Constructor /// </summary> public OptimizationFunction(DoubleRange range) { this.range = range; //TODO: esto va como parametro en realidad this.Function = (x => 0.4 + Math.Sin(x * Math.PI * 20)*0.4 + x*0.8); }