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


Java FastMath.atan方法代码示例

本文整理汇总了Java中org.apache.commons.math.util.FastMath.atan方法的典型用法代码示例。如果您正苦于以下问题:Java FastMath.atan方法的具体用法?Java FastMath.atan怎么用?Java FastMath.atan使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.commons.math.util.FastMath的用法示例。


在下文中一共展示了FastMath.atan方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: value

import org.apache.commons.math.util.FastMath; //导入方法依赖的package包/类
@Override
public double[] value(double[] variables) {
  double x1 = variables[0];
  double x2 = variables[1];
  double x3 = variables[2];
  double tmp1;
  if (x1 == 0) {
    tmp1 = (x2 >= 0) ? 0.25 : -0.25;
  } else {
    tmp1 = FastMath.atan(x2 / x1) / twoPi;
    if (x1 < 0) {
      tmp1 += 0.5;
    }
  }
  double tmp2 = FastMath.sqrt(x1 * x1 + x2 * x2);
  return new double[] {
    10.0 * (x3 - 10 * tmp1),
    10.0 * (tmp2 - 1),
    x3
  };
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:22,代码来源:MinpackTest.java

示例2: value

import org.apache.commons.math.util.FastMath; //导入方法依赖的package包/类
/** {@inheritDoc} */
public double value(double x) {
    return FastMath.atan(x);
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:5,代码来源:Atan.java

示例3: testMinimizeMaximize

import org.apache.commons.math.util.FastMath; //导入方法依赖的package包/类
@Test
public void testMinimizeMaximize() {
    // the following function has 4 local extrema:
    final double xM        = -3.841947088256863675365;
    final double yM        = -1.391745200270734924416;
    final double xP        =  0.2286682237349059125691;
    final double yP        = -yM;
    final double valueXmYm =  0.2373295333134216789769; // local  maximum
    final double valueXmYp = -valueXmYm;                // local  minimum
    final double valueXpYm = -0.7290400707055187115322; // global minimum
    final double valueXpYp = -valueXpYm;                // global maximum
    MultivariateRealFunction fourExtrema = new MultivariateRealFunction() {
            private static final long serialVersionUID = -7039124064449091152L;
            public double value(double[] variables) {
                final double x = variables[0];
                final double y = variables[1];
                return ((x == 0) || (y == 0)) ? 0 :
                    (FastMath.atan(x) * FastMath.atan(x + 2) * FastMath.atan(y) * FastMath.atan(y) / (x * y));
            }
        };

    SimplexOptimizer optimizer = new SimplexOptimizer(1e-11, 1e-30);
    optimizer.setSimplex(new MultiDirectionalSimplex(new double[] { 0.2, 0.2 }));
    RealPointValuePair optimum;

    // minimization
    optimum = optimizer.optimize(200, fourExtrema, GoalType.MINIMIZE, new double[] { -3, 0 });
    Assert.assertEquals(xM,        optimum.getPoint()[0], 4e-6);
    Assert.assertEquals(yP,        optimum.getPoint()[1], 3e-6);
    Assert.assertEquals(valueXmYp, optimum.getValue(),    8e-13);
    Assert.assertTrue(optimizer.getEvaluations() > 120);
    Assert.assertTrue(optimizer.getEvaluations() < 150);

    optimum = optimizer.optimize(200, fourExtrema, GoalType.MINIMIZE, new double[] { 1, 0 });
    Assert.assertEquals(xP,        optimum.getPoint()[0], 2e-8);
    Assert.assertEquals(yM,        optimum.getPoint()[1], 3e-6);
    Assert.assertEquals(valueXpYm, optimum.getValue(),    2e-12);
    Assert.assertTrue(optimizer.getEvaluations() > 120);
    Assert.assertTrue(optimizer.getEvaluations() < 150);

    // maximization
    optimum = optimizer.optimize(200, fourExtrema, GoalType.MAXIMIZE, new double[] { -3.0, 0.0 });
    Assert.assertEquals(xM,        optimum.getPoint()[0], 7e-7);
    Assert.assertEquals(yM,        optimum.getPoint()[1], 3e-7);
    Assert.assertEquals(valueXmYm, optimum.getValue(),    2e-14);
    Assert.assertTrue(optimizer.getEvaluations() > 120);
    Assert.assertTrue(optimizer.getEvaluations() < 150);

    optimizer.setConvergenceChecker(new SimpleScalarValueChecker(1e-15, 1e-30));
    optimum = optimizer.optimize(200, fourExtrema, GoalType.MAXIMIZE, new double[] { 1, 0 });
    Assert.assertEquals(xP,        optimum.getPoint()[0], 2e-8);
    Assert.assertEquals(yP,        optimum.getPoint()[1], 3e-6);
    Assert.assertEquals(valueXpYp, optimum.getValue(),    2e-12);
    Assert.assertTrue(optimizer.getEvaluations() > 180);
    Assert.assertTrue(optimizer.getEvaluations() < 220);
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:57,代码来源:SimplexOptimizerMultiDirectionalTest.java

示例4: testMinimizeMaximize

import org.apache.commons.math.util.FastMath; //导入方法依赖的package包/类
@Test
public void testMinimizeMaximize() {
    // the following function has 4 local extrema:
    final double xM        = -3.841947088256863675365;
    final double yM        = -1.391745200270734924416;
    final double xP        =  0.2286682237349059125691;
    final double yP        = -yM;
    final double valueXmYm =  0.2373295333134216789769; // local  maximum
    final double valueXmYp = -valueXmYm;                // local  minimum
    final double valueXpYm = -0.7290400707055187115322; // global minimum
    final double valueXpYp = -valueXpYm;                // global maximum
    MultivariateRealFunction fourExtrema = new MultivariateRealFunction() {
            public double value(double[] variables) {
                final double x = variables[0];
                final double y = variables[1];
                return ((x == 0) || (y == 0)) ? 0 :
                    (FastMath.atan(x) * FastMath.atan(x + 2) * FastMath.atan(y) * FastMath.atan(y) / (x * y));
            }
        };

    SimplexOptimizer optimizer = new SimplexOptimizer(1e-11, 1e-30);
    optimizer.setSimplex(new MultiDirectionalSimplex(new double[] { 0.2, 0.2 }));
    RealPointValuePair optimum;

    // minimization
    optimum = optimizer.optimize(200, fourExtrema, GoalType.MINIMIZE, new double[] { -3, 0 });
    Assert.assertEquals(xM,        optimum.getPoint()[0], 4e-6);
    Assert.assertEquals(yP,        optimum.getPoint()[1], 3e-6);
    Assert.assertEquals(valueXmYp, optimum.getValue(),    8e-13);
    Assert.assertTrue(optimizer.getEvaluations() > 120);
    Assert.assertTrue(optimizer.getEvaluations() < 150);

    optimum = optimizer.optimize(200, fourExtrema, GoalType.MINIMIZE, new double[] { 1, 0 });
    Assert.assertEquals(xP,        optimum.getPoint()[0], 2e-8);
    Assert.assertEquals(yM,        optimum.getPoint()[1], 3e-6);
    Assert.assertEquals(valueXpYm, optimum.getValue(),    2e-12);
    Assert.assertTrue(optimizer.getEvaluations() > 120);
    Assert.assertTrue(optimizer.getEvaluations() < 150);

    // maximization
    optimum = optimizer.optimize(200, fourExtrema, GoalType.MAXIMIZE, new double[] { -3.0, 0.0 });
    Assert.assertEquals(xM,        optimum.getPoint()[0], 7e-7);
    Assert.assertEquals(yM,        optimum.getPoint()[1], 3e-7);
    Assert.assertEquals(valueXmYm, optimum.getValue(),    2e-14);
    Assert.assertTrue(optimizer.getEvaluations() > 120);
    Assert.assertTrue(optimizer.getEvaluations() < 150);

    optimizer.setConvergenceChecker(new SimpleScalarValueChecker(1e-15, 1e-30));
    optimum = optimizer.optimize(200, fourExtrema, GoalType.MAXIMIZE, new double[] { 1, 0 });
    Assert.assertEquals(xP,        optimum.getPoint()[0], 2e-8);
    Assert.assertEquals(yP,        optimum.getPoint()[1], 3e-6);
    Assert.assertEquals(valueXpYp, optimum.getValue(),    2e-12);
    Assert.assertTrue(optimizer.getEvaluations() > 180);
    Assert.assertTrue(optimizer.getEvaluations() < 220);
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:56,代码来源:SimplexOptimizerMultiDirectionalTest.java

示例5: cumulativeProbability

import org.apache.commons.math.util.FastMath; //导入方法依赖的package包/类
/**
 * For this distribution, {@code X}, this method returns {@code P(X < x)}.
 *
 * @param x Value at which the CDF is evaluated.
 * @return CDF evaluated at {@code x}.
 */
public double cumulativeProbability(double x) {
    return 0.5 + (FastMath.atan((x - median) / scale) / FastMath.PI);
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:10,代码来源:CauchyDistributionImpl.java


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