本文整理汇总了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
};
}
示例2: value
import org.apache.commons.math.util.FastMath; //导入方法依赖的package包/类
/** {@inheritDoc} */
public double value(double x) {
return FastMath.atan(x);
}
示例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);
}
示例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);
}
示例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);
}