Métodos Numéricos – Cap 5: Interpolación y Aproximación polinomial

Anuncio
Métodos Numéricos – Cap 5: Interpolación y Aproximación polinomial
Aproximación funcional
e Interpolación
Representación mediante funciones analíticas sencillas de:
• Información discreta. (Resultante de muestreos).
1/12
Aproximación de una función por
polinomios de Taylor
f ( k )( x0 )
( x − x0 )k
k!
k =0
n
f ( x ) ≈ pn ( x ) =
∑
• Funciones complicadas.
Siendo yk = f(xk) una cierta función de la que no se conoce una
fórmula explícita, o bien es muy complicada para evaluarla,
derivarla, integrarla, hallarle ceros, etc.
Si la información se representa mediante un polinomio pn(x) en
un intervalo dado, nos referimos a:
• La precisión aumenta cuando aumentan la cantidad de
términos (n),
• Necesidad de conocer f y las n derivadas de f en x0.
• La aproximación es mejor en valores cercanos a x0.
• Necesidad de restringir el valor |x-x0|.
Aproximación polinomial o
Interpolación polinomial
Interpolación
Dados n +1 puntos en R2: (x0,y0),(x1,y1),...,(xn,yn), con yi = f(xi)
(siendo f(x) no necesariamente conocida) en los cuales xo,x1,...,xn
son números distintos que se distribuyen en el intervalo [xo,xn].
se quiere encontrar un polinomio pn(x) de grado ≤ n tal que:
pn(xk)=yk, k=0,1,...,n
Polinomio interpolante
Dados n +1 puntos (x0,y0),(x1,y1),...,(xn,yn), con valores
x0,x1,...,xn distintos, existe un único polinomio de grado
menor o igual que n que pasa por esos puntos
Si para estimar un valor y, se emplea el polinomio pn(x) de grado ≤ n
que pasa por los puntos dados, la aproximación se denomina
interpolación polinomial (lineal, cuando sólo se emplean dos
puntos) y a pn (x) se lo denomina polinomio de interpolación ó
polinomio interpolante.
Para un valor x ≠ de los dados
Si x0< x < xn ⇒ y será un valor interpolado,
Si x < x0 ó x > xn ⇒ y será un valor extrapolado.
Última actualización: 24/09/2013
Métodos Numéricos – Cap 5: Interpolación y Aproximación polinomial
Existencia del polinomio único
Si en los n +1 puntos (x0,y0),(x1,y1),...,(xn,yn), los valores xo,x1,...,xn
son números distintos, existe un único polinomio
Polinomio único
El sistema anterior, de n +1 ecuaciones lineales en las n +1
incógnitas a0, a1 ,a2,...,an , escrito en forma matricial es
pn ( x) = a0 + a1x + a2 x2 + L + an xn
1 x0 x02 L xn0   a0 


2
n 
1 x1 x1 L x1   a1  =
M M
M
M  M 


2
n 
an 
1 xn xn L xn  {

14442444
3
de grado menor o igual que n tal que pn(xk) = yk, con k = 0,1,2,...,n
⇒ existen números reales únicos a0 ,a1 ,a2,...,an tales que:
 a0

 a0

 a0
M

 a0
+ a1x0 + a 2 x0 2 + L + an x0 n = y 0
+ a1x1 + a2 x12 + L + an x1n = y1
+ a1x2 + a2 x2 2 + L + an x2n = y 2
A
b
+ a1xn + a 2 xn 2 + L + an xn n = y n
1 x 0 x 20   1
1 x 0
x0
x 02 
x 20 






A = 1 x1 x12  = 0 x1 − x 0 x12 − x 02  = ( x1 − x 0 )( x 2 − x 0 )0 1 x1 + x 0  =






2
2
2
1 x 2 x 2  0 x 2 − x 0 x 2 − x 0 
0 1 x 2 + x 0 
1 x 0
x 20 


= ( x1 − x 0 )( x 2 − x 0 )0 1 x1 + x 0 


0 0 x 2 − x1 
det( A ) =
X
 y0 
y 
 1
 M
 
yn 
{
Si det(A) ≠ 0 el sistema tiene solución única.
Forma de Lagrange
del polinomio interpolante
Determinante de la matriz
En general
2/12
∏
1≤ i< j≤ n
⇒
(x − x )
i
j
det( A ) = ( x1 − x 0 )( x 2 − x 0 )( x 2 − x1 )
Determinante de Vandermonde
Si xi ≠ xj entonces det(A) ≠ 0 , y por tanto el sistema en consideración tiene
solución única.
Por lo general, la matriz de coeficientes de este sistema resulta mal
condicionada si dos abscisas están relativamente cerca.
En interpolación lineal, la recta que pasa por los puntos (x0,y0), (x1,y1),
posee una pendiente m=(y1-y0)/(x1-x0) , siendo la ecuación de la recta
y=m(x-x0)+y0
y1 − y 0
(x − x0 ) + y 0 = p( x )
x1 − x0
x − x0
Reordenando los términos: p( x ) = y 0 + ( y 1 − y 0 )
x1 − x0
Es decir:
y =
Evaluando p(x) en los puntos dados x0 y x1: y 0 = y 0 + ( y1 − y 0 ) * 0 = p( x0 )
y 1 = y 0 + ( y 1 − y 0 ) * 1= p( x1 )
Lagrange propone un polinomio equivalente:
x − x1
x − x0
+ y1
= p1( x )
y = y0
Coeficientes
x0 − x1
x1 − x0
L1,0
L1,1
de Lagrange
L1,0(x0)=1, L1,0(x1)=0
L1,1(x0)=0, L1,1(x1)=1
Última actualización: 24/09/2013
Métodos Numéricos – Cap 5: Interpolación y Aproximación polinomial
En general
Para tres puntos: x0, x1, x2
p2 ( x ) = y 0
(x − x1 )(x − x 2 ) + y (x − x 0 )(x − x 2 ) + y (x − x 0 )(x − x1 )
(x 0 − x1 )(x 0 − x 2 ) 1 (x1 − x 0 )(x1 − x 2 ) 2 (x 2 − x 0 )(x 2 − x1 )
(x − x1 )(x − x 2 )
L0 ( x ) =
(x 0 − x1 )(x0 − x 2 )
(x − x0 )(x − x 2 )
L1( x ) =
(x1 − x0 )(x1 − x 2 )
(x − x0 )(x − x1 )
L2 ( x ) =
(x 2 − x0 )(x 2 − x1 )
Los polinomios L0, L1, L2, se
denominan Polinomios
fundamentales de Lagrange
n
pn ( x ) = y 0L0 ( x ) + y 1L1( x ) + L + y n Ln ( x ) =
Li ( x ) =
⇒ x0 = -π/2, x1= 0, x2 = π/2
Para n +1 puntos, los polinomios fundamentales de Lagrange (Li)
son de grado n.
E ( x ) = f ( x ) − pn ( x ) ≈
π
2
x2
i
k
i =0
( x − x0 )( x − x1 ) L ( x − x n ) (n + 1)
f
(ξ (x ))
(n + 1) !
donde ξ (x ) es un número que depende de x, y ξ (x ) ∈ [x 0 , x n ]
.
1
(0,1)
1
π 
π 
f   = cos   =
= .7071
4
4
2
 
 
0.5
π 
f ( x 2 ) = y 2 = cos   = 0
2
.
.
(−π / 2 , 0)
0
π/4
(π / 2 , 0)
π 
π

π2
 x +  x −  x 2 −
2 
2

4 = 1 − 4 x2
=
2
π
π
π
π2
 

−
  − 
4
 2  2 
2
4 π 
1 3
π 
p2   = 1 − 2   = 1 − = = .75
π 4
4 4
4
cos(x)
-0.5
4
n
∑ L ( x ) = 1 para cada x
Cota de error
p2 ( x ) = y 0L0 ( x ) + y 1L1( x ) + y 2L2 ( x ) = 0 * L0 ( x ) + 1 * L1( x ) + 0 * L2 ( x )
p2 ( x ) = 1 −
con i = 0, 1,..., n
Resultados
Aproximar la función f(x) = cos(x) en el intervalo [-π/2, π/2]
mediante un polinomio de interpolación de Lagrange de grado dos.
L1( x ) =
i
k ≠i
Ejemplo 1
(x − x0 )(x − x2 ) =
(x1 − x0 )(x1 − x2 )
i
(x − x0 )(x − x1 )L (x − x i −1 )(x − xi +1 )L (x − xn ) = n (x − xk ) ,
(xi − x0 )(xi − x1 )L (xi − xi −1 )(xi − xi +1 )L (xi − xn ) ∏
k = 0 (x i − x k )
1 si k = i
Li (x k ) = 
0 si k ≠ i
f ( x1 ) = y 1 = cos (0 ) = 1,
∑ y L (x)
i =0
El polinomio p2 ( x ) = y 0L0 ( x ) + y1L1( x ) + y 2L2 ( x ) se denomina
Polinomio de interpolación de Lagrange o
Forma de Lagrange del polinomio interpolante para los datos
dados.
 π
f ( x0 ) = y 0 = cos  −  = 0,
 2
3/12
1-(4/pi2)*x2
-1
-3
-2
-1
0
1
2
3
x
π 
π 
π 
E   = f   − p2   = 0.7071 − 0.75 = 0.0429
4
4
4
Última actualización: 24/09/2013
Métodos Numéricos – Cap 5: Interpolación y Aproximación polinomial
Ejercicio 2
Cota de Error
π
π


 x + (x − 0 ) x − 
( x − x 0 )( x − x1 )( x − x 2 ) ' ' '
2
2  '''


E( x ) =
f (ξ (x )) =
f (ξ (x ))
3!
6
f ( x ) = cos( x ),
f ' ( x ) = −sen( x ),
f ' ' ( x ) = − cos( x ),
f ' ' ' ( x ) = sen( x )

π2 
 π π
 para todo x ∈  − , 
x  x 2 −
4
 2 2


para x =
π
 π  1 π  π
−
E  ≤

4
 4  6 4  16
π
4
2
,
2
x − x1
x − x0
+ f ( x1 )
x0 − x1
x1 − x0

π  3π
 =

 24  16



π
 =
= .242
 128
3
p1( x ) = y 2L2 ( x ) + y 3L3 ( x ) = y 2
x − x3
x − x2
+ y3
x 2 − x3
x3 − x2
x − 2.6
x − 2.4
+ 0.4813306
=
2.4 − 2.6
2.6 − 2.4
= 0.859421 - 0.145420·x
= 0.5104147
( x − x1 )( x − x2 )( x − x3 )( x − x4 ) + y ( x − x0 )( x − x2 )( x − x3 )( x − x4 ) +
( x0 − x1 )( x0 − x2 )( x0 − x3 )( x0 − x4 ) 1 ( x1 − x0 )( x1 − x2 )( x1 − x3 )( x1 − x4 )
( x − x0 )( x − x1 )( x − x3 )( x − x4 ) + y ( x − x0 )( x − x1 )( x − x2 )( x − x4 ) +
+ y2
( x2 − x0 )( x2 − x1 )( x2 − x3 )( x2 − x4 ) 3 ( x3 − x0 )( x3 − x1 )( x3 − x2 )( x3 − x4 )
( x − x0 )( x − x1 )( x − x2 )( x − x3 )
+ y4
( x4 − x0 )( x4 − x1 )( x4 − x2 )( x4 − x3 )
p4 ( x ) = y 0
f(2.6) = .4813306 y f(2.8) = .4359160.
p1( 2.5 ) = 0.4958727 ≈ f ( 2.5 )
2
Ej. Polinomio interpolante de Lagrange
(2.0 , 0.5103757)
1 (2.2 , 0.5207843)
2 (2.4 , 0.5104147)
3 (2.6 , 0.4813306)
4 (2.8 , 0.4359160)
Si f(2.0) = .5103757, f(2.2) = .5207843, f(2.4) = .5104147,
p1( x ) = y 0L0 ( x ) + y 1L1( x ) = f ( x0 )
Error real = 0.0429
0
Use los polinomios interpolantes de Lagrange de grados uno, dos y tres,
más apropiados, para aproximar f(2.5).
El polinomio de interpolación de Lagrange de grado uno, más apropiado,
es el que se obtiene tomando los nodos x0 = 2.4 y x1 = 2.6
 π π
f ' ' ' (ξ (x )) = sen(ξ (x )) ≤ 1 para toda ξ (x ) ∈  − , 
 2 2
1
E( x ) ≤
6
4/12
Para p2(x), hay dos polinomios apropiados,
el que pasa por los nodos x0=2.2, x1=2.4, x2=2.6 y
el que pasa por los nodos x0=2.4, x1=2.6, x2=2.8
Polinomio interpolante de Newton
El polinomio pn(x) de grado menor o igual que n que interpola a f en los
datos dados, puede expresarse en la forma
pn ( x ) = b0 + b1( x − x0 ) + b2 ( x − x0 )(x − x1 ) + L + bn ( x − x0 )( x − x1 )L( x − xn −1 )
Para determinar los coeficientes b0, b1,..., bn
Si pn ( xk ) = y k = f ( xk ), k = 0,1,L, n
⇒
pn ( x0 ) = b0 = f ( x0 )
b0 = f ( x0 )
f ( x1 ) − f ( x0 )
pn ( x1 ) = b0 + b1( x1 − x0 ) = f ( x1 )
⇒
b1 =
x1 − x0
pn ( x2 ) = b0 + b1( x2 − x0 ) + b2 ( x2 − x0 )( x2 − x1 ) = f ( x2 ) ⇒
f ( x2 ) − f ( x1 ) f ( x1 ) − f ( x0 )
f ( x1 ) − f ( x0 )
f ( x2 ) − f ( x0 ) −
( x2 − x0 )
−
x1 − x0
x2 − x1
x1 − x0
⇒ b2 =
=
( x2 − x0 )( x2 − x1 )
x2 − x0
Última actualización: 24/09/2013
Métodos Numéricos – Cap 5: Interpolación y Aproximación polinomial
Diferencia dividida hacia adelante
(progresiva) de Newton.
a) La diferencia dividida cero de f con respecto a xk es
f [x k ] = f (x k ), k = 0,1,L,n
f [x k +1 ]− f [x k ]
f [x k , x k +1 ] =
, k = 0,1,L,n − 1
x k +1 − x k
c) La diferencia dividida dos de f con respecto a xk, xk+1 y xk+2 es
f [x k +1, x k +2 ]− f [x k , x k +1 ]
, k = 0,1,L,n − 2
xk +2 − xk
xk
Dif. div. 0
f[xk]=f(xk)=yk
0
x0
f[x0] = b0
1
x1
f[x1]
Dif. div. 1
f[xk,xk+1]
Dif. div. 2
f[xk,xk+1,xk+2]
...
Dif. div. n
f[x0,...,xn]
f[x0,x1,x2] = b2
f[x1,x2]
x2
f[x2]
3
X3
f[x3]
...
...
...
...
Xn-1
f[xn-1]
n
xn
f[xn] =b0
f[x0,...,xn] = bn
...
...
...
f[xn-2,xn-1,xn] = b2
f[xn-1,xn] = b1
k = 0 ,1,L , n − i
pn ( x ) = f [x0 ] + f [x0 , x1 ](x − x0 ) + f [x 0 , x1 , x 2 ](x − x 0 )(x − x1 ) + L
+ f [x0 , x1 ,L , x n ](x − x0 )(x − x1 )L (x − x n −1 )
Fórmula de diferencia dividida (regresiva)
El polinomio interpolante de Newton es de la forma:
Se puede demostrar que si existe una función f definida sobre el
intervalo [x0, xn], n veces diferenciable, entonces existe ξ ∈ [x0, xn] tal
que:
f ( n )( ξ )
f [x0 , x1 , L , x n ] =
n!
Considerando la fórmula del error de Lagrange
f[x1,x2,x3]
f[x2,x3]
n-1
f [x k +1 , x k +2 ,L , x k + i ] − f [x k , x k +1 ,L , x k + i −1 ]
,
xk +i − xk
Estimación del error para el polinomio
interpolante de Newton
f[x0,x1] = b1
2
f [x k , x k +1 ,L , x k + i ] =
pn ( x ) = f [x n ] + f [x n −1 , x n ](x − x n ) + f [x n −2 , x n −1 , x n ](x − x n )(x − x n −1 ) + L
+ f [x 0 , x1 ,L , x n ](x − x n )(x − x n −1 )L (x − x1 )
Esquema de cálculo
k
d) En general, se definen las n-i+1 diferencias divididas i
(progresivas) de f con respecto a xk, xk+1,..., xk+i como:
y el polinomio interpolante (progresivo) es de la forma:
b) La diferencia dividida uno de f con respecto a xk y xk+1 es
f [x k , x k +1, x k + 2 ] =
5/12
( x − x0 )( x − x1 ) L ( x − xn ) (n +1 )
f
(ξ (x ))
(n + 1) !
donde ξ (x ) es un número que depende de x, y ξ (x ) ∈ [x0 , xn ]
E ( x ) = f ( x ) − pn ( x ) ≈
usando la forma de Newton del polinomio interpolante de grado menor
o igual que n + 1 para f en los nodos x0,x1,...,xn, x , tenemos que
E ( x ) = f ( x ) − pn ( x ) ≈ f [ x0 , x1,...x n , x ]( x − x0 )( x − x1 ) L ( x − x n )
Última actualización: 24/09/2013
Métodos Numéricos – Cap 5: Interpolación y Aproximación polinomial
xk
f(x)=f[xk]
Dif. Div. 1
Dif. Div. 2 Dif. Div. 3
Dif. Div. 4
2.0 0.5103757
.052043
2.2 0.5207843
-.2597275
-.051848
2.4 0.5104147
.04299367
-.2339313
-.1454205
2.6 0.4813306
.008341125
6/12
Aproximaciones regresivas
p1’(x) = f[xn]+f[xn,xn-1](x-xn) = 0.4359160 -.227073 (x-2.8)
p2’(x) = p1(x)+ f[xn,xn-1,xn-2](x-x0)(x-xn-1) = p1(x) -.2041313(x-2.8)(x-2.6)
p3’(x) = p2(x)+ f[x0,xn-1,xn-2,xn-3](x-x0)(x-xn-1)(x-xn-2) =
= p2(x)+ .04966667(x-2.8)(x-2.6)(x-2.4)
p4’(x) = p3(x)+ .008341125 (x-2.8)(x-2.6)(x-2.4)(x-2.2)
.04966667
-.2041313
-.227073
2.8 0.4359160
Aproximaciones progresivas
p1(x) = f[x0]+f[x0,x1](x-x0) = 0.5103757+.052043(x-2.0) ⇒ f(2.1) = .51558
p2(x) = p1(x)+ f[x0,x1,x2](x-x0)(x-x1) = p1(x) -.2597275 (x-2.0)(x-2.2)
p3(x) = p2(x)+ f[x0,x1,x2,x3](x-x0)(x-x1)(x-x2) =
= p2(x)+ .04299367 (x-2.0)(x-2.2)(x-2.4)
p4(x) = p3(x)+ .008341125 (x-2.0)(x-2.2)(x-2.4)(x-2.6)
Ej. Polinomios interpolantes de Newton
Aproximaciones progresivas expresadas en forma estandar
p1(x) = 0.5103757+0.052043(x-2.0) = 0.0520429·x + 0.406289
0.54
P1(x)
P1'(x)
P2'(x)
0.52
P3'(x)
0.5
0.48
P3(x)
0.46
P2(x)
0.44
0.42
2
2.2
2.4
2.6
2.8
Desventajas de los
polinomios interpolantes
p2(x) = p1(x) -0.2597275 (x-2.0)(x-2.2)
= 0.5103757+0.052043(x-2.0) -0.2597275 (x-2.0)(x-2.2) =
= 0.0520429·x + 0.406289 - 0.259727·x2 + 1.09085·x - 1.14279 =
= - 0.259727·x2 + 1.14289·x - 0.736500
• A medida que aumentan la cantidad de puntos aumenta el
grado del polinomio
p3(x) = p2(x)+ .04299367 (x-2.0)(x-2.2)(x-2.4) =
= 0.5103757+.052043(x-2.0) -0.2597275 (x-2.0)(x-2.2) +
+ 0.04299367 (x-2.0)(x-2.2)(x-2.4) =
= 0.0429935·x3 - 0.543484·x2 + 1.76544·x - 1.19052
• Un polinomio de grado muy alto puede tener oscilaciones muy
marcadas, por lo que puede no ser apto para interpolar o
representar una función
p4(x) = p3(x)+ 0.008341125 (x-2.0)(x-2.2)(x-2.4)(x-2.6) =
= 0.5103757+0.052043(x-2.0) -.2597275 (x-2.0)(x-2.2) +
+ 0.04299367 (x-2.0)(x-2.2)(x-2.4) +
+ 0.008341125 (x-2.0)(x-2.2)(x-2.4)(x-2.6) =
= 0.00834111·x4 - 0.0337447·x3 - 0.279571·x2 + 1.36333·x - 0.961508
Esto sugiere que se intente la interpolación localmente, es decir,
por sub-intervalos.
Última actualización: 24/09/2013
Métodos Numéricos – Cap 5: Interpolación y Aproximación polinomial
Interpolación por segmentos
El proceso de aproximación sobre subintervalos se conoce como interpolación
segmentaria o por segmentos.
interpola entre dos puntos consecutivos con un
polinomio lineal
• La interpolación segmentaria cuadrática
interpola entre dos puntos consecutivos con un
polinomio cuadrático
• La interpolación segmentaria cúbica
interpola entre dos puntos consecutivos con un
polinomio cúbico
p3( k ) ( x ) ≡ pk ( x ) = ak + bk ( x − x k ) + c k ( x − x k )2 + d k ( x − x k )3
con k = 0,1,...,n-1
El conjunto de los distintos polinomios
constituye un Trazador
Interpolación segmentaria cúbica
(spline cúbico )
 pk ( xk ) = f ( xk ), k = 0,1,..., n − 1

pn −1( xn ) = f ( xn )

Condiciones de interpolación. (n +1 ecuaciones)
pk ( xk +1 ) = pk +1( xk +1 ), k = 0,1,..., n − 2
Condiciones de continuidad en los nodos interiores. (n -1 ecuaciones)
iii )
Trazador cúbico
Dados n puntos [x0,xn], un trazador cúbico es un conjunto de n
polinomios cúbicos pk(x), cada uno definido en el intervalo [xk,xk+1] .
Las condiciones que deben satisfacer tales polinomios son:
ii )
Trazador cúbico
Para asegurar que las derivadas m-ésimas sean continuas en
los nodos, se debe emplear un trazador de un grado de, al
menos, m + 1.
En la práctica se usan con más frecuencia polinomios de tercer
grado o trazadores cúbicos que aseguran primera y segunda
derivadas continuas.
Son n polinomios de grado menor o igual que tres y cada uno
con cuatro coeficientes incógnitas, así que tenemos un total
de 4n incógnitas por determinar (ak,bk,ck,dk).
• La interpolación segmentaria lineal
i)
7/12
p 'k ( xk +1 ) = p 'k +1( xk +1 ), k = 0,1,..., n − 2
T(x) = pk(x) para x∈[xk,xk+1] y pk(x), k = 0,1,...,n-1 cumple las
condiciones i) a v). Si el Trazador cúbico satisface las
condiciones v),a), se llama natural, y si satisface las condiciones
v), b) se llama de frontera sujeta.
Condiciones de derivabilidad en los nodos interiores. (n -1 ecuaciones)
iv )
p ''k ( xk +1 ) = p ''k +1( xk +1 ), k = 0,1,..., n − 2
Condiciones de continuidad de la primera derivada en los nodos interiores:
se conserva la concavidad en la vecindad del nodo interior, a no ser que la
segunda derivada sea cero en el nodo interior. (n -1 ecuaciones).
- Hasta aquí tenemos n + 1 + 3(n-1) = 4n-2 condiciones.
Se satisface uno de los siguientes pares de condiciones de frontera:
v ) a)
p ''0 ( x0 ) = 0
y
p ''k +1( xk +1 ) = 0
b)
p '0 ( x0 ) = f '( x0 )
y
p 'n −1( xn ) = f '( xn )
Última actualización: 24/09/2013
Métodos Numéricos – Cap 5: Interpolación y Aproximación polinomial
Si p3( k ) ( x ) ≡ pk ( x ) = ak + bk ( x − xk ) + ck ( x − xk )2 + dk ( x − xk )3 , k = 0,1,..., n - 1
Por i ) pk ( x k ) = f ( x k ) = ak , k = 0,1,..., n − 1 y pn −1( x n ) = f ( x n )
Por ii ) pk ( xk +1 ) = pk +1( x k +1 ) ⇒
ak + bk ( xk +1 − x k ) + ck ( x k +1 − x k )2 + d k ( xk +1 − xk )3 = ak +1
si hk = x k +1 − x k ⇒
Por iii )
ak + bk hk + c k hk2 + d k hk3 = ak +1
p' k ( xk +1 ) = p' k +1 ( x k +1 ) ⇒ bk + 2c k hk + 3d k hk2 = bk +1
Por iv ) p' 'k ( x k +1 ) = p' 'k +1 ( x k +1 ) = 2c k + 6dk hk = 2c k +1
⇒ c k +1 = c k + 3dk hk ⇒ dk =
(1)
(2)
(3)
c k +1 − c k
3hk
(4)
(6)
Remplazando en cada punto se determina un sistema de ecuaciones
AX=B, con:
L
0
0
0
0 
1
h 2 h + h

h
0
0
(
)
0
1
1
 0

A =0
O
M 


hn −2 2 (hn −2 + hn−1 ) hn−1 
M
 0
L
L 0
0
1 
0




3
3

(a2 − a1) − (a1 − a0 ) 
h1
h0




B=
M

 3

3
(an − an−1 ) − (an−1 − an−2 )

h
h
n− 2
 n−1



0
 c0 
c 
 1
X= M 
 
c n −1
 c n 
La solución de este sistema es:
Ejemplo
k
xk
f(Xk)=3xex-2ex
hk=xk+1- xk
0
1.00
2.718282
0.05
1
1.05
3.286299
0.02
2
1.07
3.527609
0.03
3
1.10
3.905416
Adoptando p0’’(x0)=0 y p2’’(x3)=0 (condición de frontera) entonces c0=0 y
c3=0 , así que debemos resolver el siguiente sistema:
c0


.05
c

0 + 2(.07)c1 + .02c 2



.02c1 + 2( .05)c2 + .03c 3


c3
Por
8/12
=0
3
3
=
( 3.527609 - 3.286299) ( 3.286299 - 2.718282)
.02
.05
3
3
=
(3.905416 - 3.527609) (3 527609 - 3.286299)
.03
.02
=0
c0 = 0, c1=13.22529, c2= 13.19694, c3= 0
a −a
h
bk = k +1 k − k (2c k + c k +1 ) (5)
hk
3
b0 =11.13992, b1 =11.80118, b2 = 12.32963
dk =
c k +1 − c k
3hk
d0 =88.16863
(4)
, d1 = −.4725490, d2 = −146.6327
T(x)→ pk (x) =ak +bk (x - xk )+ck (x -xk )2 +dk (x - xk )3
p0(x) = 2.718282 + 11.13992(x -1.00) + 0(x -1.00)2 +88.16863(x-1.00)3
p1(x) = 3.286299 + 11.80118 (x -1.05) + 13.22529(x-1.05)2 -.4725490(x-1.05)3
p2(x) = 3.527609 + 12.32963(x -1.07) + 13.19694(x-1.07)2 -146.6327(x-1.07 )3
f(1.03)≈ T(1.03) = p0(1.03)=
= 2.718282+11.13992103 (1.03-1.00)+88.16863(1.03 –1.00)3
= 3.054860
Última actualización: 24/09/2013
Métodos Numéricos – Cap 5: Interpolación y Aproximación polinomial
9/12
Ventajas y desventajas
del trazador cúbico
P0 (x)= 88.16863x3 -264.50589x2 + 275.64581x -96.590268
P1 (x)= - 0.472549x3 + 14.7138193500x2 - 17.5348848174x + 6.02297676112
P2 (x)= - 146.6327·x3 + 483.887907000·x2 - 519.551156290·x + 185.075444212
• El algoritmo consiste en resolver un sistema de ecuaciones
• El sistema de ecuaciones es tridiagonal, con lo cual se puede
simplificar la resolución
• Se pueden obtener soluciones con menos oscilaciones cuando
hay muchos puntos
• Es adecuado para describir formas eligiendo los puntos
adecuados
4
3.8
3.6
3.4
3.2
3
p1
2.8
• Para realizar una interpolación es necesario identificar el
polinomio correspondiente
• Cualquier cálculo aplicado al trazador tiene que repetirse para
cada polinomio, lo cual puede ser complicado cuando hay
muchos puntos
2.6
p2
p0
2.4
0.95
1
1.05
1.1
n
s(a0 , a1, L am ) =
Ajuste de un polinomio por mínimos
cuadrados (regresión polinomial)
o
∂S
=
∂a0
∂S
=
∂a1
∑ (pm (xk ) − y k )
2
k =0
∂S
=
∂a2
Este criterio se conoce como mínimos cuadrados, y el método para
obtener los polinomios que mejor se ajustan según mínimos
cuadrados se llama Regresión polinomial.
Encontrar pm ( x ) = a0 + a1x + a2 x 2 + L am x m ,
n
tal que s(a0 , a1, L am ) =
∑ (a
0
k =0
sea mínima
∂S
=
∂a j
m
+ a1x k + a2 x k + L am x k − y k
m
)
2
n
∑ 2(a
0
2
m
2
m
2
m
2
m
+ a1x k + a2 x k + L am x k − y k ) = 0
k =0
n
∑ 2(a
0
+ a1x k + a2 x k + L am x k − y k )( x k ) = 0
k =0
n
∑ 2(a
0
+ a1x k + a2 x k + L am x k − y k )( x k2 ) = 0
k =0
M
con m < n
2
2
+ a1x k + a2 x k + L am x k − y k
k =0
1
n
0
Una condición necesaria para la existencia de un mínimo relativo de
la función S es que las derivadas parciales con respecto a aj , con
j=0,1,...,m, sean cero, ⇒
Encontrar el polinomio que "mejor se ajuste" a los datos en el
sentido de que la distancia entre los puntos dados y los obtenidos
mediante un polinomio sea mínima.
 n
2
 ∑ (pm (xk ) − y k )2 


 k =0

∑ (a
)
2
n
∑ 2(a
0
+ a1x k + a2 x k + L am x k − y k )( x kj ) = 0
k =0
n
M
∂S
=
∂am
Si anulamos el
2y
∑a
0
n
∑ 2(a
0
2
m
+ a1x k + a2 x k + L am x k − y k )( x km ) = 0
= (n + 1)a0
k =0
k =0
Última actualización: 24/09/2013
Métodos Numéricos – Cap 5: Interpolación y Aproximación polinomial
En el caso particular en que m = 1,
p(x) = a 0 + a1 x1 es la recta de
mínimos cuadrados donde a0 y a1
se obtienen resolviendo el sistema
lineal de dos ecuaciones con dos
incógnitas.
Obtenemos un sistema de m+1 ecuaciones lineales con m+1
incógnitas a0, a1,...,am denominado Sistema de ecuaciones
normales.
n

 n

 n m
 (n + 1)a0 +  ∑ x k a1 + L +  ∑ x k am = ∑ y k
k =0
 k =0 
 k =0



n
  n

 n 2
 n m +1 
  ∑ x k a0 +  ∑ x k a1 + L +  ∑ x k am = ∑ x k y k
k =0
 k =0 
 k =0

  k = 0 
M

n
 n

 n

 n

  ∑ x kj a0 +  ∑ x1k + j a1 + L +  ∑ x mk + j am = ∑ x kj y k
  k =0 
k =0
 k =0

 k =0


M
n
 n m 
 n 1+m 
 n 2m 
m
 ∑ x k a0 +  ∑ x k a1 + L +  ∑ x k am = ∑ x k y k
 k = 0
k =0

 k =0

 k =0

n
∑(a ∑ x
i
i =0
i+j
k
k =0
n
)=
∑x y
j
k
k =0
 n 0 
 n 1
 ∑ x k a0 +  ∑ x k a1 =
k =0
 k =0 
1
4
24
3
 n +1
 n 1 
 n 2
 ∑ x k a0 +  ∑ x k a1 =
 k =0 
 k = 0 
n
∑y
k
k =0
n
∑x y
k
k
k =0
Medir el error es estimar la bondad del ajuste según mínimos
cuadrados. Para N=cantidad de puntos (n+1):
En general
m
10/12
k
2
n
i ) Error E =
con j = 0,1,..., m
∑ ( p (x ) − y )
m
k
k
o
k =0
2
n
∑ (p (x ) − y )
m
k
k =0
ii) Error Medio Cuadrático ERMS =
N
k
o
2
n
∑ (p (x ) − y )
m
2
iii) Varianza σ =
Ejemplo
a) p1(x) = a0 + a1x
b) P2(x) = b0 + b1x + b2x2
k
k
k =0
N − m −1
a) p1(x) = a0 + a1x
 3 0 
 3 1
 ∑ xk a0 +  ∑ x k a1 =
 k = 0 
 k =0 
 3
3



 x1 a +  x 2 a =
∑
∑
k
0
k
1
 k = 0 
 k =0 
3
∑y
k
k =0
3
∑x
k =0
k
yk
La solución al sistema es:
a0 = -17/26 ≈ 0.654
a1 = 6/13 ≈ 0.461
b) P2(x) = b0 + b1x + b2x2
3
 3 0 
 3 1
 3 2
 ∑ xk b0 +  ∑ xk b1 +  ∑ xk b2 = ∑ y k
k =0
 k =0 
 k =0 
 k = 0 
3
 3 1 
 3 2
 3 3
 ∑ xk b0 +  ∑ xk b1 +  ∑ xk b2 = ∑ xk y k
k =0
 k =0 
 k =0 
 k = 0 
3
 3 2 
 3 3
 3 4
2
 ∑ xk b0 +  ∑ xk b1 +  ∑ xk b2 = ∑ xk y k
k =0
 k =0 
 k =0 
 k = 0 
La solución al sistema es:
b0 = -15/13
b1 = 101/78
b2 = -1/6
Última actualización: 24/09/2013
Métodos Numéricos – Cap 5: Interpolación y Aproximación polinomial
11/12
Graficamente
4
3
2
2
p2(x)=-0.1667*x + 1.2949*x -1.1538
1
2
3
a)
E =
∑ ( p (x ) − y )
1
k
k
= (− .346 ) + (− .269 ) + (1.27 ) + (− .65 ) = 2.23
2
2
2
-1
2
3
∑ (p1(xk ) − y k )
k =0
E RMS =
=
4
p1(x)=0.4615*x-0.6538
0
2
k =0
2.23
= .747,
4
σ2 =
-2
2.23
= 1.115
2
3
2
p3(x)=-0.2667*x +1.8333*x -2.1*x-1.00008
-3
-4
2
3
∑ (p (x ) − y )
2
3
b) E =
∑ (p (x ) − y )
2
k
k
2
= 1.23 y E RMS =
k
σ 2 = 1.23
= .555 ,
4
k =0
-5
k
k =0
-6
-1
Variantes de la regresión lineal
0
1
2
3
4
5
6
Variantes de la regresión lineal
La función potencial
y=c·xa se puede trasformar en log y=a*log x + log c
Usando nuevas variables x’ =log x e y’ =log y
obtenemos la relación lineal y’ =ax’+b, donde b=log c ⇒ c=10^b
La función exponencial
y=c·eax , se puede transformar en ln y=ax+ln c
Usando nuevas variables x’ = x e y’ =ln y
obtenemos la relación lineal y’ =ax’+b, donde b=ln c
Ejemplo:
Ejemplo:
x
10
20
30
40
50
60
70
80
x
12
41
93
147
204
264
373
509
773
y
1.06
1.33
1.52
1.68
1.81
1.91
2.01
2.11
y
930
815
632
487
370
265
147
76
17
X=log x
1.0
1.30
1.477 1.60
Y=log y
0.025 0.124 0.182 0.225 0.258 0.281 0.303 0.324
1.699 1.778 1.845 1.903
X= x
12
41
93
147
204
264
373
509
773
Y=ln y
6.835
6.703
6.449
6.188
5.913
5.580
4.990
4.330
2.833
1000
2
xx=log10(x)
yy=log10(y)
p=polyfit(xx,yy,1)
hold on
plot(x,10^p(2)*x.^p(1))
900
yy=log(y)
p=polyfit(x,yy,1)
hold on
plot(x,exp(p(2))*exp(p(1)*x))
1.5
800
700
600
500
400
300
200
100
1
10
20
30
40
50
60
70
80
0
0
100
200
300
400
500
600
700
800
Última actualización: 24/09/2013
Métodos Numéricos – Cap 5: Interpolación y Aproximación polinomial
12/12
Instrucciones Matlab
YI = Interp1(X,Y,XI,metodo) Interpola entre puntos X,Y; X vector de valores
x, Y vector de valores y, XI valor a interpolar,
YI resultado de la interpolación en XI, método:
'nearest' - redondeo al valor más cercano
'linear' - interpolación lineal
'spline' - interpolación segmentaria cubica Spline
'cubic' - aproxima a un polinomio cúbico
YI = spline(X,Y,XI) Evalúa XI
P = spline(X,Y) Devuelve los coeficientes de los polinomios en formato “pp”
[X,coef,npol,nterm,dim] = unmkpp(P) Recupera información de los
polinomios
YI = ppval(P,XI) Evalúa polinomios ”pp” en un punto
[coef,P] = polyfit(X,Y,N) Ajusta X,Y con un polinomio de grado N, ( por
mínimos cuadrados), coef son los coeficientes del polinomio y P es el
polinomio “pp” para ser evaluado con ppval
Última actualización: 24/09/2013
Descargar