Análisis Numérico para Ingeniería - Panel de Estado · Dada una función f definida en [a, b] y...
Transcript of Análisis Numérico para Ingeniería - Panel de Estado · Dada una función f definida en [a, b] y...
Análisis Numérico para Ingeniería
Clase Nro. 12
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 2
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 - 2016 3
SPLINES
Aproximación por Splines Cúbicos
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 4
Interpolación por Splines Cúbicos
Dada una función f definida en [a, b] y un conjunto de números, llamados nodos, a = x
0 < x
1 < x
2 < … < x
n = 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 sub-
intervalo [xj , x
j+1 ], para cada j=0, 1,..., n-1.
b) S(xj) = f(x
j), para cada j=0, 1,..., n.
c) Sj+1
(xj+1
) = Sj(x
j+1), para cada j=0, 1,..., n-2.
d) S'j+1
(xj+1
) = S'j(x
j+1), para cada j=0, 1,..., n-2.
e) S''j+1
(xj+1
) = S''j(x
j+1), para cada j=0, 1,..., n-2.
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 5
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''(x
n) = 0
ii. FRONTERA SUJETA
S'(x0) = f '(x
0) y S'(x
n) = f '(x
n)
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 6
Polinomio de Spline Cúbico
S jx =a jb j⋅x−x jc j⋅x−x j2d j⋅x−x j
3
La forma general de un polinomio de Spline Cúbico es:
Aplicando la condición S(xj) = f(x
j), es evidente que:
S jx j = a j = f x j
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 7
Sj
Sj+1
xj+1
xj
aj = f(x
j)
S jx j = f x j = a j
Interpolación por Splines Cúbicos
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 8
Polinomio de Spline Cúbico
Luego, aplicando la condición Sj(x
j+1) = S
j+1(x
j+1), se
tiene que:
a j+1 =S j(x j+1)=S j+1(x j+1) =
= a j+b j⋅(x j+1−x j)+c j⋅(x j+1−x j)2+d j⋅(x j+1−x j)
3
Como utilizaremos frecuentemente (xj+1
- xj ), adoptaremos la
siguiente notación para simplificar:
h j =x j1−x j
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 9
Sj
Sj+1
xj+1
xj
aj+1
hj
h j= x j1−x j
Polinomio de Spline Cúbico
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 10
Polinomio de Spline Cúbico
Siendo an = f(x
n), entonces para j=0, 1, 2,…, n-1:
a j+1 =S j(x j+1)=S j+1(x j+1) =
= a j+b j⋅(x j+1−x j)+c j⋅(x j+1−x j)2+d j⋅(x j+1−x j)
3
Y reemplazando, nos queda de la siguiente forma:
a j1 =S j x j1=S j1 x j1 =
= a jb j⋅h jc j⋅h j2d j⋅h j
3
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 11
Polinomio de Spline Cúbico
Derivando el polinomio de Splines, obtenemos:
S ' j(x) =b j+2⋅c j⋅(x−x j)+3⋅d j⋅(x−x j)2
Lo cual implica :
S ' j(x j) =b j para j = 0, 1, 2, …, n-1
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 12
Sj
Sj+1
xj+1
xj
aj+1
hj
S ' jx j1=S ' j1 x j1
Polinomio de Spline Cúbico
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 13
Polinomio de Spline Cúbico
Luego, aplicando la condición S'j+1
(xj+1
) = S'j(x
j+1), se
tiene que:
b j1 =S ' jx j1=S ' j1 x j1 =
= b j2⋅c j⋅x j1−x j3⋅d j⋅x j1−x j2
Es decir:
b j+ 1 =S ' j(x j+ 1)=S ' j+ 1(x j+ 1) =
= b j+ 2⋅c j⋅h j+ 3⋅d j⋅h j2
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 14
Polinomio de Spline Cúbico
Derivando nuevamente la expresión S'j(x), obtenemos:
Por lo tanto:
c j =S ' ' j(x j)
2
S ' ' j(x) =2⋅c j+6⋅d j⋅(x−x j)
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 15
Polinomio de Spline Cúbico
Y como S''j+1
(xj+1
) = 2.cj+1
= S''j(x
j+1) , nos queda:
c j+ 1 =c j+ 3⋅d j⋅h j
Por lo tanto, si:
para j = 0, 1, 2, …, n-1
S j ' ' (x j+1) =2⋅c j+6⋅d j⋅(x j+1−x j)
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 16
Polinomio de Spline Cúbico
Ahora despejando dj de la ecuación anterior,
c j1 =c j3⋅d j⋅h j
Nos queda:
d j =c j+ 1−c j
3⋅h j
para j = 0, 1, 2, …, n-1
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 17
Polinomio de Spline Cúbico
Por lo tanto :
Y reemplazando dj en a
j+1 tenemos:
a j1=a jb j⋅h j2⋅c jc j1⋅h j
2
3
para j = 0, 1, 2, …, n-1
a j1 =S j x j1=S j1 x j1 =
= a jb j⋅h jc j⋅h j2d j⋅h j
3
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 18
Polinomio de Spline Cúbico
Por lo tanto :
Y reemplazando dj en b
j+1 tenemos:
para j = 0, 1, 2, …, n-1
b j1 =S ' j x j1=S ' j1 x j1 =
= b j⋅h j2⋅c j⋅h j3⋅d j⋅h j2
b j1=b jh j⋅c jc j1
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 19
Polinomio de Spline Cúbico
Y despejando bj , obtenemos:
Por último, a partir de la ecuación de aj+1
obtenemos :
b j =(a j+ 1−a j)
h j
−(2⋅c j+ c j+ 1)⋅h j
3
a j1=a jb j⋅h j2⋅c jc j1⋅h j
2
3
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 20
Polinomio de Spline Cúbico
Si disminuimos en 1, el índice de bj, nos queda:
Y a partir de la ecuación de bj anteriormente obtenida:
b j =a j1−a j
h j
−2⋅c jc j1⋅h j
3
b j−1 =a j−a j−1
h j−1
−2⋅c j−1c j⋅h j−1
3
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 21
Polinomio de Spline Cúbico
Con lo que obtenemos:
Realizamos la misma disminución en la siguiente expresión:
b j1=b jh j⋅c jc j1
b j=b j−1h j−1⋅c j−1c j
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 22
Polinomio de Spline Cúbico
Arribamos al siguiente sistema de ecuaciones lineales:
Y reemplazando en :
b j−1 =a j−a j−1
h j−1
−2⋅c j−1c j⋅h j−1
3
h j−1⋅c j−1+2⋅(h j−1+h j)⋅c j+h j⋅c j+1 =3⋅(a j+1−a j)
h j
−3⋅(a j−a j−1)
h j−1
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 23
Polinomio de Spline CúbicoEl 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 ' ' x0 = S ' ' xn = 0
cn =S ' ' xn
2= 0 porque S ' ' xn=0
S ' ' x0 = 2⋅c06⋅x0−x0 = 0 por lo tanto c0=0
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 24
A = [1 0 0 0 0h0 2h0h1 h1 0 00 h1 2h1h2 h2 0⋮ ⋮ ⋮ ⋱ ⋮ ⋮0 0 hn−2 2hn−2hn−1 hn−1
0 0 0 0 1]
De esta forma, queda conformada una matriz tri-diagonal :
Coeficientes de Spline Cúbico
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 25
b = [0
3 a2−a1
h1
−3 a1−a0
h0
⋮⋮
3 an−an−1
hn−1
−3 an−1−an−2
h0
0
]Y su correspondiente vector de términos independientes :
Coeficientes de Spline Cúbico
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 26
Procedimiento de Cálculo
1.Los valores de aj y h
j 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 c
j.
3.Con los valores de aj y c
j se calculan los valores
de bj.
4.Con los valores de cj y h
j se calculan los valores
de dj.
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 27
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 - 2016 28
Código de Splines Cúbicos
Sique en la próxima página
SUBROUTINE splineCubico(a, b, c, d, h)REAL(8) a(0:), h(0:)REAL(8), ALLOCATABLE :: b(:), c(:), d(:), uD(:), dD(:), lD(:)INTEGER n, i
n = SIZE(a)-1 print *, n ALLOCATE(b(0:n), c(0:n), d(0:n)) ALLOCATE(uD(0:n-1), dD(0:n), lD(0:n-1))
uD(0) = 0 dD(0) = 1 lD(0) = h(0) c(0) = 0
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 29
Código de Splines Cúbicos DO i=1, n-1 uD(i) = h(i) dD(i) = 2*(h(i-1)+h(i)) lD(i) = h(i) c(i) = 3*((a(i+1)-a(i))/h(i) - (a(i)-a(i-1))/h(i-1)) END DO
dD(n) = 1 lD(n-1) = 0 c(n) = 0
CALL DGTSV( n, 1, lD, dD, uD, c, n, INFO )
DO i=0, n-1 b(i) = (a(i+1)-a(i))/h(i) - h(i)*(2*c(i)+c(i+1))/3 d(i) = (c(i+1)-c(i))/(3*h(i)) ENDDO
DEALLOCATE(uD, dD, lD)
END SUBROUTINE
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 30
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 - 2016 31
Ejemplo: Trazador 1
1,00 3,002,00 3,705,00 3,906,00 4,207,00 5,708,00 6,60
10,00 7,1013,00 6,7017,00 4,50
xi
f(xi )
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 32
Ejemplo: Trazador 2
17,00 4,5020,00 7,0023,00 6,1024,00 5,6025,00 5,8027,00 5,2027,70 4,10
xi
f(xi )
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 33
Ejemplo: Trazador 3
27,70 4,1028,00 4,3029,00 4,1030,00 3,00
xi
f(xi )
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 34
Ejemplo: Perfil de Snoopy
TRAZADORES
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 35
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 - 2016 36
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 - 2016 37
Polinomio de Mínimos Cuadrados
Criterio de aproximación: Minimizar la siguiente función
Función aproximante :
px = a0a1⋅xa2⋅x2⋯an⋅x
n
F a0, a1,⋯, an = ∑k=1
M
yk−p xk 2 = ∑
k=1
M
k2
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 38
Polinomio de Mínimos Cuadrados
Para obtener el mínimo, calculamos las derivadas de F, con respecto a cada coeficiente y las igualamos a cero.
∂F∂ai
= 0
F a0, a1,⋯, an = ∑k=1
M
yk−p xk 2 = ∑
k=1
M
k2
Dada la función F :
para i = 0, 1, 2, …, n
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 39
Polinomio de Mínimos Cuadrados
∂∂a0
[∑k=1
M
yk−∑i=0
n
ai⋅xki
2] =
Para i = 0 :
= ∂∂a0
[∑k=1
M
( yk−(a0+a1⋅xk+a2⋅xk2+⋯+an⋅xk
n))2] =
= ∑k=1
M
−2⋅[ yk−(a0+a1⋅xk+a2⋅xk2+⋯+an⋅xk
n)] = 0
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 40
Polinomio de Mínimos Cuadrados
∂∂a1
[∑k=1
M
yk−∑i=0
n
ai⋅xki
2] =
Para i = 1 :
= ∂∂a1
[∑k=1
M
( yk−(a0+a1⋅xk+a2⋅xk2+⋯+an⋅xk
n))2] =
= ∑k=1
M
−2⋅[ yk−(a0+a1⋅xk+a2⋅xk2+⋯+an⋅xk
n)⋅xk ] = 0
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 41
Polinomio de Mínimos Cuadrados
∂∂an
[∑k=1
M
yk−∑i=0
n
ai⋅xki
2] =
Para i = n :
= ∂∂an
[∑k=1
M
( yk−(a0+a1⋅xk+a2⋅xk2+⋯+an⋅xk
n))2] =
= ∑k=1
M
−2⋅[ yk−(a0+a1⋅xk+a2⋅xk2+⋯+an⋅xk
n)⋅xkn] = 0
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 42
Polinomio de Mínimos Cuadrados
Generalizando para cualquier valor de i, nos queda:
∂F∂ai
=−2⋅∑k=1
M
[ yk−(a0+a1⋅xk+a2⋅xk2+⋯+an⋅xk
n)⋅x k
i]=0
Para i = 0, 1, 2, …, n
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 43
Polinomio de Mínimos CuadradosOperando algebraicamente, obtenemos:
∑k=1
M
yk−∑j=0
n
a j⋅xkj⋅xk
i = 0
∑k=1
M
yk⋅xki −∑
j=0
n
a j⋅xkj⋅xk
i = 0
∑k=1
M
yk⋅xki −∑
k=1
M
∑j=0
n
a j⋅xkj+i = 0
∑k=1
M
yk⋅xki −∑
j=0
n
a j⋅(∑k=1
M
xkj+i) = 0
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 44
Polinomio de Mínimos Cuadrados
Con lo que finalmente obtenemos el siguiente sistema de ecuaciones lineales :
Para i = 0, 1, 2, …, n
∑j=0
n
a j⋅(∑k=1
M
xkj+i) = ∑
k=1
M
yk⋅xki
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 45
[M ∑
k=1
M
xk ∑k=1
M
xk2 ⋯ ∑
k=1
M
xkn
∑k=1
M
xk ∑k=1
M
xk2 ∑
k=1
M
xk3 ⋯ ∑
k=1
M
xkn1
∑k=1
M
xk2 ∑
k=1
M
xk3 ∑
k=1
M
xk4 ⋯ ∑
k=1
M
xkn2
⋮ ⋮ ⋮ ⋱ ⋮
∑k=1
M
xkn ∑
k=1
M
xkn1 ∑
k=1
M
xkn2 ⋯ ∑
k=1
M
xk2n
]⋅[a0
a1
a2
⋮
an
]=[∑k=1
M
yk
∑k=1
M
yk⋅xk
∑k=1
M
yk⋅xk2
⋮
∑k=1
M
yk⋅xkn]
Sistema resultante
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 49
p1x=−61.882678⋅x80.06244
Aproximación de Grado 1
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 50
p2x =126.91394⋅x2−188.79661⋅x98.57073
Aproximación de Grado 2
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 51
p3 x =−35.30559⋅x3179.87232⋅x2
−208.76633⋅x99.72919
Aproximación de Grado 3
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 52
p4 x =−3.00755⋅x4−29.29048⋅x3176.03302⋅x2−208.03458⋅x99.71157
Aproximación de Grado 4
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 53
Valor Medio Cuadrático (RMS)
El Valor Medio Cuadrático, o Error Medio Cuadrático, mide el ”ajuste” del polinomio con referencia a los datos únicamente.
RMS = ∑k=1
M
k2
M
Una vez calculados los coeficientes del polinomio de aproximación de orden n, podemos calcular su Valor Medio Cuadrático.
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 54
Varianza al cuadrado
Este valor no sólo mide cuánto se aproxima el polinomio a los datos, sino que tiene en cuenta el esfuerzo computacional involucrado.
2n =∑k=1
M
k2
M−n−1
Una vez calculados los coeficientes del polinomio de aproximación de orden n, podemos calcular su varianza al cuadrado.
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 55
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 - 2016 56
PREGUNTAS ...