KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > math > analysis > derivative > CenterDifferenceDerivative


1 /*
2  *
3  * Copyright (c) 2003-2004 The Apache Software Foundation. All rights reserved.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
6  * use this file except in compliance with the License. You may obtain a copy
7  * of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14  * License for the specific language governing permissions and limitations
15  * under the License.
16  *
17  */

18
19 package org.apache.commons.math.analysis.derivative;
20
21 import org.apache.commons.math.MathException;
22 import org.apache.commons.math.analysis.UnivariateRealFunction;
23
24 /**
25  * @todo add javadoc comment
26  * @version $Revision$ $Date: 2005-02-26 05:11:52 -0800 (Sat, 26 Feb 2005) $
27  */

28 public class CenterDifferenceDerivative extends AbstractDifferenceDerivative {
29     
30     /**
31      * @todo add javadoc comment
32      */

33     public CenterDifferenceDerivative(UnivariateRealFunction function, double h) {
34         super(function, h);
35     }
36     
37     /**
38      * @todo add javadoc comment
39      */

40     public double value(double x) throws MathException {
41         UnivariateRealFunction f = getFunction();
42         double h2 = getDelta();
43         double h = h2 * .5;
44         return (f.value(x + h) - f.value(x - h)) / h2;
45     }
46     
47     /**
48      *
49      */

50     public static UnivariateRealFunction decorate(UnivariateRealFunction function, double h) {
51         return new CenterDifferenceDerivative(function, h);
52     }
53 }
54
Popular Tags