interp2d

bicubic spline (2d) evaluation function

Calling Sequence

[zp[,dzpdx,dzpdy[,d2zpdxx,d2zpdxy,d2zpdyy]]]=interp2d(xp,yp,x,y,C [,out_mode])

Arguments

:xp, yp real vectors or matrices of same size : :x,y,C real vectors defining a bicubic spline or sub-spline function

(called s in the following)
: :out_mode (optional) string defining the evaluation of s outside
[x(1),x(nx)]x[y(1),y(ny)]
: :zp vector or matrix of same format than xp and yp, elementwise
evaluation of s on these points.
: :dzpdx, dzpdy vectors (or matrices) of same format than xp and
yp, elementwise evaluation of the first derivatives of s on these points.
: :d2zpdxx, d2zpdxy, d2zpdyy vectors (or matrices) of same format than
xp and yp, elementwise evaluation of the second derivatives of s on these points.

:

Description

Given three vectors (x,y,C) defining a bicubic spline or sub-spline function (see `splin2d`_) this function evaluates s (and ds/dx, ds/dy, d2s/dxx, d2s/dxy, d2s/dyy if needed) at (xp(i),yp(i)) :

The out_mode parameter defines the evaluation rule for extrapolation, i.e. for (xp(i),yp(i)) not in [x(1),x(nx)]x[y(1),y(ny)] :

:”by_zero” an extrapolation by zero is done : :”by_nan” extrapolation by Nan : :”C0” the extrapolation is defined as follows :

s(x,y) = s(`proj`_(x,y)) `where`_ proj(x,y) is nearest point
                      of [x(1),x(nx)]x[y(1),y(ny)] from (x,y)
: :”natural” the extrapolation is done by using the nearest bicubic-
patch from (x,y).

: :”periodic” s is extended by periodicity. :

Examples

// see the examples of splin2d

// this example shows some different extrapolation features
// interpolation of cos(x)cos(y)
n = 7;  // a n x n interpolation grid
x = `linspace`_(0,2*%pi,n); y = x;
z = `cos`_(x')*`cos`_(y);
C = `splin2d`_(x, y, z, "periodic");

// now evaluate on a bigger domain than [0,2pi]x [0,2pi]
m = 80; // discretisation parameter of the evaluation grid
xx = `linspace`_(-0.5*%pi,2.5*%pi,m); yy = xx;
[XX,YY] = `ndgrid`_(xx,yy);
zz1 = interp2d(XX,YY, x, y, C, "C0");
zz2 = interp2d(XX,YY, x, y, C, "by_zero");
zz3 = interp2d(XX,YY, x, y, C, "periodic");
zz4 = interp2d(XX,YY, x, y, C, "natural");
`clf`_()
`subplot`_(2,2,1)
`plot3d`_(xx, yy, zz1, flag=[2 6 4])
`xtitle`_("extrapolation with the C0 outmode")
`subplot`_(2,2,2)
`plot3d`_(xx, yy, zz2, flag=[2 6 4])
`xtitle`_("extrapolation with the by_zero outmode")
`subplot`_(2,2,3)
`plot3d`_(xx, yy, zz3, flag=[2 6 4])
`xtitle`_("extrapolation with the periodic outmode")
`subplot`_(2,2,4)
`plot3d`_(xx, yy, zz4, flag=[2 6 4])
`xtitle`_("extrapolation with the natural outmode")
`show_window`_()

See Also

  • `splin2d`_ bicubic spline gridded 2d interpolation

History

Version Description 5.4.0 previously, imaginary part of input arguments were implicitly ignored. .. _splin2d: splin2d.html

Table Of Contents

This Page