committed by
Erik Ovegard
7 changed files with 71 additions and 11 deletions
@ -0,0 +1,17 @@ |
|||
namespace MathNet.Numerics.Optimization |
|||
{ |
|||
public class MinimizationResult1D |
|||
{ |
|||
public double MinimizingPoint { get { return FunctionInfoAtMinimum.Point; } } |
|||
public IEvaluation1D FunctionInfoAtMinimum { get; private set; } |
|||
public int Iterations { get; private set; } |
|||
public MinimizationResult.ExitCondition ReasonForExit { get; private set; } |
|||
|
|||
public MinimizationResult1D(IEvaluation1D functionInfo, int iterations, MinimizationResult.ExitCondition reasonForExit) |
|||
{ |
|||
FunctionInfoAtMinimum = functionInfo; |
|||
Iterations = iterations; |
|||
ReasonForExit = reasonForExit; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,32 @@ |
|||
using System; |
|||
using MathNet.Numerics.Optimization; |
|||
using NUnit.Framework; |
|||
|
|||
namespace MathNet.Numerics.UnitTests.OptimizationTests |
|||
{ |
|||
[TestFixture] |
|||
public class TestGoldenSectionMinimizer |
|||
{ |
|||
[Test] |
|||
public void Test_Works() |
|||
{ |
|||
var algorithm = new GoldenSectionMinimizer(1e-5, 1000); |
|||
var f1 = new Func<double, double>(x => (x - 3)*(x - 3)); |
|||
var obj = new SimpleObjectiveFunction1D(f1); |
|||
var r1 = algorithm.FindMinimum(obj, -100, 100); |
|||
|
|||
Assert.That(Math.Abs(r1.MinimizingPoint - 3.0), Is.LessThan(1e-4)); |
|||
} |
|||
|
|||
[Test] |
|||
public void Test_ExpansionWorks() |
|||
{ |
|||
var algorithm = new GoldenSectionMinimizer(1e-5, 1000); |
|||
var f1 = new Func<double, double>(x => (x - 3) * (x - 3)); |
|||
var obj = new SimpleObjectiveFunction1D(f1); |
|||
var r1 = algorithm.FindMinimum(obj, -5, 5); |
|||
|
|||
Assert.That(Math.Abs(r1.MinimizingPoint - 3.0), Is.LessThan(1e-4)); |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue