Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2023.1.0 - Português


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 — bidimensional cubic shepard (scattered) interpolation

Autores

  • Robert J. Renka
  • B. Pincon (interface Scilab)
Report an issue
<< cshep2d Interpolação interp >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon May 22 12:42:12 CEST 2023