eval_cshep2d avaliação por interpolação cúbica bidimensional de Shepard

## Seqüência de Chamamento

            zp                                            = eval_cshep2d(xp, yp, tl_coef)
            [zp, dzpdx, dzpdy]                            = eval_cshep2d(xp, yp, tl_coef)
            [zp, dzpdx, dzpdy, d2zpdxx, d2zpdyy, d2zpdxy] = eval_cshep2d(xp, yp, tl_coef)

## Parâmetros

xp, yp

  dois vetores (ou matrizes) de mesmo tamanho

tl_coef

  uma estrutura Scilab tlist (de tipo cshep2d) definindo uma função de interpolação cúbica de Shepard (chamada `S` a partir daqui)

zp

  vetor (ou matrizes) de mesmo tamanho que `xp` e `yp`, avaliação do interpolante `S` nesses pontos

dzpdx,dzpdy

  vetores (ou matrizes) de mesmo tamanho que `xp` e `yp`, avaliação das derivadas primeiras de `S` nestes pontos

d2zpdxx,d2zpdxy,d2zpdyy

  vetores (ou matrizes) de mesmo tamanho que `xp` e `yp`, avaliação das derivadas segundas de `S` nestes pontos

## Descrição

Esta é a rotina de avaliação para a função de interpolação cúbica de Shepard obtida com cshep2d, isto é :

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

## Observação

O interpolante S é C2 (duas vezes continuamente diferenciável) mas também é estendido por zero para (x,y) suficientemente longe dos pontos de interpolação. Isto leva a uma descontinuidade em regiões exteriores muito longe dos pontos de interpolação e, assim, a avaliação não se torna incoveniente na prática (de um modo geral, avaliação fora dos pontos de interpolação (i.e. extrapolação) leva a resultados muito inacurados).

## Exemplos

    // ver seção de exemplos em cshep2d

    // este exemplo mostra o comportamento longe dos pontos de interpolação...
    deff("z=f(x,y)","z = 1+ 50*(x.*(1-x).*y.*(1-y)).^2")
    x = linspace(0,1,10);
    [X,Y] = ndgrid(x,x);
    X = X(:); Y = Y(:); Z = f(X,Y);
    S = cshep2d([X Y Z]);
    // avaliação dentro e fora do quadrado [0,1]x[0,1]
    m = 40;
    xx = linspace(-1.5,0.5,m);
    [xp,yp] = ndgrid(xx,xx);
    zp = eval_cshep2d(xp,yp,S);
    // computando faceta (para definir uma cor para a região de extrapolação
    // e outra para a região de interpolação)
    [xf,yf,zf] = genfac3d(xx,xx,zp);
    color = 2*ones(1,size(zf,2));
    // índices correspondentes à faceta na região de interpolação
    ind=find( mean(xf,"r")>0 & mean(xf,"r")<1 & mean(yf,"r")>0 & mean(yf,"r")<1 );
    color(ind)=3;
    clf();
    plot3d(xf,yf,list(zf,color), flag=[2 6 4])
    legends(["região de extrapolação","região de interpolação"],[2 3],1)
    show_window()

## Ver Também

- cshep2d

## Autores

- Robert J. Renka
- B. Pincon (interface Scilab)