/// <summary> /// Creates a new object that is a copy of the current instance. /// </summary> /// <returns> /// A new object that is a copy of this instance. /// </returns> public object Clone() { var clone = new MonteCarloIntegration(NumberOfParameters, Function); clone.Iterations = Iterations; clone.Range = (NumericRange[])Range.Clone(); return(clone); }
/// <summary> /// Computes the area of the function under the selected <see cref="Range" />. /// The computed value will be available at this object's <see cref="Area" />. /// </summary> /// <returns> /// True if the integration method succeeds, false otherwise. /// </returns> public static double Integrate(Func <double[], double> func, double[] a, double[] b) { var mc = new MonteCarloIntegration(a.Length, func); for (var i = 0; i < a.Length; i++) { mc.Range[i] = new NumericRange(a[i], b[i]); } mc.Compute(); return(mc.Area); }