本文整理汇总了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;未经允许,请勿转载。 |
请发表评论