当前位置: 首页>>代码示例>>Java>>正文


Java GaussianRandomGenerator类代码示例

本文整理汇总了Java中org.apache.commons.math3.random.GaussianRandomGenerator的典型用法代码示例。如果您正苦于以下问题:Java GaussianRandomGenerator类的具体用法?Java GaussianRandomGenerator怎么用?Java GaussianRandomGenerator使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


GaussianRandomGenerator类属于org.apache.commons.math3.random包,在下文中一共展示了GaussianRandomGenerator类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: testRosenbrock

import org.apache.commons.math3.random.GaussianRandomGenerator; //导入依赖的package包/类
@Test
public void testRosenbrock() {
    Rosenbrock rosenbrock = new Rosenbrock();
    SimplexOptimizer underlying
        = new SimplexOptimizer(new SimpleValueChecker(-1, 1.0e-3));
    NelderMeadSimplex simplex = new NelderMeadSimplex(new double[][] {
            { -1.2,  1.0 }, { 0.9, 1.2 } , {  3.5, -2.3 }
        });
    underlying.setSimplex(simplex);
    JDKRandomGenerator g = new JDKRandomGenerator();
    g.setSeed(16069223052l);
    RandomVectorGenerator generator =
        new UncorrelatedRandomVectorGenerator(2, new GaussianRandomGenerator(g));
    MultivariateMultiStartOptimizer optimizer =
        new MultivariateMultiStartOptimizer(underlying, 10, generator);
    PointValuePair optimum =
        optimizer.optimize(1100, rosenbrock, GoalType.MINIMIZE, new double[] { -1.2, 1.0 });

    Assert.assertEquals(rosenbrock.getCount(), optimizer.getEvaluations());
    Assert.assertTrue(optimizer.getEvaluations() > 900);
    Assert.assertTrue(optimizer.getEvaluations() < 1200);
    Assert.assertTrue(optimum.getValue() < 8.0e-4);
}
 
开发者ID:Quanticol,项目名称:CARMA,代码行数:24,代码来源:MultivariateMultiStartOptimizerTest.java

示例2: testNoOptimum

import org.apache.commons.math3.random.GaussianRandomGenerator; //导入依赖的package包/类
/**
 * Test demonstrating that the user exception is finally thrown if none
 * of the runs succeed.
 */
@Test(expected=TestException.class)
public void testNoOptimum() {
    JacobianMultivariateVectorOptimizer underlyingOptimizer
        = new GaussNewtonOptimizer(true, new SimpleVectorValueChecker(1e-6, 1e-6));
    JDKRandomGenerator g = new JDKRandomGenerator();
    g.setSeed(12373523445l);
    RandomVectorGenerator generator
        = new UncorrelatedRandomVectorGenerator(1, new GaussianRandomGenerator(g));
    MultiStartMultivariateVectorOptimizer optimizer
        = new MultiStartMultivariateVectorOptimizer(underlyingOptimizer, 10, generator);
    optimizer.optimize(new MaxEval(100),
                       new Target(new double[] { 0 }),
                       new Weight(new double[] { 1 }),
                       new InitialGuess(new double[] { 0 }),
                       new ModelFunction(new MultivariateVectorFunction() {
                               public double[] value(double[] point) {
                                   throw new TestException();
                               }
                           }));
}
 
开发者ID:Quanticol,项目名称:CARMA,代码行数:25,代码来源:MultiStartMultivariateVectorOptimizerTest.java

示例3: testGetOptimaBeforeOptimize

import org.apache.commons.math3.random.GaussianRandomGenerator; //导入依赖的package包/类
@Test(expected=NullPointerException.class)
public void testGetOptimaBeforeOptimize() {

    JacobianMultivariateVectorOptimizer underlyingOptimizer
        = new GaussNewtonOptimizer(true, new SimpleVectorValueChecker(1e-6, 1e-6));
    JDKRandomGenerator g = new JDKRandomGenerator();
    g.setSeed(16069223052l);
    RandomVectorGenerator generator
        = new UncorrelatedRandomVectorGenerator(1, new GaussianRandomGenerator(g));
    MultiStartMultivariateVectorOptimizer optimizer
        = new MultiStartMultivariateVectorOptimizer(underlyingOptimizer, 10, generator);

    optimizer.getOptima();
}
 
开发者ID:Quanticol,项目名称:CARMA,代码行数:15,代码来源:MultiStartMultivariateVectorOptimizerTest.java

示例4: testTrivial

import org.apache.commons.math3.random.GaussianRandomGenerator; //导入依赖的package包/类
@Test
public void testTrivial() {
    LinearProblem problem
        = new LinearProblem(new double[][] { { 2 } }, new double[] { 3 });
    JacobianMultivariateVectorOptimizer underlyingOptimizer
        = new GaussNewtonOptimizer(true, new SimpleVectorValueChecker(1e-6, 1e-6));
    JDKRandomGenerator g = new JDKRandomGenerator();
    g.setSeed(16069223052l);
    RandomVectorGenerator generator
        = new UncorrelatedRandomVectorGenerator(1, new GaussianRandomGenerator(g));
    MultiStartMultivariateVectorOptimizer optimizer
        = new MultiStartMultivariateVectorOptimizer(underlyingOptimizer, 10, generator);

    PointVectorValuePair optimum
        = optimizer.optimize(new MaxEval(100),
                             problem.getModelFunction(),
                             problem.getModelFunctionJacobian(),
                             problem.getTarget(),
                             new Weight(new double[] { 1 }),
                             new InitialGuess(new double[] { 0 }));
    Assert.assertEquals(1.5, optimum.getPoint()[0], 1e-10);
    Assert.assertEquals(3.0, optimum.getValue()[0], 1e-10);
    PointVectorValuePair[] optima = optimizer.getOptima();
    Assert.assertEquals(10, optima.length);
    for (int i = 0; i < optima.length; i++) {
        Assert.assertEquals(1.5, optima[i].getPoint()[0], 1e-10);
        Assert.assertEquals(3.0, optima[i].getValue()[0], 1e-10);
    }
    Assert.assertTrue(optimizer.getEvaluations() > 20);
    Assert.assertTrue(optimizer.getEvaluations() < 50);
    Assert.assertEquals(100, optimizer.getMaxEvaluations());
}
 
开发者ID:Quanticol,项目名称:CARMA,代码行数:33,代码来源:MultiStartMultivariateVectorOptimizerTest.java

示例5: testIssue914

import org.apache.commons.math3.random.GaussianRandomGenerator; //导入依赖的package包/类
@Test
public void testIssue914() {
    LinearProblem problem = new LinearProblem(new double[][] { { 2 } }, new double[] { 3 });
    JacobianMultivariateVectorOptimizer underlyingOptimizer =
            new GaussNewtonOptimizer(true, new SimpleVectorValueChecker(1e-6, 1e-6)) {
        @Override
        public PointVectorValuePair optimize(OptimizationData... optData) {
            // filter out simple bounds, as they are not supported
            // by the underlying optimizer, and we don't really care for this test
            OptimizationData[] filtered = optData.clone();
            for (int i = 0; i < filtered.length; ++i) {
                if (filtered[i] instanceof SimpleBounds) {
                    filtered[i] = null;
                }
            }
            return super.optimize(filtered);
        }
    };
    JDKRandomGenerator g = new JDKRandomGenerator();
    g.setSeed(16069223052l);
    RandomVectorGenerator generator =
            new UncorrelatedRandomVectorGenerator(1, new GaussianRandomGenerator(g));
    MultiStartMultivariateVectorOptimizer optimizer =
            new MultiStartMultivariateVectorOptimizer(underlyingOptimizer, 10, generator);

    optimizer.optimize(new MaxEval(100),
                       problem.getModelFunction(),
                       problem.getModelFunctionJacobian(),
                       problem.getTarget(),
                       new Weight(new double[] { 1 }),
                       new InitialGuess(new double[] { 0 }),
                       new SimpleBounds(new double[] { -1.0e-10 }, new double[] {  1.0e-10 }));
    PointVectorValuePair[] optima = optimizer.getOptima();
    // only the first start should have succeeded
    Assert.assertEquals(1, optima.length);

}
 
开发者ID:Quanticol,项目名称:CARMA,代码行数:38,代码来源:MultiStartMultivariateVectorOptimizerTest.java

示例6: testRosenbrock

import org.apache.commons.math3.random.GaussianRandomGenerator; //导入依赖的package包/类
@Test
public void testRosenbrock() {
    Rosenbrock rosenbrock = new Rosenbrock();
    SimplexOptimizer underlying
        = new SimplexOptimizer(new SimpleValueChecker(-1, 1e-3));
    NelderMeadSimplex simplex = new NelderMeadSimplex(new double[][] {
            { -1.2,  1.0 },
            { 0.9, 1.2 } ,
            {  3.5, -2.3 }
        });
    JDKRandomGenerator g = new JDKRandomGenerator();
    g.setSeed(16069223052l);
    RandomVectorGenerator generator
        = new UncorrelatedRandomVectorGenerator(2, new GaussianRandomGenerator(g));
    int nbStarts = 10;
    MultiStartMultivariateOptimizer optimizer
        = new MultiStartMultivariateOptimizer(underlying, nbStarts, generator);
    PointValuePair optimum
        = optimizer.optimize(new MaxEval(1100),
                             new ObjectiveFunction(rosenbrock),
                             GoalType.MINIMIZE,
                             simplex,
                             new InitialGuess(new double[] { -1.2, 1.0 }));
    Assert.assertEquals(nbStarts, optimizer.getOptima().length);

    Assert.assertEquals(rosenbrock.getCount(), optimizer.getEvaluations());
    Assert.assertTrue(optimizer.getEvaluations() > 900);
    Assert.assertTrue(optimizer.getEvaluations() < 1200);
    Assert.assertTrue(optimum.getValue() < 5e-5);
}
 
开发者ID:Quanticol,项目名称:CARMA,代码行数:31,代码来源:MultiStartMultivariateOptimizerTest.java

示例7: testNormallyDistributedRandomData

import org.apache.commons.math3.random.GaussianRandomGenerator; //导入依赖的package包/类
@Test
public void testNormallyDistributedRandomData() {
  List<Double> values = new ArrayList<>();
  GaussianRandomGenerator gaussian = new GaussianRandomGenerator(new MersenneTwister(0L));
  for(int i = 0;i < 1000000;++i) {
    double d = gaussian.nextNormalizedDouble();
    values.add(d);
  }
  validateEquality(values);
}
 
开发者ID:apache,项目名称:metron,代码行数:11,代码来源:OnlineStatisticsProviderTest.java

示例8: testNormallyDistributedRandomDataShifted

import org.apache.commons.math3.random.GaussianRandomGenerator; //导入依赖的package包/类
@Test
public void testNormallyDistributedRandomDataShifted() {
  List<Double> values = new ArrayList<>();
  GaussianRandomGenerator gaussian = new GaussianRandomGenerator(new MersenneTwister(0L));
  for(int i = 0;i < 1000000;++i) {
    double d = gaussian.nextNormalizedDouble() + 10;
    values.add(d);
  }
  validateEquality(values);
}
 
开发者ID:apache,项目名称:metron,代码行数:11,代码来源:OnlineStatisticsProviderTest.java

示例9: testNormallyDistributedRandomDataShiftedBackwards

import org.apache.commons.math3.random.GaussianRandomGenerator; //导入依赖的package包/类
@Test
public void testNormallyDistributedRandomDataShiftedBackwards() {
  List<Double> values = new ArrayList<>();
  GaussianRandomGenerator gaussian = new GaussianRandomGenerator(new MersenneTwister(0L));
  for(int i = 0;i < 1000000;++i) {
    double d = gaussian.nextNormalizedDouble() - 10;
    values.add(d);
  }
  validateEquality(values);
}
 
开发者ID:apache,项目名称:metron,代码行数:11,代码来源:OnlineStatisticsProviderTest.java

示例10: testNormallyDistributedRandomDataSkewed

import org.apache.commons.math3.random.GaussianRandomGenerator; //导入依赖的package包/类
@Test
public void testNormallyDistributedRandomDataSkewed() {
  List<Double> values = new ArrayList<>();
  GaussianRandomGenerator gaussian = new GaussianRandomGenerator(new MersenneTwister(0L));
  for(int i = 0;i < 1000000;++i) {
    double d = (gaussian.nextNormalizedDouble()+ 10000) /1000;
    values.add(d);
  }
  validateEquality(values);
}
 
开发者ID:apache,项目名称:metron,代码行数:11,代码来源:OnlineStatisticsProviderTest.java

示例11: testNormallyDistributedRandomDataAllNegative

import org.apache.commons.math3.random.GaussianRandomGenerator; //导入依赖的package包/类
@Test
public void testNormallyDistributedRandomDataAllNegative() {
  List<Double> values = new ArrayList<>();
  GaussianRandomGenerator gaussian = new GaussianRandomGenerator(new MersenneTwister(0L));
  for(int i = 0;i < 1000000;++i) {
    double d = -1*gaussian.nextNormalizedDouble();
    values.add(d);
  }
  validateEquality(values);
}
 
开发者ID:apache,项目名称:metron,代码行数:11,代码来源:OnlineStatisticsProviderTest.java

示例12: main

import org.apache.commons.math3.random.GaussianRandomGenerator; //导入依赖的package包/类
public static void main(String... argv) {
  DescriptiveStatistics perfStats = new DescriptiveStatistics();
  OnlineStatisticsProvider statsProvider = new OnlineStatisticsProvider();
  List<Double> values = new ArrayList<>();
  GaussianRandomGenerator gaussian = new GaussianRandomGenerator(new MersenneTwister(0L));
  for(int i = 0;i < NUM_DATA_POINTS;++i) {
    //get the data point out of the [0,1] range
    double d = 1000*gaussian.nextNormalizedDouble();
    values.add(d);
    statsProvider.addValue(d);
  }

  for(int perfRun = 0;perfRun < NUM_RUNS;++perfRun) {
    StellarStatisticsFunctions.StatsBin bin = new StellarStatisticsFunctions.StatsBin();
    long start = System.currentTimeMillis();
    Random r = new Random(0);
    for (int i = 0; i < TRIALS_PER_RUN; ++i) {
      //grab a random value and fuzz it a bit so we make sure there's no cheating via caching in t-digest.
      bin.apply(ImmutableList.of(statsProvider, values.get(r.nextInt(values.size())) - 3.5, PERCENTILES));
    }
    perfStats.addValue(System.currentTimeMillis() - start);
  }
  System.out.println( "Min/25th/50th/75th/Max Milliseconds: "
                    + perfStats.getMin()
                    + " / " + perfStats.getPercentile(25)
                    + " / " + perfStats.getPercentile(50)
                    + " / " + perfStats.getPercentile(75)
                    + " / " + perfStats.getMax()
                    );
}
 
开发者ID:apache,项目名称:metron,代码行数:31,代码来源:StatisticalBinningPerformanceDriver.java

示例13: beforeClass

import org.apache.commons.math3.random.GaussianRandomGenerator; //导入依赖的package包/类
@BeforeClass
public static void beforeClass() {
  Random rng = new Random(0);
  GaussianRandomGenerator gen = new GaussianRandomGenerator(new MersenneTwister(0));
  for(int i = 0;i < SAMPLE_SIZE;++i) {
    double us= 10*rng.nextDouble();
    uniformSample.add(us);
    uniformStats.addValue(us);
    double gs= 10*gen.nextNormalizedDouble();
    gaussianSample.add(gs);
    gaussianStats.addValue(gs);
  }
}
 
开发者ID:apache,项目名称:metron,代码行数:14,代码来源:UniformSamplerTest.java

示例14: testMergeProviders

import org.apache.commons.math3.random.GaussianRandomGenerator; //导入依赖的package包/类
@Test
public void testMergeProviders() throws Exception {
  List<StatisticsProvider> providers = new ArrayList<>();
  /*
  Create 10 providers, each with a sample drawn from a gaussian distribution.
  Update the reference stats from commons math to ensure we are
   */
  GaussianRandomGenerator gaussian = new GaussianRandomGenerator(new MersenneTwister(1L));
  SummaryStatistics sStatistics= new SummaryStatistics();
  DescriptiveStatistics dStatistics = new DescriptiveStatistics();
  for(int i = 0;i < 10;++i) {
    List<Double> sample = new ArrayList<>();
    for(int j = 0;j < 100;++j) {
      double s = gaussian.nextNormalizedDouble();
      sample.add(s);
      sStatistics.addValue(s);
      dStatistics.addValue(s);
    }
    StatisticsProvider provider = (StatisticsProvider)run("STATS_ADD(STATS_INIT(), " + Joiner.on(",").join(sample) + ")"
                                                         , new HashMap<>()
                                                         );
    providers.add(provider);
  }

  /*
  Merge the providers and validate
   */
  Map<String, Object> providerVariables = new HashMap<>();
  for(int i = 0;i < providers.size();++i) {
    providerVariables.put("provider_" + i, providers.get(i));
  }
  StatisticsProvider mergedProvider =
          (StatisticsProvider)run("STATS_MERGE([" + Joiner.on(",").join(providerVariables.keySet()) + "])"
                                 , providerVariables
                                 );
  OnlineStatisticsProviderTest.validateStatisticsProvider(mergedProvider, sStatistics , dStatistics);

}
 
开发者ID:apache,项目名称:metron,代码行数:39,代码来源:StellarStatisticsFunctionsTest.java

示例15: testCircleFitting

import org.apache.commons.math3.random.GaussianRandomGenerator; //导入依赖的package包/类
@Test
public void testCircleFitting() {
    CircleScalar circle = new CircleScalar();
    circle.addPoint( 30.0,  68.0);
    circle.addPoint( 50.0,  -6.0);
    circle.addPoint(110.0, -20.0);
    circle.addPoint( 35.0,  15.0);
    circle.addPoint( 45.0,  97.0);
    // TODO: the wrapper around NonLinearConjugateGradientOptimizer is a temporary hack for
    // version 3.1 of the library. It should be removed when NonLinearConjugateGradientOptimizer
    // will officially be declared as implementing MultivariateDifferentiableOptimizer
    GradientMultivariateOptimizer underlying
        = new NonLinearConjugateGradientOptimizer(NonLinearConjugateGradientOptimizer.Formula.POLAK_RIBIERE,
                                                  new SimpleValueChecker(1e-10, 1e-10));
    JDKRandomGenerator g = new JDKRandomGenerator();
    g.setSeed(753289573253l);
    RandomVectorGenerator generator
        = new UncorrelatedRandomVectorGenerator(new double[] { 50, 50 },
                                                new double[] { 10, 10 },
                                                new GaussianRandomGenerator(g));
    MultiStartMultivariateOptimizer optimizer
        = new MultiStartMultivariateOptimizer(underlying, 10, generator);
    PointValuePair optimum
        = optimizer.optimize(new MaxEval(200),
                             circle.getObjectiveFunction(),
                             circle.getObjectiveFunctionGradient(),
                             GoalType.MINIMIZE,
                             new InitialGuess(new double[] { 98.680, 47.345 }));
    Assert.assertEquals(200, optimizer.getMaxEvaluations());
    PointValuePair[] optima = optimizer.getOptima();
    for (PointValuePair o : optima) {
        Vector2D center = new Vector2D(o.getPointRef()[0], o.getPointRef()[1]);
        Assert.assertEquals(69.960161753, circle.getRadius(center), 1e-8);
        Assert.assertEquals(96.075902096, center.getX(), 1e-8);
        Assert.assertEquals(48.135167894, center.getY(), 1e-8);
    }
    Assert.assertTrue(optimizer.getEvaluations() > 70);
    Assert.assertTrue(optimizer.getEvaluations() < 90);
    Assert.assertEquals(3.1267527, optimum.getValue(), 1e-8);
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:41,代码来源:MultiStartMultivariateOptimizerTest.java


注:本文中的org.apache.commons.math3.random.GaussianRandomGenerator类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。