Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - 日本語

Please note that the recommended version of Scilab is 6.0.1. This page might be outdated.
See the recommended documentation of this function

Ajuda Scilab >> Interpolação > eval_cshep2d

eval_cshep2d

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

Seqüência de Chamamento

[zp [,dzpdx, dzpdy [,d2zpdxx,d2zpdxy,d2zpdyy]]] = 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 — bidimensional cubic shepard (scattered) interpolation

Autores

  • Robert J. Renka
  • B. Pincon (interface Scilab)
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Mar 03 11:00:30 CET 2011