Está en la página 1de 17

Interpolación de curvas

APLICACIÓN DE METODOS NUMERICOS


CAPITULO IV
INTERPOLACION DE CURVAS

1. INTRODUCCION
Muchas veces se requiere estimar valores intermedios entre datos precisos, como
por ejemplo cuando se desea estimar valores de densidad de algún fluido a
diferentes temperaturas, lo mismo ocurre con otras propiedades termodinámicas
de los fluidos, tales como: Capacidad calorífica, viscosidad, etc.
Ejemplos de interpolación:

Interpolación lineal
Interpolación curvilínea

2. INTERPOLACIÓN POLINOMIAL USANDO DIFERENCIA DIVIDIDA DE


NEWTON
Se basa en la fórmula general de un polinomio:
f ( x)  a 0  a1 X  a 2 X 2  ...  a n X n

2.1. Interpolación Lineal


Este método se basa en conectar dos puntos con una línea recta, Se puede
Ilustrar mediante triángulos semejantes

f ( x1

f 1 ( x)

f ( x0 )

X0 X X1

f 1 ( x)  f ( x 0 ) f ( x1 )  f ( x 0 )

x  x0 x1  x 0
f ( x1 )  f ( x 0 )
f 1 ( x)  f ( x 0 )   x  x0 
x1  x 0
Ejemplo:
Estimar el logaritmo natural de 2; tendiendo como datos
Ln(1)= 0

Ing. Héctor G. Bolaños Sosa Pag .1


Interpolación de curvas

Ln(4)=1.386294
f ( x1 )  f ( x 0 )
f 1 ( x)  f ( x 0 )   x  x0 
x1  x 0
1.386294  0
f 1 ( x)  0   2  1  0.462098
4 1
Vv  Aprox 0.693147  0.462098
t  100  100  33.33
Vv 0.693147

2.2. Interpolación cuadrática


Para mejorar la estimación se puede introducir alguna curvatura a la línea que
conecta los puntos. Esto puede realizarse con un polinomio de segundo
orden.
f 2 ( x)  bo  b1 ( x  x 0 )  b2 ( x  x 0 )( x  x1 )
Donde
bo  f ( x o )
f ( x1 )  f ( x 0 )
b1 
x1  x 0
f ( x 2 )  f ( x1 ) f ( x1 )  f ( x 0 )

x 2  x1 x1  x 0
b2 
x2  x0
Ejemplo:
Estimar el logaritmo natural de 2; tendiendo como datos
Ln(1)= 0
Ln(4)=1.386294
Ln(6)=1.791759
Solución:
x0  1 f ( x0 )  0
x1  4 f ( x1 )  1.386294
x2  6 f ( x2 )  1.791759

bo  f ( xo )  0
1.386294  0
b1   0.4620981
4 1
1.791759  1.386294 1.386294  0

b2  64 40  0.0518731
60
Luego reemplazamos en la ecuación cuadrática:
f 2 ( 2)  0  0.4620981( x  1)  0.0518731( x  1)( x  4)

Resolviendo con Matlab:


>> f2=inline('0+0.4620981*(x-1)-0.0518731*(x-4)')
f2 =
Inline function:
f2(x) = 0+0.4620981*(x-1)-0.0518731*(x-4)

>> f=feval(f2,2)
f=
0.5658443

Ing. Héctor G. Bolaños Sosa Pag .2


Interpolación de curvas

El valor verdadero sería:


>> log(2)
ans =
0.6931472

El error sería:
Vv  Aprox 0.5658443  0.6931472
t  100  100  18.4%
Vv 0.6931472

2.3. Forma general de la interpolación de polinomios Newton


El análisis anterior puede ser generalizado para interpolar un polinomio de n-
ésimo orden.

f n ( x)  bo  b1 ( x  x0 )  b2 ( x  x0 )( x  x1 )    bn ( x  x0 )( x  x1 )( x  xn1 )
Donde:
bo  f ( xo )
b1  f  x1 , x0 
b2  f  x 2 , x1 , x0 

bn  f  x n , x n 1 ,, x1 , x0 

Las evaluaciones de las funciones entre paréntesis son diferencias dividida


finita.
La primera diferencia dividida se representa por:
f ( xi )  f ( x j )
 
f xi , x j 
xi  x j
La Segunda diferencia dividida se representa por:

 
f xi , x j , x k 
   
f xi , x j  f x j , x k
xi  xk
La n-ésima diferencia dividida finita es:
f  xn , xn1 ,, x1   f  xn1 , xn2 ,, x0 
f  xn , xn1 ,, x1 , x0  
x n  x0
Ejemplo:

Ing. Héctor G. Bolaños Sosa Pag .3


Interpolación de curvas

Estimar el logaritmo natural de 2; tendiendo como datos


Ln(1)= 0
Ln(4)=1.386294
Ln(6)=1.791759
Ln(5)=1.609438

Solución:
x0  1 f ( x0 )  0
x1  4 f ( x1 )  1.386294
x2  6 f ( x2 )  1.791759
x3  5 f ( x3 )  1.609438

Las primeras diferencias divididas serán:


f ( xi )  f ( x j )

f xi , x j  xi  x j
1.386294  0
f  x1 , x0    0.46209812
4 1
1.791759  1.386294
f  x 2 , x1    0.20273255
64
1.609438  1.791759
f  x3 , x 2    0.18232156
56
Las segundas diferencias divididas serán:


f xi , x j , xk     
f xi , x j  f x j , xk 
xi  xk
f  x2 , x1   f  x1 , x0  0.20273255  0.46209812
f  x2 , x1 , x0     -0.05187311
x2  x0 6 1
f  x3 , x2   f  x2 , x1  0.18232156  0.20273255
f  x3 , x2 , x1     -0.02041100
x3  x1 54
La tercera diferencia dividida será:
f  xn , xn 1 ,  , x1   f  xn 1 , xn  2 ,  , x0 
f  xn , xn 1 ,  , x1 , x0  
xn  x0
f  x3 , x2 , x1   f  x2 , x1 , x0 
f  x3 , x2 , x1 , x0   
x3  x0
- 0.02041100 -  - 0.05187311
f  x3 , x2 , x1 , x0    0.00786552 9
5 -1
Establecimiento de la ecuación polinómica
bo  f ( xo )  0
b1  f  x1 , x0   0.46209812
b2  f  x2 , x1 , x0   0.05187311
b3  f  x3 , x2 , x1 , x0   0.007865529

f n ( x)  bo  b1 ( x  x0 )  b2 ( x  x0 )( x  x1 )  b3 ( x  x0 )( x  x1 )( x  x2 )
f 3 ( 2)  0  0.46209812( x  1)  0.05187311( x  1)( x  4)  0.007865529( x  1)( x  4)( x  6)
Resolviendo con Matlab:
>> f3=inline('0+0.4620981*(x-1)-0.05187311*(x-1)*(x-4)+0.007865529*(x-1)*(x-

Ing. Héctor G. Bolaños Sosa Pag .4


Interpolación de curvas

4)*(x-6)')
f3 =
Inline function:
f3(x) = 0+0.4620981*(x-1)-0.05187311*(x-1)*(x-4)+0.007865529*(x-1)*(x-4)*(x-6)

>> vf3=feval(f3,2)
vf3 =
0.62876855

El valor verdadero sería:


>> log(2)
ans =
0.69314718
El error sería:
Vv  Aprox 0.62876855  0.69314718
t  100  100  9.29%
Vv 0.69314718

3. INTERPOLACIÓN POLINOMIAL DE LAGRANGE


La interpolación de polinomios de Lagrange, es una reformulación del polinomio de
Newton, se puede expresar:
n
f n ( x)   Li ( x) f ( x )
i 0
i

Donde:
n
x xj
Li ( x)  x
j 0 i  xj  designa el “producto de”

Para el primer orden:


x  x1 x  x0
f1 ( x )  f ( x0 )  f ( x1 )
x0  x1 x1  x0
Para el segundo orden:
( x  x1 )( x  x2 ) ( x  x0 )( x  x2 ) ( x  x0 )( x  x1 )
f 2 ( x)  f ( x0 )  f ( x1 )  f ( x2 )
( x0  x1 )( x0  x2 ) ( x1  x0 )( x1  x2 ) ( x2  x0 )( x2  x1 )

Ejemplo:
Estimar el logaritmo natural de 2; tendiendo como datos
Ln(1)= 0
Ln(4)=1.386294
Ln(6)=1.791759

Solución
I x f(x)
0 1 0
1 4 1.386294
2 6 1.791756
El polinomio de primer orden, será:
( x  x1 ) ( x  x0 )
f1 ( x )  f ( x0 )  f ( x1 )
( x0  x1 ) ( x1  x0 )
( x  4) ( x  1)
f1 ( 2)  0 1.386294  0.4620981
(1  4) (4  1)

Ing. Héctor G. Bolaños Sosa Pag .5


Interpolación de curvas

El polinomio de segundo orden, será:

( x  x1 )( x  x2 ) ( x  x0 )( x  x2 ) ( x  x0 )( x  x1 )
f 2 ( x)  f ( x0 )  f ( x1 )  f ( x2 )
( x0  x1 )( x0  x2 ) ( x1  x0 )( x1  x2 ) ( x2  x0 )( x2  x1 )
( x  4)( x  6) ( x  1)( x  6) ( x  1)( x  4)
f 2 ( 2)  0 1.386294  1.791756  0.565844
(1  4)(1  6) (4  1)(4  6) (6  1)(6  4)
4. INTERPOLACIÓN SEGMENTARIA
En el polinomio de Newton, para ocho puntos se puede derivar un polinomio de
séptimo orden.
A veces estas funciones pueden generar errores de redondeo y puntos alejados.
La alternativa es aplicar polinomios de orden inferior a subconjuntos de datos.
Estos polinomios conectores se llaman Funciones Segmentarias.

En la figura podemos notar un ajuste segmentario de cuatro puntos

4.1. Segmentarias lineales


Se pueden definir como un conjunto de funciones lineales
f ( x)  f ( x0 )  m0 ( x  x0 )
f ( x)  f ( x1 )  m1 ( x  x1 ) x0  x  x1
f ( xi 1 )  f ( xi ) x1  x  x2
mi 
xi 1  xi
Ejemplo:
Ajustar los datos que se muestran con segmentarias de primer orden. Evaluar
la función en x=5
x f(x)

Ing. Héctor G. Bolaños Sosa Pag .6


Interpolación de curvas

3.0 2.5
4.5 1.0
7.0 2.5
9.0 0.5

Solución
El intervalo será: 4.5<X<7; porque allí se encuentra el valor a interpolar que
es X = 5
Cálculo de la pendiente
f ( xi 1 )  f ( xi ) 2.5  1.0
mi    0.60
xi 1  xi 7.0  4.5
Luego:
f ( x )  f ( x0 )  m0 ( x  x0 )
f (5)  1.0  0.60(5  4.5)
f (5)  1.0  0.30  1.30
En consecuencia la ecuación será:

f ( x)  f ( x0 )  m0 ( x  x0 )
f ( x)  1.0  0.60( x  4.5)
f ( x)  1.0  0.60 x  2.7  1.7  0.60 x

4.2. Segmentarias cuadráticas


El objetivo es derivar un polinomio de segundo orden para cada intervalo
entre datos.
El polinomio para cada intervalo se representa:
f i ( x)  ai x 2  bi x  ci

Para n+1 datos (i=0,1,2,…,n) existen n intervalos, en consecuencia, 3n


constantes desconocidas (a, b y c) por evaluar, por tanto se requieren 3n
ecuaciones o condiciones para evaluar las incógnitas y estas son:

a) Los valores de la función de polinomios adyacentes deben ser iguales a


los nodos interiores. Esta condición se representa:
ai 1 xi21  bi 1 xi 1  ci 1  f ( xi 1 )
ai xi21  bi xi 1  ci  f ( xi 1 )
Para i=2 a n. Como sólo se usa nodos interiores, las ecuaciones
proporcionan cada una n-1 condiciones del total 2n-2

Ing. Héctor G. Bolaños Sosa Pag .7


Interpolación de curvas

b) La primera y última funciones deben pasara a través de los puntos


extremo. Esto agrega dos ecuaciones adicionales
a1 x02  b1 x0  c1  f ( x0 )
a n x n2  bn x n  c n  f ( x n )
Para un total de 2n-2+2= 2n condiciones
c) Las primeras derivadas en los nodos interiores deben ser iguales. La
primera derivada de la ecuación f i ( x)  ai x 2  bi x  ci es:
f ' ( x)  2ax  b y de manera general:
2ai 1 xi 1  bi 1  2ai xi 1  bi
Esto proporciona otras n-1 condiciones
d) La segunda derivada f i ( x)  ai x 2  bi x  ci
f ' ' ( x)  2ai
Suponiendo que en el primer punto la segunda derivada es cero, esto es
a1= 0

Ejemplo:
Ajustar los datos que se muestran con segmentarias cuadráticas. Evaluar la
función en x=5
x f(x)
3.0 2.5
4.5 1.0
7.0 2.5
9.0 0.5

Solución
Se tienen 4 datos con n=3 intervalos; entonces 3(n)=3(3)= 9 ecuaciones o
condiciones

a) Las ecuaciones de los nodos interiores dan 2n-2=2(3)-2=4 condiciones


ai 1 xi21  bi 1 xi 1  ci 1  f ( xi 1 )
ai xi21  bi xi 1  ci  f ( xi 1 )
a1 ( 4.5) 2  b1 (4.5)  c1  1.0  20.25a1  4.5b1  c1  1.0
a2 ( 4.5) 2  b2 ( 4.5)  c2  1.0  20.25a2  4.5b2  c2  1.0
a2 (7.0) 2  b2 (7.0)  c2  2.5  49a2  7b2  c2  2.5
a3 (7.0) 2  b3 (7.0)  c3  2.5  49a3  7b3  c3  2.5

b) La ecuaciones de los puntos extremos dan dos ecuaciones


an xn2  bn xn  cn  f ( xn )
a1 (3) 2  b1 (3)  c1  2.5  9a1  3b1  c1  2.5
a3 (9) 2  b3 (9)  c3  0.5  81a3  9b3  c3  0.5

c) La continuidad de las derivadas crea un adicional de 3-1= 2 ecuaciones


2ai 1 xi 1  bi 1  2ai xi 1  bi
2a1 (4.5)  b1  2a2 ( 4.5)  b2 9a1  b1  9a2  b2
2a2 (7.0)  b2  2a3 (7.0)  b3 …. 14a2  b2  14a3  b3
d) La ecuación de la segunda derivada especifica un valor de a1 = 0

Ing. Héctor G. Bolaños Sosa Pag .8


Interpolación de curvas

e) El sistema de ecuaciones serán en consecuencia 8 ecuaciones con ocho


incógnitas, ya que la incógnita a1 está definida
20.25a1  4.5b1  c1  1.0 (1)
20.25a2  4.5b2  c2  1.0 (2)
49a2  7b2  c2  2.5 (3)
49a3  7b3  c3  2.5 (4)
9a1  3b1  c1  2.5 (5)
81a3  9b3  c3  0.5 (6)
9a1  b1  9a2  b2 (7)
14a2  b2  14a3  b3 (8)

Este sistema de ecuaciones podemos escribirla en forma matricial


(tener en cuenta que a1 = 0)
 b1 c1 a 2 b 2 c 2 a3 b3 c3
4.5 1 0 0 0 0 0 0  b1   1 
 0  
 0 20.5 4.5 1 0 0 0  c1  
1 

 0 0 49 7 1 0 0 0 a2  2.5
    
 0 0 0 0 0 49 7 1 b2  2.5
 3   
1 0 0 0 0 0 0  c2  2.5
 
 0 0 0 0 0 81 9 1  a3  0.5
 1    
0 9 1 0 0 0 0  b3   0 
 
 0 0 14 1 0  14  1 0    
 c3   0 

Este sistema de ecuaciones resolvemos con cualquier método descrito


anteriormente.
>> B=[4.5 1 0 0 0 0 0 0;0 0 20.25 4.5 1 0 0 0
0 0 49 7 1 0 0 0
0 0 0 0 0 49 7 1
31000000
0 0 0 0 0 81 9 1
1 0 -9 -1 0 0 0 0
0 0 14 1 0 -14 -1 0]
B= >> a=[1 1 2.5 2.5 2.5 0.5 0 0]'
Columns 1 through 4
4.50 1.00 0 0 a=
0 0 20.25 4.50 1.00
0 0 49.00 7.00 1.00
0 0 0 0 2.50
3.00 1.00 0 0 2.50
0 0 0 0 2.50
1.00 0 -9.00 -1.00 0.50
0 0 14.00 1.00 0
Columns 5 through 8 0
0 0 0 0
1.00 0 0 0
1.00 0 0 0
0 49.00 7.00 1.00
0 0 0 0

Ing. Héctor G. Bolaños Sosa Pag .9


Interpolación de curvas

0 81.00 9.00 1.00


0 0 0 0
0 -14.00 -1.00 0

>> V=bicg(B,a)
bicg stopped at iteration 8 without converging to the desired tolerance 1e-
006
because the maximum number of iterations was reached.
The iterate returned (number 8) has relative residual 0.00025

V=
-1.00
5.50
0.64
-6.76
18.46
-1.60
24.60
-91.30

Resumiendo los valores:


a1  0
b1   1.00
c1  5.50
a2  0.64
b2   6.76
c2  18.46
a3  1.60
b3  24.60
c3   91.30

f) Al resolver las variables y sustituyendo en las ecuaciones cuadráticas se


tiene:
f i ( x)  ai x 2  bi x  ci
Para el intervalo 3.0  x  4.5
f1 ( x )  a1 x 2  b1 x  c1  0  x  5.5
Para el intervalo 4.5  x  7.0
f 2 ( x )  a2 x 2  b2 x  c2  0.64 x 2  6.76 x  18.46
Para el intervalo 7.0  x  9.0
f 3 ( x)  a3 x 2  b3 x  c3  1.60 x 2  24.60 x  91.30
g) Nuestro caso es evaluar cundo x=5.0; entonces se usará f2; porque está
en el intervalo 4.5  x  7.0
f 2 (5.0)  0.64 x 2  6.76 x  18.46  0.64(5) 2  6.76(5)  18.46  0.66

4.3. Segmentaria cubica


El objetivo es obtener un polinomio de tercer orden para cada intervalo entre
los nodos, como en:
f i ( x)  ai x 3  bi x 2  ci x  d i

Ing. Héctor G. Bolaños Sosa Pag .10


Interpolación de curvas

Para n+1 datos (i=0,1,2,…,n) existen n intervalos, en consecuencia, 4n


constantes desconocidas (a, b, c y d) por evaluar. por tanto se requieren 4n
ecuaciones o condiciones para evaluar las incógnitas y estas son:
a) Los valores de la función deben ser iguales en los nodos interiores (2n-2
condiciones)
b) La primera y última funciones deben pasar a través de los puntos
extremos (2 condiciones)
c) Las primeras derivadas en los nodos interiores deben ser iguales (n-1
condiciones)
d) Las segundas derivadas en los nodos interiores deben ser iguales (n-1
condiciones)
e) Las segundas derivadas en los nodos extremos son cero (2 condiciones)

Una técnica alterna que requiere la solución de n-1 ecuaciones:


La ecuación cubica para cada intervalo es:
f i ' ' ( xi 1 )
f i ( x) 
6( xi  xi 1
 f ( xi 1 ) f " (
  
 xi  xi 1
 f ( xi ) f " (
  
 xi  xi 1

(1)
Las incógnitas son las segundas derivadas al final del intervalo, se pueden
evaluar:
( xi  xi 1 ) f " (
6
  f
xi 1  xi

(2)

Ejemplo:
Ajustar los datos que se muestran con segmentarias cúbicas. Evaluar la función
en x=5
x f(x)
3.0 2.5
4.5 1.0
7.0 2.5
9.0 0.5

Solución
PARA EL PRIMER INTERVALO 3 < X <4.5
x f(x)
3.0 2.5
4.5 1.0
7.0 2.5

Para el primer nodo interior xi = 4.5


a) Ecuaciones para determinar las segundas derivadas
( xi  xi 1 ) f " (
6
  f
xi 1 
xi
( 4 .5  3) f " (3)  2( 7  3)
6
  2.5  1.0)  
7  4 .5 4

Debido a la condición segmentaria natural f " (3)  0 (nodo


extremo)
8 f " ( 4.5)  2.5 f " (7)  9.6

Ing. Héctor G. Bolaños Sosa Pag .11


Interpolación de curvas

X f(x)
3.0 2.5
4.5 1.0
7.0 2.5
9.0 0.5

Para el segundo nodo interior xi = 7


( xi  xi 1 ) f " (
6
  f
xi xi
1 
(7  4.5) f " ( 4.5)  2(9 
6 6
  0.5  2.5 
9  7 7  4

Debido a la condición segmentaria natural f " (9)  0 (nodo


extremo)
2.5 f " ( 4.5)  9 f " (7)  9.6
Las dos ecuaciones de segundas derivadas son:
8 f " ( 4.5)  2.5 f " (7)  9.6
2.5 f " ( 4.5)  9 f " (7)  9.6
Donde:
f " ( 4.5)  1.67909
f " (7 )  1.53308

b) La ecuación cubica del primer intervalo es:


f i '' ( x i 1 )
f i ( x) 
6( x i  xi 
 f ( x i 1 ) f " (
  
 xi  x i 1
 f ( xi ) f " (
  
 xi  x i 1

0 1.67909
f1 ( x )  ( 4 .5  x ) 3  ( x  3) 3 
6(4.5  3) 6(4.5  3)
 2.5 0( 4.5  3) 
   ( 4 .5  x )
 4 . 5  3 6 
 1 1.67909)(4.5  3) 
   ( x  3)
 4 . 5  3 6 
1.67909  2 .5 0( 4.5  3) 
f1 ( x)  ( 4 .5  x ) 3     ( 4 .5  x )
6( 4.5  3)  4 . 5  3 6 
 1 1.67909)(4.5  3) 
   ( x  3)
 4 .5  3 6 
f1 ( x)  0.186566( x  3) 3  1.6666667( 4.5  x)  0.246894( x  3)

PARA EL SEGUNDO INTERVALO 4.5 < X <7


f 2 ( x)  0.111939 (7  x) 3  0.102205( x  4.5) 3  0.299621(7  x)
 1.638783( x  4.5)

PARA EL TERCER INTERVALO 7 < X <9


f 3 ( x)  0.127757(9  x)3  1.761027(9  x)  0.25( x  7)

Evaluando para x = 5, que está en el segundo intervalo:

Ing. Héctor G. Bolaños Sosa Pag .12


Interpolación de curvas

f 2 (5)  0.111939 (7  5)3  0.102205(5  4.5) 3  0.299621(7  5)


 1.638783(5  4.5)
f 2 (5)  1.102886

Graficando:
>> x=[3 4.5 7 9];
>> y=[2.5 1 2.5 0.5];
>> xx=[3:0.1:4.5];
>> yy=0.186566*(xx-3).^3+1.666667.*(4.5-xx)+0.246894.*(xx-3);
>> xx2=[4.5:0.1:7];
>> yy2=0.111939*(7-xx2).^3-0.102205.*(xx2-4.5).^3-0.299621.*(7-
xx2)+1.638783*(xx2-4.5);
>> xx3=[7:0.1:9];
>> yy3=-0.127757+(9-xx3).^3+1.761027+(9-xx3)+0.25*(xx3-7);
>> plot(x,y,'o',xx,yy,xx2,yy2,xx3,yy3),grid
INTERPOLACION CUBICA SEGMENTARIA
3

2.5

Primer Intervalo
2
f(x)

1.5 Tercer Intervalo

Segundo Intervalo
1

0.5
3 4 5 6 7 8 9
x

5. USANDO FUNCIONES DE MATLAB PARA INTERPOLACIÓN


a) Spline
Efectúa una interpolación segmentaria cúbica
Sintaxis:
yy = spline(x,y,xx)
Donde:
X: especifica los puntos de los datos de la variable x
Y: valores de la función en x
XX: valores de los intervalos de la interpolación, o el valor a ser interpolado

Ejemplo:
Estimar el logaritmo natural de 2; teniendo los siguientes datos
Ln(1)= 0
Ln(4)=1.386294
Ln(6)=1.791759

Ing. Héctor G. Bolaños Sosa Pag .13


Interpolación de curvas

>> x=1:6; 1.8


INTERPOLACION SEGMENTARIA CUBICA

>> y=log(x); 1.6

>> xx=1:0.25:6; 1.4


>> yy=spline(x,y,xx); 1.2
>> plot(x,y,'o',xx,yy),grid
1

f(x)
0.8
>> yy=spline(x,y,2)
yy = 0.6

0.6931 0.4

0.2

0
1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6
x

Ejemplo:
Ajustar los datos que se muestran con segmentarias cuadráticas. Evaluar la
función en x=5
x f(x)
3.0 2.5
4.5 1.0
7.0 2.5
9.0 0.5

>> x=[3 4.5 7 9];


3
>> fx=[2.5 1 2.5 0.5];
>> xx=3:0.1:9;
>> yy=spline(x,fx,xx); 2.5
>> plot(x,fx,'o',xx,yy),grid
2
>> yy=spline(x,fx,5)
yy =
f(x)

1.1518518 1.5

valor interpolado

0.5
3 4 5 6 7 8 9
x

b) Interp1
Efectúa una interpolación de acuerdo a la siguiente tabla adjunta

Sintaxis
yi = interp1(x,Y,xi)
yi = interp1(x,Y,xi,metodo)

Descripción:
yi = interp1(x,Y,xi)
Retorna un vector yi conteniendo los elementos correspondientes a los
elementos de xi y determinados con la interpolación de los vectores x e Y

yi = interp1(x,Y,xi,metodo)
De manera similar que al anterior, con el adicional que se puede definir un
método
‘linear’: usa interpolación lineal (por defecto)

Ing. Héctor G. Bolaños Sosa Pag .14


Interpolación de curvas

‘spline’: usa interpolación segmentaria cubica

Ejemplo:
Estimar el logaritmo natural de 2; tendiendo como datos
Ln(1)= 0
Ln(4)=1.386294
Ln(6)=1.791759

>> x=1:6; 1.8


INTERPOLACION LINEAL

>> y=log(x); 1.6

>> xx=1:0.25:6; 1.4

>> yy=interp1(x,y,xx); 1.2

>> plot(x,y,'o',xx,yy),grid 1

f(x)
0.8

>> yy=interp1(x,y,2) 0.6


yy = 0.4
0.69314718055995 0.2
valor interpolado

0
1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6
x

Ejemplo:
Ajustar los datos que se muestran con segmentarias. Evaluar la función en x=5
X f(x)
3.0 2.5
4.5 1.0
7.0 2.5
9.0 0.5
Solución lineal:
>> x=[3 4.5 7 9]; 2.5
INTERPOLACION LINEAL

>> fx=[2.5 1 2.5 0.5];


>> xx=3:0.1:9;
>> yy=interp1(x,fx,xx); 2

>> plot(x,fx,'o',xx,yy),grid

>> yy=interp1(x,fx,5)
f(x)

1.5

yy =
1.30
1
valor interpolado

0.5
3 4 5 6 7 8 9
x

Solución cúbica:

Ing. Héctor G. Bolaños Sosa Pag .15


Interpolación de curvas

>> x=[3 4.5 7 9]; 3


INTERPOLACION CUBICA

>> fx=[2.5 1 2.5 0.5];


>> xx=3:0.1:9;
>> yy1=interp1(x,fx,xx,'spline'); 2.5

>> plot(x,fx,'o',xx,yy1),grid
>> yy1=interp1(x,fx,5,'spline') 2

f(x)
yy1 = 1.5

1.1519
1

0.5
3 4 5 6 7 8 9
x

c) Usando la herramienta Toolbox


En tipo de ajuste escoger “interpolant”

Ing. Héctor G. Bolaños Sosa Pag .16


Interpolación de curvas

Ing. Héctor G. Bolaños Sosa Pag .17

También podría gustarte