All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.commons.math4.analysis.interpolation.NevilleInterpolator Maven / Gradle / Ivy

Go to download

Statistical sampling library for use in virtdata libraries, based on apache commons math 4

There is a newer version: 5.17.0
Show newest version
/*
 * 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.math4.analysis.interpolation;

import java.io.Serializable;

import org.apache.commons.math4.analysis.polynomials.PolynomialFunctionLagrangeForm;
import org.apache.commons.math4.exception.DimensionMismatchException;
import org.apache.commons.math4.exception.NonMonotonicSequenceException;
import org.apache.commons.math4.exception.NumberIsTooSmallException;

/**
 * Implements the 
 * Neville's Algorithm for interpolation of real univariate functions. For
 * reference, see Introduction to Numerical Analysis, ISBN 038795452X,
 * chapter 2.
 * 

* The actual code of Neville's algorithm is in PolynomialFunctionLagrangeForm, * this class provides an easy-to-use interface to it.

* * @since 1.2 */ public class NevilleInterpolator implements UnivariateInterpolator, Serializable { /** serializable version identifier */ static final long serialVersionUID = 3003707660147873733L; /** * Computes an interpolating function for the data set. * * @param x Interpolating points. * @param y Interpolating values. * @return a function which interpolates the data set * @throws DimensionMismatchException if the array lengths are different. * @throws NumberIsTooSmallException if the number of points is less than 2. * @throws NonMonotonicSequenceException if two abscissae have the same * value. */ @Override public PolynomialFunctionLagrangeForm interpolate(double x[], double y[]) throws DimensionMismatchException, NumberIsTooSmallException, NonMonotonicSequenceException { return new PolynomialFunctionLagrangeForm(x, y); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy