2
* Licensed to the Apache Software Foundation (ASF) under one or more
3
* contributor license agreements. See the NOTICE file distributed with
4
* this work for additional information regarding copyright ownership.
5
* The ASF licenses this file to You under the Apache License, Version 2.0
6
* (the "License"); you may not use this file except in compliance with
7
* the License. You may obtain a copy of the License at
9
* http://www.apache.org/licenses/LICENSE-2.0
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
18
package org.apache.commons.math.ode;
21
* This class is used in the junit tests for the ODE integrators.
23
* <p>This specific problem is the following differential equation :
27
* the solution of this equation is a simple exponential function :
29
* y (t) = y (t0) exp (t0-t)
35
extends TestProblemAbstract {
37
/** theoretical state */
43
public TestProblem1() {
45
double[] y0 = { 1.0, 0.1 };
46
setInitialConditions(0.0, y0);
47
setFinalConditions(4.0);
48
double[] errorScale = { 1.0, 1.0 };
49
setErrorScale(errorScale);
50
y = new double[y0.length];
55
* @param problem problem to copy
57
public TestProblem1(TestProblem1 problem) {
59
y = (double[]) problem.y.clone();
64
* @return a copy of the instance
66
public Object clone() {
67
return new TestProblem1(this);
70
public void doComputeDerivatives(double t, double[] y, double[] yDot) {
72
// compute the derivatives
73
for (int i = 0; i < n; ++i)
78
public double[] computeTheoreticalState(double t) {
79
double c = Math.exp (t0 - t);
80
for (int i = 0; i < n; ++i) {