Please note that the recommended version of Scilab is 2026.0.0. This page might be outdated.
See the recommended documentation of this function
interp
função de avaliação de spline cúbico
Seqüência de Chamamento
[yp [,yp1 [,yp2 [,yp3]]]]=interp(xp, x, y, d [, out_mode])
Parâmetros
- xp
vetor ou matriz de reais
- x,y,d
vetores de reais de mesmo tamanho definindo uma função de spline cúbico ou sub-spline (chamado
sa partir daqui)- out_mode
(opcional) string definido a avaliação de
sfora do intervalo [x1,xn]- yp
vetor ou matriz de mesmo tamanho que
xp, avaliação elemento a elemento desemxp(yp(i)=s(xp(i) ou yp(i,j)=s(xp(i,j))- yp1, yp2, yp3
vetores (ou matrizes) de mesmo tamanho que
xp, avaliação elemento a elemento das derivadas sucessivas desemxp
Descrição
Dados três vetores (x,y,d) ddefinindo uma função
de spline cúbico ou sup-spline (ver splin)
com yi=s(xi), di = s'(xi) esta função avalia
s (e s', s'', s''' se necessário) em
xp(i) :
yp(i) = s(xp(i)) ou yp(i,j) = s(xp(i,j)) yp1(i) = s'(xp(i)) ou yp1(i,j) = s'(xp(i,j)) yp2(i) = s''(xp(i)) ou yp2(i,j) = s''(xp(i,j)) yp3(i) = s'''(xp(i)) ou yp3(i,j) = s'''(xp(i,j))
O parâmetro out_mode ajusta a regra de avaliação
para extrapolação, i.e., para xp(i) fora de [x1,xn] :
- "by_zero"
uma extrapolação por zero é feita
- "by_nan"
extrapolação por NaN
- "C0"
a extrapolação é definida como segue :
s(x) = y1 para x < x1 s(x) = yn para x > xn
- "natural"
a extrapolação é definida como segue (p_i sendo o polinômio que define
sem [x_i,x_{i+1}]) :s(x) = p_1(x) para x < x1 s(x) = p_{n-1}(x) para x > xn
- "linear"
a extrapolação é definida como segue :
s(x) = y1 + s'(x1)(x-x1) para x < x1 s(x) = yn + s'(xn)(x-xn) para x > xn
- "periodic"
sé estendido por periodicidade.
Exemplos
// veja os exemplos de splin e lsq_splin // um exemplo exibindo as continuidades C2 e C1 de um spline e um sub-spline a = -8; b = 8; x = linspace(a,b,20)'; y = sinc(x); dk = splin(x,y); // not_a_knot df = splin(x,y, "fast"); xx = linspace(a,b,800)'; [yyk, yy1k, yy2k] = interp(xx, x, y, dk); [yyf, yy1f, yy2f] = interp(xx, x, y, df); clf() subplot(3,1,1) plot2d(xx, [yyk yyf]) plot2d(x, y, style=-9) legends(["spline não é um nó","sub-spline rápido","pontos de interpolação"],... [1 2 -9], "ur",%f) xtitle("interpolação por spline") subplot(3,1,2) plot2d(xx, [yy1k yy1f]) legends(["spline não é um nó","sub-spline rápido"], [1 2], "ur",%f) xtitle("interpolação por spline (derivadas)") subplot(3,1,3) plot2d(xx, [yy2k yy2f]) legends(["spline não é um nó","sub-spline rápido"], [1 2], "lr",%f) xtitle("interpolação por splines (segundas derivadas)") // aqui está um exemplo mostrando as diferentes possibilidades de extrapolação x = linspace(0,1,11)'; y = cosh(x-0.5); d = splin(x,y); xx = linspace(-0.5,1.5,401)'; yy0 = interp(xx,x,y,d,"C0"); yy1 = interp(xx,x,y,d,"linear"); yy2 = interp(xx,x,y,d,"natural"); yy3 = interp(xx,x,y,d,"periodic"); clf() plot2d(xx,[yy0 yy1 yy2 yy3],style=2:5,frameflag=2,leg="C0@linear@natural@periodic") xtitle(" Modos diferentes de avaliar um spline fora de seu domínio")
Ver Também
| Report an issue | ||
| << eval_cshep2d | Interpolação | interp1 >> |