KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > math > analysis > SinFunction


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

16 package org.apache.commons.math.analysis;
17
18 import org.apache.commons.math.FunctionEvaluationException;
19
20 /**
21  * Auxillary class for testing solvers.
22  *
23  * The function is extraordinarily well behaved around zero roots: it
24  * has an inflection point there (second order derivative is zero),
25  * which means linear approximation (Regula Falsi) will converge
26  * quadratically.
27  *
28  * @version $Revision$ $Date: 2005-02-26 05:11:52 -0800 (Sat, 26 Feb 2005) $
29  */

30 public class SinFunction implements DifferentiableUnivariateRealFunction {
31
32     /* Evaluate sinus fuction.
33      * @see org.apache.commons.math.UnivariateRealFunction#value(double)
34      */

35     public double value(double x) throws FunctionEvaluationException {
36         return Math.sin(x);
37     }
38
39     /* First derivative of sinus function
40      */

41     public UnivariateRealFunction derivative() {
42         return new UnivariateRealFunction() {
43             public double value(double x) throws FunctionEvaluationException {
44                 return Math.cos(x);
45             }
46         };
47     }
48
49 }
50
Popular Tags