polyinterp <- function ( x, y ) #*****************************************************************************80 # ## polyinterp carries out Vandermonde polynomial interpolation. # # Licensing: # # Copyright 2016 James P. Howard, II # # The computer code and data files on this web page are distributed under # https://opensource.org/licenses/BSD-2-Clause, the BSD-2-Clause license. # # Modified: # # 21 February 2020 # # Author: # # Original R code by James Howard; # Modifications by John Burkardt. # # Reference: # # James Howard, # Computational Methods for Numerical Analysis with R, # CRC Press, 2017, # ISBN13: 978-1-4987-2363-3. # { if ( length ( x ) != length ( y ) ) { stop ( "Length of x and y vectors must be the same!" ) } n <- length ( x ) - 1 vandermonde <- rep ( 1, length ( x ) ) for ( i in 1 : n ) { xi <- x^i vandermonde <- cbind ( vandermonde, xi ) } beta <- solve ( vandermonde, y ) names(beta) <- NULL return ( beta ) }