função de avaliação spline bicúbica (2d)
[zp[,dzpdx,dzpdy[,d2zpdxx,d2zpdxy,d2zpdyy]]]=interp2d(xp,yp,x,y,C [,out_mode])
vetores ou matrizes de reais de mesmo tamanho
vetores de reais definindo uma função de spline bicúbico ou
sub-spline (chamada s
daqui em diante)
(opcional) string definindo a avaliação de
s
fora de [x(1),x(nx)]x[y(1),y(ny)]
vetor ou matriz com o mesmo formato que xp
e yp
, avaliação elemento a elemento de
s
nestes pontos.
vetores (ou matrizes) de mesmo formato que
xp
e yp
, avaliação elemento a
elemento das derivadas primeiras de s
nesses
pontos.
vetores (ou matrizes) de mesmo formato que
xp
e yp
, eavaliação elemento a
elemento das derivadas segundas de s
nesses
pontos.
Dados três vetores (x,y,C)
definindo uma função
de sub-spline ou spline bicúbico (ver splin2d) esta função avalia s (e ds/dx,
ds/dy, d2s/dxx, d2s/dxy, d2s/dyy
se necessário) em
(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)) | ![]() | ![]() |
O parâmetro out_mode
define a regra de avaliação
para extrapolação, i.e., para (xp(i),yp(i)) fora de
[x(1),x(nx)]x[y(1),y(ny)]
:
uma extrapolação por zero é realizada
extrapolação por NaN
Extrapolação definida como segue :
a extrapolação é realizada utilizando o elemento de área bicúbico mais próximo de (x,y).
s
é estendida por periodicidade.
// veja os exemplos de splin2d // este exemplo mostra características de extrapolações diferentes // interpolação de cos(x)cos(y) n = 7; // um grid de interpolação n x n x = linspace(0,2*%pi,n); y = x; z = cos(x')*cos(y); C = splin2d(x, y, z, "periodic"); // agora avaliando em um domínio maior que [0,2pi]x [0,2pi] m = 80; // parâmetro de discretização do grid de avaliação 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"); clf() subplot(2,2,1) plot3d(xx, yy, zz1, flag=[2 6 4]) xtitle("Extrapolação com o outmode C0") subplot(2,2,2) plot3d(xx, yy, zz2, flag=[2 6 4]) xtitle("Extrapolação com o outmode by_zero") subplot(2,2,3) plot3d(xx, yy, zz3, flag=[2 6 4]) xtitle("Extrapolação com o outmode periodic") subplot(2,2,4) plot3d(xx, yy, zz4, flag=[2 6 4]) xtitle("Extrapolação com o outmode natural") show_window() | ![]() | ![]() |