Document

Anuncio
Análisis Numérico para Ingeniería
Clase Nro. 12
Aproximación de Funciones
Temas a tratar:
Interpolación por Splines Cúbicos.
Aproximación por Mínimos Cuadrados.
Criterios de elección:
Tipo de Aproximación
Polinomio resultante
Ventajas y desventajas de los métodos.
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
2
Aproximación por Splines Cúbicos
SPLINES
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
3
Interpolación por Splines Cúbicos
Dada una función f definida en [a, b] y un conjunto de números, llamados
nodos, a = x0 < x1 < x2 < … < xn = b , un polinomio interpolante cúbico
spline S, para f, es una función que satisface las siguientes condiciones:
a) S es un polinomio cúbico denotado Sj en el subintervalo [xj , xj+1 ], para cada j=0, 1,..., n-1.
b) S(xj) = f(xj), para cada j=0, 1,..., n.
c) Sj+1(xj+1) = Sj(xj+1), para cada j=0, 1,..., n-2.
d) S'j+1(xj+1) = S'j(xj+1), para cada j=0, 1,..., n-2.
e) S''j+1(xj+1) = S''j(xj+1), para cada j=0, 1,..., n-2.
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
4
Interpolación por Splines Cúbicos
Además dicha función debe satisfacer alguna de las
siguientes condiciones de frontera:
i. FRONTERA LIBRE
S''(x0) = S''(xn) = 0
ii. FRONTERA SUJETA
S'(x0) = f '(x0) y S'(xn) = f '(xn)
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
5
Polinomio de Spline Cúbico
La forma general de un polinomio de Spline Cúbico es:
2
3
S j  x=a jb j⋅ x−x j c j⋅ x−x j  d j⋅ x−x j 
Aplicando la condición S(xj) = f(xj), es evidente que:
S j  x j = a j = f  x j
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
6
Interpolación por Splines Cúbicos
S j  x j = f  x j = a j
Sj+1
Sj
aj = f(xj)
xj
Ing. Francisco A. Lizarralde
xj+1
Facultad de Ingeniería - UNMDP - 2015
7
Polinomio de Spline Cúbico
Luego, aplicando la condición Sj(xj+1) = Sj+1(xj+1), se
tiene que:
a j+1 =S j (x j+1 )=S j+1 ( x j +1) =
2
3
= a j +b j⋅( x j +1−x j )+c j⋅( x j +1−x j ) +d j⋅( x j+1− x j )
Como utilizaremos frecuentemente (xj+1 - xj ), adoptaremos la
siguiente notación para simplificar:
h j = x j1−x j 
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
8
Polinomio de Spline Cúbico
Siendo an = f(xn), entonces para j=0, 1, 2,…, n-1:
a j+1 =S j (x j+1 )=S j+1 ( x j +1) =
2
3
= a j +b j⋅( x j +1−x j )+c j⋅( x j +1−x j ) +d j⋅( x j+1− x j )
Y reemplazando, nos queda de la siguiente forma:
a j1 =S j  x j1 =S j1  x j1  =
2
3
= a j b j⋅h j c j⋅h j d j⋅h j
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
9
Polinomio de Spline Cúbico
h j= x j1−x j 
Sj+1
aj+1
Sj
hj
xj
Ing. Francisco A. Lizarralde
xj+1
Facultad de Ingeniería - UNMDP - 2015
10
Polinomio de Spline Cúbico
Derivando el polinomio de Splines, obtenemos:
2
S ' j ( x) =b j +2⋅c j⋅( x−x j )+3⋅d j⋅( x−x j )
Lo cual implica :
S ' j ( x j ) =b j
Ing. Francisco A. Lizarralde
para j = 0, 1, 2, …, n-1
Facultad de Ingeniería - UNMDP - 2015
11
Polinomio de Spline Cúbico
S ' j  x j1 =S ' j1  x j1 
Sj+1
aj+1
Sj
hj
xj
Ing. Francisco A. Lizarralde
xj+1
Facultad de Ingeniería - UNMDP - 2015
12
Polinomio de Spline Cúbico
Luego, aplicando la condición S'j+1(xj+1) = S'j(xj+1), se
tiene que:
b j1 =S ' j  x j1 =S ' j1  x j1  =
2
= b j 2⋅c j⋅ x j1−x j 3⋅d j⋅ x j1−x j 
Es decir:
b j+ 1 =S ' j ( x j+ 1 )=S ' j+ 1 ( x j+ 1) =
2
= b j + 2⋅c j⋅h j + 3⋅d j⋅h j
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
13
Polinomio de Spline Cúbico
Derivando nuevamente la expresión S'j(x), obtenemos:
S ' ' j ( x) =2⋅c j +6⋅d j⋅( x−x j )
Por lo tanto:
S ' ' j ( x j)
cj =
2
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
14
Polinomio de Spline Cúbico
Por lo tanto, si:
S j ' ' ( x j +1 ) =2⋅c j +6⋅d j⋅( x j+1−x j )
Y como S''j+1(xj+1) = 2.cj+1 = S''j(xj+1) , nos queda:
c j+ 1 =c j + 3⋅d j⋅h j
Ing. Francisco A. Lizarralde
para j = 0, 1, 2, …, n-1
Facultad de Ingeniería - UNMDP - 2015
15
Polinomio de Spline Cúbico
Ahora despejando dj de la ecuación anterior,
c j1 =c j 3⋅d j⋅h j
Nos queda:
c j+ 1−c j
dj =
3⋅h j
para j = 0, 1, 2, …, n-1
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
16
Polinomio de Spline Cúbico
Y reemplazando en aj+1 tenemos:
a j1 =S j  x j1 =S j1  x j1  =
2
3
= a j b j⋅h j c j⋅h j d j⋅h j
Por lo tanto :
2⋅c jc j1 ⋅h
a j1=a j b j⋅h j 
3
2
j
para j = 0, 1, 2, …, n-1
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
17
Polinomio de Spline Cúbico
Y reemplazando en bj+1 tenemos:
b j1 =S ' j  x j1 =S ' j1  x j1  =
2
= b j⋅h j 2⋅c j⋅h j 3⋅d j⋅h j
Por lo tanto :
b j1=b j h j⋅c j c j1
para j = 0, 1, 2, …, n-1
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
18
Polinomio de Spline Cúbico
Por último obtenemos, a partir de la ecuación de aj+1 :
2⋅c jc j1 ⋅h
a j1=a j b j⋅h j 
3
2
j
Y despejando bj , obtenemos:
(a j+ 1−a j )
(2⋅c j + c j+ 1 )⋅h j
bj =
−
hj
3
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
19
Polinomio de Spline Cúbico
Y a partir de la ecuación de bj anteriormente obtenida:
a j1−a j 
2⋅c j c j1 ⋅h j
bj =
−
hj
3
Si disminuimos en 1, el índice de bj, nos queda:
b j−1
a j−a j−1 
2⋅c j−1c j ⋅h j−1
=
−
h j−1
3
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
20
Polinomio de Spline Cúbico
Realizamos la misma disminución en la siguiente
expresión:
b j1=b j h j⋅c j c j1
Con lo que obtenemos:
b j =b j−1h j−1⋅c j−1c j 
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
21
Polinomio de Spline Cúbico
Y reemplazando en :
b j−1
a j−a j−1 
2⋅c j−1c j ⋅h j−1
=
−
h j−1
3
Arribamos al siguiente sistema de ecuaciones lineales:
h j−1⋅c j−1 +2⋅(h j−1 +h j )⋅c j +h j⋅c j +1
Ing. Francisco A. Lizarralde
3⋅(a j +1−a j ) 3⋅(a j −a j−1 )
=
−
hj
h j−1
Facultad de Ingeniería - UNMDP - 2015
22
Polinomio de Spline Cúbico
El sistema planteado posee
n ecuaciones
y
n+1
incógnitas, por lo tanto, es preciso utilizar las condiciones
de frontera. Por ejemplo, para el caso de frontera libre o
SPLINE CÚBICO NATURAL, tenemos :
S ' '  x 0 = S ' '  x n = 0
S ' '  x n
cn =
= 0
2
porque S ' '  x n =0
S ' '  x 0  = 2⋅c 0 6⋅ x 0 −x 0  = 0
Ing. Francisco A. Lizarralde
por lo tanto c 0 =0
Facultad de Ingeniería - UNMDP - 2015
23
Coeficientes de Spline Cúbico
De esta forma, queda conformada una matriz tri-diagonal :
[
1
0
0
0

0
h0 2h0 h1 
h1
0

0
0
h1
2h1h2  h2

0
A =
⋮
⋮
⋮
⋱
⋮
⋮
0
0

hn−2 2hn−2hn−1  h n−1
0
0

0
0
1
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
]
24
Coeficientes de Spline Cúbico
Y su correspondiente vector de términos independientes :
[
0
3 a2−a1  3 a1−a0 
−
h1
h0
⋮
b =
⋮
3 a n−a n−1  3 an−1−an−2 
−
hn−1
h0
0
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
]
25
Procedimiento de Cálculo
1.Los valores de aj y hj se obtienen a partir de los
datos y con ellos se arma el sistema.
2.Resolviendo el sistema tri-diagonal planteado,
se obtienen los valores de cj.
3.Con los valores de aj y cj se calculan los valores
de bj.
4.Con los valores de cj y hj se calculan los valores
de dj.
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
26
Subrutina DGTSV
SUBROUTINE DGTSV( N, NRHS, DL, D, DU, B, LDB, INFO )
*
*
*
*
*
*
*
*
*
*
*
*
*
.. Argumentos Escalares ..
INTEGER
INFO, LDB, N, NRHS
..
.. Argumentos Matriciales ..
DOUBLE PRECISION B( LDB, * ), D( * ), DL( * ), DU( * )
Propósito
=======
DGTSV resuelve el sistema de ecuaciones lineales A*X = B,
donde A es una matriz tri-diagonal de NxN, por eliminación
Gaussiana con pivoteo parcial.
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
27
Ejemplo: Perfil de Snoopy
El perfil de la figura se divide en tres trazadores
independientes, para evitar aquellos puntos en los que
la derivada cambia abruptamente.
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
30
Ejemplo: Trazador 1
xi
1,00
2,00
5,00
6,00
7,00
8,00
10,00
13,00
17,00
f(xi )
3,00
3,70
3,90
4,20
5,70
6,60
7,10
6,70
4,50
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
31
Ejemplo: Trazador 2
xi
17,00
20,00
23,00
24,00
25,00
27,00
27,70
f(xi )
4,50
7,00
6,10
5,60
5,80
5,20
4,10
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
32
Ejemplo: Trazador 3
xi
27,70
28,00
29,00
30,00
f(xi )
4,10
4,30
4,10
3,00
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
33
Ejemplo: Perfil de Snoopy
TRAZADORES
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
34
Aplicaciones de Splines
Se utilizan cuando es necesario que la/las
funciones de interpolación pasen no solamente
por los puntos dato, sino que además, copien
fielmente la forma enmarcada por los mismos.
Por esta razón son ampliamente utilizados en
programas de dibujo y sistemas de Diseño
Asistido por Computadora (CAD).
Su principal ventaja es que los polinomios
resultantes son de grado bajo. La desventaja es
que se trata de un tipo de interpolación
segmentada.
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
35
Aproximación Mínimo-Cuadrática
Se utiliza un polinomio de grado n como función
aproximante.
Para determinar los coeficientes del polinomio,
se establece como criterio de aproximación,
que la diferencia entre los valores de la función y
los del polinomio evaluado en cada uno de los
puntos dato debe ser mínima.
El grado del polinomio se elige y no está
determinado por la cantidad de puntos dato.
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
36
Polinomio de Mínimos Cuadrados
Función aproximante :
2
p x = a 0a1⋅xa2⋅x ⋯an⋅x
n
Criterio de aproximación: Minimizar la siguiente función
M
F a0, a1, ⋯, an  =
Ing. Francisco A. Lizarralde
2
∑  y k − p  x k 
k=1
Facultad de Ingeniería - UNMDP - 2015
M
=
∑
k=1
2
k
37
Polinomio de Mínimos Cuadrados
Dada la función F :
M
F a0, a1, ⋯, an  =
2
∑  y k − p  x k 
k=1
M
=
∑
k=1
2
k
Para obtener el mínimo, calculamos las derivadas de F,
con respecto a cada coeficiente y las igualamos a cero.
∂F
= 0
∂ ai
Ing. Francisco A. Lizarralde
para i = 0, 1, 2, …, n
Facultad de Ingeniería - UNMDP - 2015
38
Polinomio de Mínimos Cuadrados
Para i = 0 :
M
n
∂ [  y − a ⋅x i 2 ] =
∑
k ∑ i
k
∂ a0 k=1
i=0
M
2
n 2
∂
=
[ ∑  y k −a0a1⋅xa2⋅x ⋯an⋅x  ] =
∂ a0 k =1
M
=
∑ −2⋅[ y k −a0a1⋅xa2⋅x ⋯an⋅x ]
2
n
= 0
k =1
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
39
Polinomio de Mínimos Cuadrados
Para i = 1 :
M
n
∂ [  y − a ⋅x i 2 ] =
∑
k ∑ i
k
∂ a1 k =1
i=0
M
2
n 2
∂
=
[ ∑  y k −a0a1⋅xa2⋅x ⋯a n⋅x  ] =
∂ a1 k =1
M
=
∑ −2⋅[ y k −a0a1⋅xa2⋅x ⋯an⋅x ⋅x k ]
2
n
= 0
k =1
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
40
Polinomio de Mínimos Cuadrados
Para i = n :
M
n
∂ [  y − a ⋅x i 2 ] =
∑
k ∑ i
k
∂ a n k =1
i=0
M
2
n 2
∂
=
[ ∑  y k −a0a1⋅xa2⋅x ⋯an⋅x  ] =
∂ an k=1
M
=
∑ −2⋅[ y k −a0a1⋅xa2⋅x ⋯an⋅x ⋅x
2
k =1
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
n
n
k
] = 0
41
Polinomio de Mínimos Cuadrados
Generalizando para cualquier valor de i, nos queda:
M
∂F
2
n
i
=−2⋅∑ [ y k −(a0 +a1⋅x+a2⋅x +⋯+an⋅x )⋅x k ]=0
∂ ai
k=1
Para i = 0, 1, 2, …, n
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
42
Polinomio de Mínimos Cuadrados
Operando algebraicamente, obtenemos:
M
n
j
k
∑  y k −∑ a j⋅x ⋅x
k =1
j=0
M
n
i
k
= 0
∑  y k⋅x −∑ a j⋅x ⋅x 
i
k
k =1
M
i
k
j
k
j=0
M
n
∑ y k⋅x −∑ ∑ a j⋅x
k =1
M
i=1 j=0
n
M
i
k
= 0
ji
k
= 0
∑ y k⋅x −∑ a j⋅ ∑ x
k =1
Ing. Francisco A. Lizarralde
i
k
j=0
i=1
ji
k
 = 0
Facultad de Ingeniería - UNMDP - 2015
43
Polinomio de Mínimos Cuadrados
Con lo que finalmente obtenemos el siguiente sistema
de ecuaciones lineales :
n
M
∑ a j⋅(∑ x
j=0
k =1
j+i
k
M
) =
∑ y k⋅x
k =1
i
k
Para i = 0, 1, 2, …, n
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
44
Sistema resultante
[
M
∑ xk
M
k=1
M
M
∑ xk
k=1
M
2
x
∑ k
k=1
2
x
∑ k
k=1
M
3
x
∑ k
k=1
⋮
M
∑x
k=1
M
n
k
M
k=1
Ing. Francisco A. Lizarralde
2
k
3
x
∑ k
4
x
∑ k
⋯
M
∑x
k=1
∑x
k=1
M
⋯
⋯
k=1
a1
⋮
⋮
M
⋯
][ ] [ ]
a0
⋅ a2 =
n2
∑ xk
⋱
n2
k
n
k
n1
x
∑ k
k=1
M
k=1
⋮
n1
k
M
k=1
M
⋮
∑x ∑x
k=1
M
∑x
k=1
2n
k
an
Facultad de Ingeniería - UNMDP - 2015
M
∑ yk
k=1
M
∑ y k⋅x k
k =1
M
∑ y k⋅x
k =1
2
k
⋮
M
∑
k =1
y k⋅x nk
45
Aproximación de Grado 1
p 1  x=−61.882678⋅x80.06244
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
49
Aproximación de Grado 2
p2  x =126.91394⋅x 2−188.79661⋅x98.57073
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
50
Aproximación de Grado 3
p3 x =−35.30559⋅x 3179.87232⋅x 2 −208.76633⋅x99.72919
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
51
Aproximación de Grado 4
p 4 x =−3.00755⋅x 4 −29.29048⋅x 3 176.03302⋅x 2−208.03458⋅x99.71157
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
52
Valor Medio Cuadrático
(RMS)
Una vez calculados los coeficientes del polinomio de
aproximación de orden n, podemos calcular su Valor
Medio Cuadrático.
RMS =

M
∑
k =1
2
k
M
El Valor Medio Cuadrático, o Error Medio Cuadrático,
mide el ”ajuste” del polinomio con referencia a los datos
únicamente.
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
53
Varianza al cuadrado
Una vez calculados los coeficientes del polinomio de
aproximación de orden n, podemos calcular su varianza
al cuadrado.
M
2
2

∑ k
 n =
k =1
M −n−1
Este valor no sólo mide cuánto se aproxima el polinomio
a los datos, sino que tiene en cuenta el esfuerzo
computacional involucrado.
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
54
Aplicaciones de Mínimos Cuadrados
Sirven para aproximar grandes conjuntos de
puntos, pudiendo elegir el grado del polinomio
aproximante.
Esto permite obtener un modelo matemático
simplificado del fenómeno representado por los
datos.
Como el criterio de aproximación del método
se basa en minimizar el error entre los datos y
el aproximante, es posible que dicho polinomio,
no coincida exactamente con ninguno de los
puntos dato.
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
55
PREGUNTAS ...
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2015
56
Descargar