Vous êtes sur la page 1sur 27

Un problema de Aproximación

 Evolución de la temperatura diurna

Hora 6 8 10 12 14 16 18 20
Grados 7 9 12 18 21 19 15 10

22
20
18
Grados

16
14
12
10
8
6
4 6 8 10 12 14 16 18 20 22
Hora
Interpolacion
Interpolación Polinomial
Polinomios Osculadores: Interpolación de
Hermite
Interpolación Racional: Aproximaciones de
Pade
Interpolación segmentaria: Splines
Otros
Ajuste
Polinomios de Taylor
Mínimos Cuadrados
Minimización de normas
Aproximación Racional
Series de Fourier

Curvas de Bezier

B-Splines
Interpolación Polinómica
Segmentaria
Limitaciones de la interpolación polinómica
Grado del polinomio
Carácter de la función a interpolar
Alternativa propuesta: Splines.
Numéricamente estable
Matrices dispersas
Agradable a la vista
Interpolación Polinomica
Segmentaria: Splines

Interpolación Segmentaria

Interpolación Segmentaria Lineal


Interpolación Segmentaria Cúbica
Condiciones Naturales
Condiciones sobre la derivada
Interpolación Segmentaria
Lineal: Función de Runge
Polinomio grado 4 Spline lineal
1 1

0.9
0.8
0.8
0.6 0.7

0.6
0.4
0.5
0.2
0.4

0 0.3

0.2
-0.2
0.1

-0.4 0
-1 0 1 -1 0 1

1
y
1  25x 2
Perfil para un diseño

Polinomio interpolador
Aplicaciones

 Ingeniería y Diseño (CAD/CAM, CNC’s)


 Geología
 Aeronáutica y automoción
 Economía
 Procesamiento de señales e imágenes (Reconocimiento
de patrones, recuperación de imágenes)
 Robótica
 Medicina (Aparatos auditivos, mapas cerebrales)
 Meteorología (Mapas climáticos, detección de
inundaciones,...)
 Mundo Virtual Distribuido Multiusuario
Interpolación Polinómica
Segmentaria

Dados n+1 puntos (x0,y0), (x1,y1), ..., (xn,yn) con


x0<x1…<xn, una función spline de orden k (k-Spline)
sobre dichos puntos es una función S verificando:
(i) S(x) = qk(x) polinomio de grado k, x [xk,xk+1],
k=0,1,...,n-1
(ii) S(xk) = yk, k=0,1,...,n
(iii) S  C k 1  x0 , x1 
Splines Lineales
 Polinomio de Lagrange

x  x k 1 x  xk
q k ( x)  yk  y k 1
x k  x k 1 x k 1  x k
 Polinomio de Newton

q k ( x)  f [ x k ]  f [ x k , x k 1 ]( x  x k ) 
y k 1  y k
 yk  (x  xk )
x k 1  x k
Splines Lineales
Interpolación Segmentaria
Lineal: Función de Runge
Polinomio grado 4 Spline lineal
1 1

0.9
0.8
0.8
0.6 0.7

0.6
0.4
0.5
0.2
0.4

0 0.3

0.2
-0.2
0.1

-0.4 0
-1 0 1 -1 0 1

1
y
1  25x 2
Splines Cúbicos
 Spline cúbico
q k ( x)  a k  b k ( x  x k )  c k ( x  x k ) 2  d k ( x  x k ) 3
4n incógnitas
 Condiciones de interpolación
S ( xk )  yk n+1 ecuaciones
 Condiciones de conexión
qk ( xk 1 )  qk 1 ( xk 1 )
q k' ( xk 1 )  qk' 1 ( xk 1 )
3(n-1) ecuaciones
q k'' ( xk 1 )  qk'' 1 ( xk 1 )
q k ( x)  a k  b k ( x  x k )  c k ( x  x k ) 2  d k ( x  x k ) 3

a k  f ( x k ), k  0,1,..., n h k  x k 1  x k
1 hk
bk  (a k 1  a k )  (2c k  c k 1 ), k  0,1,..., n  1
hk 3
d k  (c k 1  c k ) / (3h k ), k  0,1, n  1

h c  2(h  h )c  h c 
k 1 k 1 k 1 k k k k 1

3 3
 (a k 1  a k )  ( a k  a k 1 )
hk h k 1
n-1 ecuaciones y n+1 incógnitas
Condiciones Naturales
Teorema 1
Sea f(x) una función definida en [x0,xn]. Entonces
existe un único s(x) spline interpolante cúbico
para f(x) en [x0,xn] tal que

s’’(x0) = 0 y s’’(xn) = 0.

cn = s’’(xn)/2 = 0
s’’(x0) = 2c0 = 0  c0 = 0.
Matriz del sistema
2 ( h 0  h 1 ) h1 0   0 0 0 
 h 2( h 1  h 2 ) h2   0 0 0 
 1 
 0 h2 2( h 2  h 3 )   0 0 0 
 
         
M
         
 
 0 0 0   2( h n  4  h n  3 ) h n3 0 
 0 0 0   h n3 2( h n  3  h n  2 ) h n2 
 
 0 0 0   0 h n2 2( h n 2  h n 1 ) 
Términos independientes
 3 3 
 (a 2  a1 )  (a1  a 0 ) 
h1 h0
 
 
  
p 
 
  
 
 3 3 
 (a n  a n 1 )  (a n 1  a n  2 ) 
 h n 1 h n2 
Ejemplo de la temperatura
Polinomio interpolador Spline cúbico
22 22

20 20

18 18

16 16
Grados

Grados
14 14

12 12

10 10

8 8

6 6
5 10 15 20 5 10 15 20
Hora Hora
Condiciones sobre la derivada

Teorema 2
Sea f(x) una función definida en [x0,xn]. Entonces existe un único
s(x) spline cúbico interpolante para f(x) en [x0,xn].tal que
s’(x0) = f’(x0) y s’(xn) = f’(xn).

3
2 h 0c 0  h 0c1  (a 1  a 0 )  3f ' ( x 0 )
h0

3
h n 1c n 1  2 h n 1c n  3f ' ( x n )  ( a n  a n 1 ).
h n 1
Matriz del sistema

2 h 0 h0 0 0  0 0 0 
 h 2( h  h ) h1 0  0 0 0 
 0 0 1 
 0 h1 2 ( h1  h 2 ) h2  0 0 0 
 
 0 0 h2 2( h 2  h 3 )  0 0 0 
M
         
 
 0 0 0 0  2( h n  3  h n  2 ) h n2 0 
 0 0 0 0  h n2 2( h n 2  h n 1 ) h n 1 
 
 0 0 0 0  0 h n 1 2 h n 1 
Términos independientes

 3 
 h (a 1  a 0 )  3f ' ( x 0 ) 
 0

 3 (a  a ) 
3
(a1  a 0 ) 
 h1 2 1
h0 
p  
 3 3 
 (a n  a n 1 )  (a n 1  a n  2 ) 
 h n 1 h n2 
 3 
 3f ' ( x n )  ( a n  a n 1 ) 
 h n 1 
Splines Cúbicos
Interpolación segmentaria con
MATLAB
 Interpolación segmentaria cúbica
 ps = spline(x,y) % Devuelve el Spline, no los
coeficientes
 [x,s] = unmkpp(ps) % Devuelve los coeficientes
 ps = mkpp(x,s)
 syy = spline(x,y,xx) = ppval(ps,xx)
 Interpolación segmentaria lineal
 lyy = interp1(x,y,xx)
Spline de MATLAB Interpolación Lineal
1 1

0.5
0.5

0
-1 0 1 -1 0 1

1 Spline Natural 1 Spline Derivada

0.5 0.5

0
0
-1 0 1 -1 0 1