# Interface for using the Interpolations object

We will again use the same data as the previous tutorial to demonstrate how to use the Interpolations object for computing interpolated values at any time point, its derivatives and integrals.

```
using DataInterpolations
# Dependent variable
u = [14.7, 11.51, 10.41, 14.95, 12.24, 11.22]
# Independent variable
t = [0.0, 62.25, 109.66, 162.66, 205.8, 252.3]
```

```
6-element Vector{Float64}:
0.0
62.25
109.66
162.66
205.8
252.3
```

## Interpolated values

All Interpolation methods return an object from which we can compute the value of the dependent variable at any time point.

We will use `CubicSpline`

method for demonstration but the API is same for all the methods. We can also pass `extrapolate=true`

keyword if we want to allow the interpolation to go beyond the range of the timepoints. The default value is `extrapolate=false`

.

```
A1 = CubicSpline(u, t)
# For interpolation do, A(t)
A1(100.0)
A2 = CubicSpline(u, t; extrapolate = true)
# Extrapolation
A2(300.0)
```

`6.186306759108685`

The values computed beyond the range of the time points provided during interpolation will not be reliable as these methods only perform well within the range and the first/last piece polynomial fit is extrapolated on either sides which might not reflect the true nature of the data.

## Derivatives

Derivatives of the interpolated curves can also be computed at any point for all the methods.

We will continue with the above example, but the API is same for all the methods. If the interpolation is defined with `extrapolate=true`

, derivatives can also be extrapolated.

```
# derivative(A, t)
DataInterpolations.derivative(A1, 1.0)
# Extrapolation
DataInterpolations.derivative(A2, 300.0)
```

`-0.23144961208831108`

## Integrals

Integrals of the interpolated curves can also be computed easily.

Integrals for `LagrangeInterpolation`

, `BSplineInterpolation`

, `BSplineApprox`

, `Curvefit`

will error as there are no simple analytical solutions available. Please use numerical methods for the same such as Integrals.jl.

To compute the integrals from the start of time points provided during interpolation to any point, we can do:

```
# integral(A, t)
DataInterpolations.integral(A1, 5.0)
```

`129.64386171415265`

If we want to compute integrals between two points, we can do:

```
# integral(A, t1, t2)
DataInterpolations.integral(A1, 1.0, 5.0)
```

`114.9694509973317`

Again, if the interpolation is defined with `extrapolate=true`

, the integral can be computed beyond the range of the timepoints.

```
# integral(A, t1, t2)
DataInterpolations.integral(A2, 200.0, 300.0)
```

`1065.2015077631368`

If the times provided in the integral goes beyond the range of the time points provided during interpolation, it uses extrapolation methods to compute the values and hence the integral can be misrepsentative and might not reflect the true nature of the data.