I have a set of measured values that I'd liked to interpolate in R using cubic splines. Since these are just piecewise polynomials I'd subsequently like to integrate the interpolation function algebraically. Therefore I need the coefficients. Is there a way to obtain these?
Calling splines::interpSpline(foo, bar)$coef doesn't seem to return the actual polynomial coefficients.
Get polynomial coefficients from interpolation splines in R
1.4k Views Asked by Thomas Neitmann At
1
There are 1 best solutions below
Related Questions in R
- in R, recovering strings that have been converted to factors with factor()
- How to reinstall pandoc after removing .cabal?
- How do I code a Mixed effects model for abalone growth in Aquaculture nutrition with nested individuals
- How to save t.test result in R to a txt file?
- how to call function from library in formula with R type provider
- geom_bar define border color with different fill colors
- Different outcome using model.matrix for a function in R
- Creating a combination data.table in R
- Force specific interactions in Package 'earth' in R
- Output from recursive function R
- Extract series of observations from dataframe for complete sets of data
- Retrieve path of supplementary data file of developed package
- r package development - own function not visible for opencpu
- Label a dataset according to bins of a histogram
- multiply each columns of a matrix by a vector
Related Questions in INTERPOLATION
- Animate custom object variable
- C++: Lagrange Polynomial interpolation to interpolate polynomial defined over a field
- Interpolate HSL Colours
- Integrating Velocity Over a Complex 2-D Surface
- interpolating or fitting spline issues
- x86 assembly fading bmp with linear interpolation
- Limiting interpolation function to NA values
- Loop through categories in a column and perform interpolation on only those records
- AngularJS: Directive with arbitrary start and end symbols
- Using interp1 in an ODE function [MATLAB]
- Given scattered data in three dimensions, need to interpolate data and find functions at a specific point
- Interpolation using dynamic programming
- Pandas interpolate: slinear vs index
- python interpolation and data comparison
- Interpolation for missing values
Related Questions in INTEGRAL
- Integrate custom function with sympy
- Double integral with variable boundaries in python Scipy + sympy (?)
- Volume of a part of a sphere cutted using 3 planes using R-Language (integral)
- Finding of roots for an equation with an integral with no closed form in R
- how can I do vector integral in R?
- Gradient Descent on a logarithmic decline curve in Python
- Integral by the Trapezoidal rule algorithm I wrote is giving a 10 times larger answer
- Can't solve an indefinite integral in MATLAB
- How to perform indefinite integration of this function in MATLAB?
- Integrate a Function in r
- Hessian matrix in optim() in R
- C: Riemann integral problems with infinite loop
- GSL integrals, bad counts
- Numerical Triple integral where is the mistake?
- MATLAB: symbolic integral of symfun
Related Questions in SPLINES
- Splines in integer arithmetic?
- MGCV get design matrix
- How can I force "no splines" in GraphViz html-like labels?
- Plotting smooth curves using scipy.interplote.interp1d and matplotlib Python 2.7 32-bit (Enthought Canopy)
- Migrating from using S-Plus Design package to R RMS package
- What is the R equivalent of matlab's csaps()
- Error in fitting Natural Spline in R
- evaluate (i.e., predict) a smoothing spline outside R
- How to get confidence interval for smooth.spline?
- How do I get the output columns of ns/bs into a data.table in R?
- How to add a spline to rjags model
- Get polynomial coefficients from interpolation splines in R
- Tensor smooths in gamm4
- Modify function calls within a formula
- B-spline curves
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
The output of
splines::interpSpline(x,y)$coefgives polynomial coefficients of the part between x(i) and x(i+1) in terms of the powers of (x-x(i)), not of powers of x. This makes sense because the resulting coefficients are of reasonable size and are easier to interpret: for example, each constant term is just y(i), the quadratic coefficient gives the concavity at x(i), and so on.For example, this output
means that
3 - 1.54054054*(x-1) + 0.13513514*(x-1)^31 + 0.08108108*(x-3) + 0.8108108*(x-3)^2 - 0.16816817*(x-3)^34 + 0.40540541*(x-6) - 0.7027027*(x-6)^2 + 0.07807808*(x-6)^3I don't see much use of the last line, which describes linear continuation of the spline beyond x=9, the right endpoint of the data.
To integrate these is no more difficult than to integrate powers of x, but of course one needs to choose the constants of integration if the goal is to get a continuous antiderivative. The choice of the form of polynomials makes dealing with constants of integration easier. Assuming we pick the antiderivative that has value 0 at the left endpoint, the rest is as follows:
3*(x-1) - 1.54054054*(x-1)^2/2 + 0.13513514*(x-1)^4/4C1 + 1*(x-3) + 0.08108108*(x-3)^2/2 + 0.8108108*(x-3)^3/3 - 0.16816817*(x-3)^4/4. Here C1 is the value of the previous antiderivative at x=3.C2 + 4*(x-6) + 0.40540541*(x-6)^2/2 - 0.7027027*(x-6)^3/3 + 0.07807808*(x-6)^4/4. Here C2 is the value of the previous antiderivative at x=6.