|
Commons Math example source code file (TestProblemAbstract.java)
The Commons Math TestProblemAbstract.java source code/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.commons.math.ode; import org.apache.commons.math.ode.FirstOrderDifferentialEquations; import org.apache.commons.math.ode.events.EventHandler; /** * This class is used as the base class of the problems that are * integrated during the junit tests for the ODE integrators. */ public abstract class TestProblemAbstract implements FirstOrderDifferentialEquations { /** Serializable version identifier. */ private static final long serialVersionUID = -8521928974502839379L; /** Dimension of the problem. */ protected int n; /** Number of functions calls. */ protected int calls; /** Initial time */ protected double t0; /** Initial state */ protected double[] y0; /** Final time */ protected double t1; /** Error scale */ protected double[] errorScale; /** * Simple constructor. */ protected TestProblemAbstract() { n = 0; calls = 0; t0 = 0; y0 = null; t1 = 0; errorScale = null; } /** * Copy constructor. * @param problem problem to copy */ protected TestProblemAbstract(TestProblemAbstract problem) { n = problem.n; calls = problem.calls; t0 = problem.t0; if (problem.y0 == null) { y0 = null; } else { y0 = problem.y0.clone(); } if (problem.errorScale == null) { errorScale = null; } else { errorScale = problem.errorScale.clone(); } t1 = problem.t1; } /** * Copy operation. * @return a copy of the instance */ public abstract TestProblemAbstract copy(); /** * Set the initial conditions * @param t0 initial time * @param y0 initial state vector */ protected void setInitialConditions(double t0, double[] y0) { calls = 0; n = y0.length; this.t0 = t0; this.y0 = y0.clone(); } /** * Set the final conditions. * @param t1 final time */ protected void setFinalConditions(double t1) { this.t1 = t1; } /** * Set the error scale * @param errorScale error scale */ protected void setErrorScale(double[] errorScale) { this.errorScale = errorScale.clone(); } public int getDimension() { return n; } /** * Get the initial time. * @return initial time */ public double getInitialTime() { return t0; } /** * Get the initial state vector. * @return initial state vector */ public double[] getInitialState() { return y0; } /** * Get the final time. * @return final time */ public double getFinalTime() { return t1; } /** * Get the error scale. * @return error scale */ public double[] getErrorScale() { return errorScale; } /** * Get the events handlers. * @return events handlers */ public EventHandler[] getEventsHandlers() { return new EventHandler[0]; } /** * Get the number of calls. * @return nuber of calls */ public int getCalls() { return calls; } public void computeDerivatives(double t, double[] y, double[] yDot) { ++calls; doComputeDerivatives(t, y, yDot); } abstract public void doComputeDerivatives(double t, double[] y, double[] yDot); /** * Compute the theoretical state at the specified time. * @param t time at which the state is required * @return state vector at time t */ abstract public double[] computeTheoreticalState(double t); } Other Commons Math examples (source code examples)Here is a short list of links related to this Commons Math TestProblemAbstract.java source code file: |
... this post is sponsored by my books ... | |
![]() #1 New Release! |
![]() FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.