public static void Test() { Func <double, double> f = x => x * x; Func <double, double> q = x => f(x - 3) + 2; var swarm = new Swarm1D(); swarm.Minimize(q, -100, 100, 1000, out var X, out var Y); Console.WriteLine("X = {0}; Y = {1}", X, Y); Console.ReadLine(); }
public void MaximizeInterval() { var swarm = new Swarm1D(); swarm.Maximize( FNegate, (-5, 5), IterationCount: 1000, out var X, out var Y); Assert.That.Value(X).IsEqual(-__X0, 5.0e-4); Assert.That.Value(Y).IsEqual(-__Y0, 1.0e-7); }
public void MinimizeInterval() { var swarm = new Swarm1D(); swarm.Minimize( F, (-100, 100), IterationCount: 1000, out var X, out var Y); Assert.That.Value(X).IsEqual(__X0, 2e-8); Assert.That.Value(Y).IsEqual(__Y0); }
public void Maximize() { var swarm = new Swarm1D(); swarm.Maximize( FNegate, MinX: -5, MaxX: 5, IterationCount: 10000, out var X, out var Y); Assert.That.Value(X).IsEqual(-__X0, 6e-5); Assert.That.Value(Y).IsEqual(-__Y0, 1e-9); }
public void Minimize() { var swarm = new Swarm1D(); swarm.Minimize( F, MinX: -100, MaxX: 100, IterationCount: 1000, out var X, out var Y); Assert.That.Value(X).IsEqual(__X0, 2.0e-8); Assert.That.Value(Y).IsEqual(__Y0); }