Browse Source

Root Finding: Zero Crossing Bracketing expansion must reset boundaries if it fails

benchmark-la
Christoph Ruegg 10 years ago
parent
commit
b076067402
  1. 5
      src/Numerics/RootFinding/ZeroCrossingBracketing.cs

5
src/Numerics/RootFinding/ZeroCrossingBracketing.cs

@ -82,6 +82,9 @@ namespace MathNet.Numerics.RootFinding
/// <remarks>This iterative methods stops when two values with opposite signs are found.</remarks>
public static bool Expand(Func<double, double> f, ref double lowerBound, ref double upperBound, double factor = 1.6, int maxIterations = 50)
{
double originalLowerBound = lowerBound;
double originalUpperBound = upperBound;
if (lowerBound >= upperBound)
{
throw new ArgumentOutOfRangeException("upperBound", string.Format(Resources.ArgumentOutOfRangeGreater, "xmax", "xmin"));
@ -109,6 +112,8 @@ namespace MathNet.Numerics.RootFinding
}
}
lowerBound = originalLowerBound;
upperBound = originalUpperBound;
return false;
}
}

Loading…
Cancel
Save