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