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
eyp
, avaliação do interpolanteS
nesses pontos- dzpdx,dzpdy
vetores (ou matrizes) de mesmo tamanho que
xp
eyp
, avaliação das derivadas primeiras deS
nestes pontos- d2zpdxx,d2zpdxy,d2zpdyy
vetores (ou matrizes) de mesmo tamanho que
xp
eyp
, avaliação das derivadas segundas deS
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)
Report an issue | ||
<< cshep2d | Interpolação | interp >> |