Análisis Numérico para Ingeniería - Panel de Estado · Dada una función f definida en [a, b] y...

Post on 28-Oct-2020

2 views 0 download

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 ...