Man Scilab

interp2d
Scilab Function

interp2d - bicubic spline (2d) evaluation function

Calling Sequence

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

Parameters

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)) :

      zp(i) = s(xp(i),yp(i))   
      dzpdx(i) = ds/dx(xp(i),yp(i))
      dzpdy(i) = ds/dy(xp(i),yp(i))  
      d2zpdxx(i) = d2s/dx2(xp(i),yp(i))
      d2zpdxy(i) = d2s/dxdy(xp(i),yp(i))  
      d2zpdyy(i) = d2s/dy2(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");
    xbasc()
    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")
    xselect()
     

    See Also

    splin2d ,  

    Author

    B. Pincon

    Back