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


Java DifferentiableUnivariateRealFunction类代码示例

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


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

示例1: wrapDifferentiable

import org.apache.commons.math.analysis.DifferentiableUnivariateRealFunction; //导入依赖的package包/类
/**
 * @param f An OG 1-D function mapping doubles to doubles, not null
 * @return A Commons differentiable univariate real function
 */
public static DifferentiableUnivariateRealFunction wrapDifferentiable(final DoubleFunction1D f) {
  Validate.notNull(f);
  return new DifferentiableUnivariateRealFunction() {

    @Override
    public double value(final double x) throws FunctionEvaluationException {
      return f.evaluate(x);
    }

    @Override
    public UnivariateRealFunction derivative() {
      return wrapUnivariate(f.derivative());
    }
  };
}
 
开发者ID:DevStreet,项目名称:FinanceAnalytics,代码行数:20,代码来源:CommonsMathWrapper.java

示例2: testDeprecated

import org.apache.commons.math.analysis.DifferentiableUnivariateRealFunction; //导入依赖的package包/类
@Deprecated
public void testDeprecated() throws MathException {
    DifferentiableUnivariateRealFunction f = new SinFunction();
    double result;
    
    UnivariateRealSolver solver = new NewtonSolver(f);
    result = solver.solve(3, 4);
    assertEquals(result, Math.PI, solver.getAbsoluteAccuracy());

    result = solver.solve(1, 4);
    assertEquals(result, Math.PI, solver.getAbsoluteAccuracy());
    
    //TODO:  create abstract solver test class, move these there
    assertEquals(result, solver.getResult(), 0);
    assertTrue(solver.getIterationCount() > 0);
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:17,代码来源:NewtonSolverTest.java

示例3: testSinZero

import org.apache.commons.math.analysis.DifferentiableUnivariateRealFunction; //导入依赖的package包/类
/**
 *
 */
public void testSinZero() throws MathException {
    DifferentiableUnivariateRealFunction f = new SinFunction();
    double result;
    
    UnivariateRealSolver solver = new NewtonSolver();
    result = solver.solve(f, 3, 4);
    assertEquals(result, Math.PI, solver.getAbsoluteAccuracy());

    result = solver.solve(f, 1, 4);
    assertEquals(result, Math.PI, solver.getAbsoluteAccuracy());
    
    //TODO:  create abstract solver test class, move these there
    assertEquals(result, solver.getResult(), 0);
    assertTrue(solver.getIterationCount() > 0);
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:19,代码来源:NewtonSolverTest.java

示例4: solve

import org.apache.commons.math.analysis.DifferentiableUnivariateRealFunction; //导入依赖的package包/类
/**
    * Find a zero near the value <code>startValue</code>.
    *
    * @param f          the function to solve
    * @param min        the lower bound for the interval (ignored).
    * @param max        the upper bound for the interval (ignored).
    * @param startValue the start value to use.
    * @return the value where the function is zero
    * @throws MaxIterationsExceededException if the maximum iteration count is exceeded
    * @throws FunctionEvaluationException    if an error occurs evaluating the
    *                                        function or derivative
    * @throws IllegalArgumentException       if startValue is not between min and max or
    *                                        if function is not a {@link DifferentiableUnivariateRealFunction} instance
    */
   @Override
public double solve(final UnivariateRealFunction f,
                       final double min, final double max, final double startValue)
           throws MaxIterationsExceededException, FunctionEvaluationException {

       try {

           final UnivariateRealFunction derivative =
                   ((DifferentiableUnivariateRealFunction) f).derivative();
           clearResult();
           verifySequence(min, startValue, max);

           double x0 = startValue;
           double x1;

           int i = 0;
           while (i < maximalIterationCount) {

               x1 = x0 - (f.value(x0) / derivative.value(x0));
               if (Math.abs(x1 - x0) <= absoluteAccuracy) {
                   setResult(x1, i);
                   return x1;
               }

               x0 = x1;
               ++i;
           }

           throw new MaxIterationsExceededException(maximalIterationCount);
       } catch (ClassCastException cce) {
           throw MathRuntimeException.createIllegalArgumentException("function is not differentiable");
       }
   }
 
开发者ID:CompEvol,项目名称:beast2,代码行数:48,代码来源:NewtonSolver.java

示例5: solve

import org.apache.commons.math.analysis.DifferentiableUnivariateRealFunction; //导入依赖的package包/类
/**
 * Find a zero near the value <code>startValue</code>.
 *
 * @param f the function to solve
 * @param min the lower bound for the interval (ignored).
 * @param max the upper bound for the interval (ignored).
 * @param startValue the start value to use.
 * @return the value where the function is zero
 * @throws MaxIterationsExceededException if the maximum iteration count is exceeded
 * @throws FunctionEvaluationException if an error occurs evaluating the
 * function or derivative
 * @throws IllegalArgumentException if startValue is not between min and max or
 * if function is not a {@link DifferentiableUnivariateRealFunction} instance
 */
public double solve(final UnivariateRealFunction f,
                    final double min, final double max, final double startValue)
    throws MaxIterationsExceededException, FunctionEvaluationException {

    try {

        final UnivariateRealFunction derivative =
            ((DifferentiableUnivariateRealFunction) f).derivative();
        clearResult();
        verifySequence(min, startValue, max);

        double x0 = startValue;
        double x1;

        int i = 0;
        while (i < maximalIterationCount) {

            x1 = x0 - (f.value(x0) / derivative.value(x0));
            if (Math.abs(x1 - x0) <= absoluteAccuracy) {
                setResult(x1, i);
                return x1;
            }

            x0 = x1;
            ++i;
        }

        throw new MaxIterationsExceededException(maximalIterationCount);
    } catch (ClassCastException cce) {
        throw MathRuntimeException.createIllegalArgumentException("function is not differentiable");
    }
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:47,代码来源:NewtonSolver.java

示例6: testDeprecated

import org.apache.commons.math.analysis.DifferentiableUnivariateRealFunction; //导入依赖的package包/类
@Deprecated
public void testDeprecated() throws MathException {
    DifferentiableUnivariateRealFunction f = new SinFunction();
    double result;

    UnivariateRealSolver solver = new NewtonSolver(f);
    result = solver.solve(3, 4);
    assertEquals(result, Math.PI, solver.getAbsoluteAccuracy());

    result = solver.solve(1, 4);
    assertEquals(result, Math.PI, solver.getAbsoluteAccuracy());

    assertEquals(result, solver.getResult(), 0);
    assertTrue(solver.getIterationCount() > 0);
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:16,代码来源:NewtonSolverTest.java

示例7: testSinZero

import org.apache.commons.math.analysis.DifferentiableUnivariateRealFunction; //导入依赖的package包/类
/**
 *
 */
public void testSinZero() throws MathException {
    DifferentiableUnivariateRealFunction f = new SinFunction();
    double result;

    UnivariateRealSolver solver = new NewtonSolver();
    result = solver.solve(f, 3, 4);
    assertEquals(result, Math.PI, solver.getAbsoluteAccuracy());

    result = solver.solve(f, 1, 4);
    assertEquals(result, Math.PI, solver.getAbsoluteAccuracy());

    assertEquals(result, solver.getResult(), 0);
    assertTrue(solver.getIterationCount() > 0);
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:18,代码来源:NewtonSolverTest.java

示例8: testQuinticZero

import org.apache.commons.math.analysis.DifferentiableUnivariateRealFunction; //导入依赖的package包/类
/**
 *
 */
public void testQuinticZero() throws MathException {
    DifferentiableUnivariateRealFunction f = new QuinticFunction();
    double result;

    UnivariateRealSolver solver = new NewtonSolver();
    result = solver.solve(f, -0.2, 0.2);
    assertEquals(result, 0, solver.getAbsoluteAccuracy());

    result = solver.solve(f, -0.1, 0.3);
    assertEquals(result, 0, solver.getAbsoluteAccuracy());

    result = solver.solve(f, -0.3, 0.45);
    assertEquals(result, 0, solver.getAbsoluteAccuracy());

    result = solver.solve(f, 0.3, 0.7);
    assertEquals(result, 0.5, solver.getAbsoluteAccuracy());

    result = solver.solve(f, 0.2, 0.6);
    assertEquals(result, 0.5, solver.getAbsoluteAccuracy());

    result = solver.solve(f, 0.05, 0.95);
    assertEquals(result, 0.5, solver.getAbsoluteAccuracy());

    result = solver.solve(f, 0.85, 1.25);
    assertEquals(result, 1.0, solver.getAbsoluteAccuracy());

    result = solver.solve(f, 0.8, 1.2);
    assertEquals(result, 1.0, solver.getAbsoluteAccuracy());

    result = solver.solve(f, 0.85, 1.75);
    assertEquals(result, 1.0, solver.getAbsoluteAccuracy());

    result = solver.solve(f, 0.55, 1.45);
    assertEquals(result, 1.0, solver.getAbsoluteAccuracy());

    result = solver.solve(f, 0.85, 5);
    assertEquals(result, 1.0, solver.getAbsoluteAccuracy());
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:42,代码来源:NewtonSolverTest.java

示例9: setup

import org.apache.commons.math.analysis.DifferentiableUnivariateRealFunction; //导入依赖的package包/类
/**
 * {@inheritDoc}
 */
@Override
protected void setup(int maxEval, DifferentiableUnivariateRealFunction f,
                     double min, double max, double startValue) {
    super.setup(maxEval, f, min, max, startValue);
    functionDerivative = f.derivative();
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:10,代码来源:AbstractDifferentiableUnivariateRealSolver.java

示例10: testSinZero

import org.apache.commons.math.analysis.DifferentiableUnivariateRealFunction; //导入依赖的package包/类
/**
 *
 */
@Test
public void testSinZero() {
    DifferentiableUnivariateRealFunction f = new SinFunction();
    double result;

    NewtonSolver solver = new NewtonSolver();
    result = solver.solve(100, f, 3, 4);
    Assert.assertEquals(result, FastMath.PI, solver.getAbsoluteAccuracy());

    result = solver.solve(100, f, 1, 4);
    Assert.assertEquals(result, FastMath.PI, solver.getAbsoluteAccuracy());

    Assert.assertTrue(solver.getEvaluations() > 0);
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:18,代码来源:NewtonSolverTest.java

示例11: testQuinticZero

import org.apache.commons.math.analysis.DifferentiableUnivariateRealFunction; //导入依赖的package包/类
/**
 *
 */
@Test
public void testQuinticZero() {
    DifferentiableUnivariateRealFunction f = new QuinticFunction();
    double result;

    NewtonSolver solver = new NewtonSolver();
    result = solver.solve(100, f, -0.2, 0.2);
    Assert.assertEquals(result, 0, solver.getAbsoluteAccuracy());

    result = solver.solve(100, f, -0.1, 0.3);
    Assert.assertEquals(result, 0, solver.getAbsoluteAccuracy());

    result = solver.solve(100, f, -0.3, 0.45);
    Assert.assertEquals(result, 0, solver.getAbsoluteAccuracy());

    result = solver.solve(100, f, 0.3, 0.7);
    Assert.assertEquals(result, 0.5, solver.getAbsoluteAccuracy());

    result = solver.solve(100, f, 0.2, 0.6);
    Assert.assertEquals(result, 0.5, solver.getAbsoluteAccuracy());

    result = solver.solve(100, f, 0.05, 0.95);
    Assert.assertEquals(result, 0.5, solver.getAbsoluteAccuracy());

    result = solver.solve(100, f, 0.85, 1.25);
    Assert.assertEquals(result, 1.0, solver.getAbsoluteAccuracy());

    result = solver.solve(100, f, 0.8, 1.2);
    Assert.assertEquals(result, 1.0, solver.getAbsoluteAccuracy());

    result = solver.solve(100, f, 0.85, 1.75);
    Assert.assertEquals(result, 1.0, solver.getAbsoluteAccuracy());

    result = solver.solve(100, f, 0.55, 1.45);
    Assert.assertEquals(result, 1.0, solver.getAbsoluteAccuracy());

    result = solver.solve(100, f, 0.85, 5);
    Assert.assertEquals(result, 1.0, solver.getAbsoluteAccuracy());
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:43,代码来源:NewtonSolverTest.java

示例12: solve

import org.apache.commons.math.analysis.DifferentiableUnivariateRealFunction; //导入依赖的package包/类
/**
 * Find a zero near the value <code>startValue</code>.
 * 
 * @param f the function to solve
 * @param min the lower bound for the interval (ignored).
 * @param max the upper bound for the interval (ignored).
 * @param startValue the start value to use.
 * @return the value where the function is zero
 * @throws MaxIterationsExceededException if the maximum iteration count is exceeded 
 * @throws FunctionEvaluationException if an error occurs evaluating the
 * function or derivative
 * @throws IllegalArgumentException if startValue is not between min and max or
 * if function is not a {@link DifferentiableUnivariateRealFunction} instance
 */
public double solve(final UnivariateRealFunction f,
                    final double min, final double max, final double startValue)
    throws MaxIterationsExceededException, FunctionEvaluationException {

    try {

        final UnivariateRealFunction derivative =
            ((DifferentiableUnivariateRealFunction) f).derivative();
        clearResult();
        verifySequence(min, startValue, max);

        double x0 = startValue;
        double x1;

        int i = 0;
        while (i < maximalIterationCount) {

            x1 = x0 - (f.value(x0) / derivative.value(x0));
            if (Math.abs(x1 - x0) <= absoluteAccuracy) {
                setResult(x1, i);
                return x1;
            }

            x0 = x1;
            ++i;
        }

        throw new MaxIterationsExceededException(maximalIterationCount);
    } catch (ClassCastException cce) {
        throw MathRuntimeException.createIllegalArgumentException("function is not differentiable");
    }
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:47,代码来源:NewtonSolver.java


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