You are on page 1of 15

Taller 5 Análisis Numérico

Fabio Arévalo Vargas, Juan Diego Mejı́a, Danny Perilla Mikán,


Juan Camilo Valencia
12 de junio de 2017

Problema 1.

Encuentre el polinomio de interpolación de Newton, P3 (x), que interpola los siguientes nodos.

xi 1 2 3 4
fi 6 2 10 -33

Sea q(x) := A(x − 1)(x − 2)(x − 3)(x − 4) ¿Qué valor debe tener A par que el polinomio
P4 (x) = P3 (x) + q(x) satisfaga P4 (0) = 127.

Solución:

Debido a que los datos son ingualmente espaciados, usaremos una versión del método de las
diferencias dividas simplificada. Definamos la variable normalizada n = x − 1. Obtenemos la
siguiente tabla de diferencias.
x f ∆f ∆2 f ∆3 f
1 6 -4 12 -63
2 2 8 12
3 10 -43
4 -33

El polinomio de interpolación de Newton en la variable normalizada es:


       
n n n n
fn = 6 −4 + 12 − 63
0 1 2 3
21
= 6 − 4n + 6n(n − 1) − n(n − 1)(n − 2)
2
21 3 75 2
= − n + n − 31n + 6
x 2
Por tanto el polinomio de interpolación de Newton en la variable x = n + 1 es:
21 3 275
f (x) = − x + 69x2 − x + 85
2 2

1
Por otro lado si P4 (x) = P3 (x) + A(x − 1)(x − 2)(x − 3)(x − 4) con la condición P4 (0) = 127
entonces:
127 = P3 (0) + A(0 − 1)(0 − 2)(0 − 3)(0 − 4)
implica que
127 − P3 (0) 7
A= =
24 4
Problema 2.
Dada una partición Γ := {a = x1 < ... < xN = b} del intervalo [a, b] y los valores correspon-
dientes a las cordenadas f0 , f1 , ..., fN ∈ R
Problema 2(a).

Muestre que para cada número fo0 ∈ R existe un único spline cuadratico interpolador s que
satisface la condición adicional s0 (x0 ) = f00 . Escriba un algoritmo para calcular s.
Debido a que vamos a realizar la interpolación de spline cuadratico, podemos asumir que
S(x) tiene la siguiente forma polinomial:

S(x) = ai x2 + bi x + ci x ∈ [xi−1 , xi ]

Pero además S(x) debe cumplir que:

S(x0 ) = a0 x20 + b0 x0 + c0 = f0 (1)

S(x1 ) = a0 x21 + b0 x1 + c0 = f1 (2)


Segun el problema, tenemos que S 0 (x0 ) = f00 , es decir:

S 0 (x0 ) = 2a0 x0 + b0 = f00 (3)

De 1, 2 y 3 tenemos el siguiente sistema de ecuacuiones:


 2    
x 0 x0 1 a0 f0
 x21 x1 1  b0 = f 1 
 
2x0 1 0 c0 f00
que al solucionarlo obtenemos lo siguiente:

−x20 f0 + 2x20 f1 + (x21 − 2x0 x1 )f00


a0 =
(x1 − x0 )2
x2 f0 − 2x1 x0 f1 + x20 f00
b0 = 1
(x1 − x0 )2
(2x20 − 2x0 x1 )f0 − (x21 − x20 )f1
c0 =
(x1 − x0 )2

Luego si definimos f10 = S 0 (x1 ) tenemos que S 0 (x1 ) = 2a0 x1 + b0 y para xi encontramos las
demas incognitas de la siguiente manera:

2
−x2i fi + 2x2i fi+1 + (x2i+1 − 2xi xi+1 )fi0
ai =
(xi+1 − xi )2
x2i+1 fi − 2xi+1 xi fi+1 + x2i fi0
bi =
(xi+1 − xi )2
(2x2i − 2xi xi+1 )fi − (x2i+1 − x2i )fi+1
ci =
(xi+1 − xi )2
Asi para cada valor f00 tenemos un unico spline cuadratico que cumple las condiciones de
interpolación.

b. Encuentre el spline cuadratico interpolador S con condiciones periodicas S 0 (x0 ) =


S 0 (xn )
Establezca enunciados sobre la existencia y unicidad de S.
Sea hi+1 = xi+1 − xi y sea zi = S 0 (xi ) como S es un polinomio de grado 2, tenemos que su
derivada es una recta que une los siguientes puntos:
(xi , zi ) y (xi+1 , zi+1 ) por lo tanto:
zi+1 − zi
S 0 (x) = (x − xi ) + zi x ∈ [xi , xi+1 ]
hi+1
zi+1 (x − xi − hi+1 )
= (x − xi ) − z1
hi+1 hi+1
zi+1 (x − xi+1 )
= (x − xi ) − z1
hi+1 hi+1
Con esto tenemos:
zi+1 (x − xi+1 )2
S(x) = (x − xi )2 − z1 + ci x ∈ [xi , xi+1 ]
2hi+1 2hi+1
como S(xi ) = fi , entonces
(hi+1 )2
fi = S(xi ) = −z1 + ci x ∈ [xi , xi+1 ]
2hi+1
luego
hi+1
ci = fi + zi
2
reemplazando tenemos:
zi+1 (x − xi+1 )2 hi+1
S(x) = (x − xi )2 − z1 + fi + zi
2hi+1 2hi+1 2
Dadas las condiciones para S podemos asumir que:

S(x) = αi + βi (x − xi ) + γ(x − xi )2 x ∈ [xi , xi+1 ]

3
Donde S(xi ) = fi = αi , S 0 (xi ) = zi = βi , S 00 (x) = 2γ entonces:
zi+1 − zi
S 00 (x) = = 2γ
hi+1
es decir:
zi+1 − zi
S(x) = fi + zi (x − xi ) + (x − xi )2 x ∈ [xi , xi+1 ]
2hi+1
De esta equacion vemos que el spline se obtiene al encontrar los zi
Como se quiere que S sea continua en [a, b] entonces:

Si (xi+1 ) = Si+1 (xi+1 ) = fi+1 para i = 0, . . . , n − 2

por lo tanto

(zi+1 − zi )hi+1
fi+1 = fi + zi (hi+1 ) +
2
fi+1 − fi
ası́ zi+1 = 2 − zi para i = 0, . . . , n − 1.
hi+1
Asi se puede calcular el valor de todos los zi a partir de un valor inicial z0 sin embargo, no
se puede calcular zn por lo tanto se utiliza la condicion f00 = fn0 .
Este spline no es unico ya que depende del valor que le demos a z0 .

Problema 3(a).

Considere la función
1
x ∈ [−5, 5]
f (x) =
+1 x2
definamos los nodos xi = −5 cos(iπ/n), con i = 0, 1, . . . , n. Ver que en este caso el error de
interpolación no aumenta a medida que n crece. Determine el polinomio de interpolación P12
con los nodos definidos.

Solución:
Listing 1: interpolacion lagrange.m. Cada uno de los polinomios de interpolación que
se obtuvieron tanto en el problema 3(a) como en el 3(b) fueron generados por el siguiente
programa:
1 % Este programa s e basa en e l Metodo de i n t e r p o l a c i o n de Lagrange a p l i c a d o a
c u a l q u i e r f u n c i o n dada y para c u a l q u i e r f o r m u l a de nodos dada .
2
3 % f := f u n c i o n i n t e r p o l a n t e .
4 % n:= grado d e l p o l i n o m i o .
5 % puntos := f o r m u l a de nodos depende de i y de n .
6
7 f u n c t i o n [ p ] = i n t e r p o l a c i o n l a g r a n g e ( f ,m, puntos )
8 syms x ;
9 l =0:m;

4
10 puntos=s u b s ( puntos , ’ n ’ ,m) ;
11 nodos=s u b s ( puntos , ’ i ’ , l ) ; % v e c t o r de nodos ( tamano n+1)
12 imagenes=s u b s ( f , ’ x ’ , nodos ) ; % v e c t o r de imagenes de l o s nodos ( tamano n+1)
13 L=sym ( o n e s (m+1 ,1) ) ; % Vector i n i c i a l de f u n c i o n e s c a r d i n a l e s
14 a x i s ( [ nodos ( 1 )−1 nodos (m+1)+1 min ( imagenes ) −0.5 max( imagenes ) + 0 . 5 ] )
15
16 % f u n c i o n e s c a r d i n a l e s d e l p o l i n o m i o de Lagrande L { 0 } , L { 1 } , . . . , L {n}
17 f o r k=1:m+1
18 T=sym ( o n e s (m+1 ,1) ) ;
19 f o r j =1:m+1
20 i f j ˜=k
21 T( j ) =(x−nodos ( j ) ) / ( nodos ( k )−nodos ( j ) ) ;
22 end
23 end
24 p r o d u c t o =1;
25 f o r j =1:m+1
26 p r o d u c t o=T( j ) ∗ p r o d u c t o ;
27 end
28 L( k )=p r o d u c t o ;
29 end
30
31 % P ol i no m i o de i n t e r p o l a c i o n de Lagrange
32 imagenes=sym ( imagenes ) ; % conversion a simbolico
33 p=s i m p l i f y ( imagenes ∗L) ; % P o li n o mi o de i n t e r p o l a c i o n
34
35
36 % g r a f i c a c i o n d e l p o l i n o m i o comparada con l a f u n c i o n r e a l
37 t=nodos ( 1 ) − 1 : 0 . 0 1 : nodos (m+1)+1; % valores
38 y1=s u b s ( p , ’ x ’ , [ nodos ( 1 ) − 1 : 0 . 0 1 : nodos (m+1) +1]) ; % s u s t i t u c i o n polinomio
39 y2=s u b s ( f , ’ x ’ , [ nodos ( 1 ) − 1 : 0 . 0 1 : nodos (m+1) +1]) ; % sustitucion funcion real
40 h o l d on
41 p l o t ( t , y2 , ’ g ’ ) ; % g r a f i c a c i o n de l a f u n c i o n r e a l
42 p l o t ( t , y1 , ’ r ’ ) ; % g r a f i c a c i o n d e l p o l i n o m i o de i n t e r p o l a c i o n
43 p l o t ( nodos , imagenes , ’ o ’ ) ; % g r a f i c a c i o n de nodos

Para obtener el polinomio de interpolación P12 (x) para f (x) en los nodos xi = −5 cos(iπ/n)
se ejecuta el programa con la siguiente instrucción
>> syms x n i
>> i n t e r p o l a c i o n l a g r a n g e ( 1 / ( ( x ) ˆ2+1) ,12 , −5∗ cos ( i ∗ pi /n ) ) ;

5
Figura 1: Polinomio de interpolación de Lagrange de grado 12 en los nodos xi = −5 cos(iπ)/n
para i = 0, 1 . . . , 12.

Para los errores de interpolación venmos que disminuyen conforme n se hace grando, para
distintos valores se obtiene la siguiente tabla.

nodos / error
5 1.312542
10 0.414563
15 0.213267
20 0.084768
25 0.035963
30 0.004680

Para valores superiores a 30 el error es más pequeño que 103 , siempre que la fórmula para
los nodos sea xi = −5 cos(iπ)/n.

Problema 3(b).

Considere la función f (x) = sin(2πx) en el intervalo [−1, 1]. Encuentre el polinomio de in-
terpolación de la función f (x) en 22 nodos x1 equidistantes.

Genere valores perturbados f̃(xi ) al evaluar f (xi ) = sin(2πxi ) con máxi=0,1...,21 |f (xi )−f̃(xi )| ≈
9,5 × 104 y encuentre el polinomio de interpolación correspondiente.

Solución:

Para obtener el polinomio de interpolación P21 (x) para f (x) = sin(2πx) en los 22 nodos
equidistantes en [−1, 1] se ejecuta el programa con la siguiente instrucción
>> syms x n i
>> i n t e r p o l a c i o n l a g r a n g e ( sin ( 2 ∗ pi ∗x ) ,21 , −( n−i ) /n+i /n ) ;

6
Figura 2: Polinomio de interpolación de Lagrange de grado 21 para la función f (x) = sin(2πx)
en 22 nodos equidistantes de [−1, 1].

Problema 4.

Dibuje la silueta de la mano por medio de splines cúbicos paramétricos.

Solución:
Listing 2: spline mano contorno.m. El programa siguiente recoge los puntos introdu-
cidos por el cursor y construye funciones splines x(t) e y(t) por medio de la subrutina
interpolacion spline(t,x,malla):
1 % Este programa p e r m i t e d i b u j a r c o n t o r n o s por medio de s p l i n e s c u b i c o s
2
3 % a j u s t e de p a n t a l l a y toma de puntos por c u r s o r
4 f i g u r e ( ’ position ’ , get (0 , ’ s c r e e n s i z e ’ ) ) ;
5 axes ( ’ p o s i t i o n ’ , [ 0 . 0 6 0.09 0.9 0 . 9 ] ) , a x i s equal
6 [ x , y]= g i n p u t ;
7
8 %s u b r u t i n a de i n t e r p o l a c i o n
9 [ n,˜]= s i z e (x) ;
10 t=l i n s p a c e ( 1 , n , n ) ;
11 malla = 1 : 0 . 1 : n ;
12 xx=i n t e r p o l a c i o n s p l i n e ( t , x , m a l l a ) ;
13 yy=i n t e r p o l a c i o n s p l i n e ( t , y , m a l l a ) ;
14
15 % g r a f i c a c i o n de l o s s p l i n e s p a r a m e t r i c o s
16 p l o t ( x , y , ’ o ’ , xx , yy ) , a x i s e q u a l
17
18 −−−−−−−−−−−−−−−−−−−−s u b r u t i n a i n t e r p o l a c i o n s p l i n e −−−−−−−−−−−−−−−−−−−−
%
19
20 % ( t , x ) := puntos de i n t e r p o l a c i o n
21 f u n c t i o n [ xx]= i n t e r p o l a c i o n s p l i n e ( t , x , m a l l a )
22
23 % v a l o r e s de f r o n t e r a ( l i b r e s )
24 b ( 0 ) =0;
25 b ( n ) =0;
26

7
27 % d e f i n i c i o n de l o s p a s o s para cada s u b i t e r v a l o s
28 n=l e n g t h ( x ) ;
29 f o r i = 1 : 1 : n−1
30 h ( i )=x ( i +1)−x ( i ) ;
31 end
32
33 % d e f i n i c i o n de l o s v e c t o r e s de l a m a t r i z ( t r i d i a g o n a l )
34 a ( n−1)=0;
35 f o r i = 1 : 1 : n−2
36 a ( i )=h ( i ) ;
37 end
38 b ( 1 ) =1;
39 b ( n ) =1;
40 f o r i = 1 : 1 : n−2
41 b ( i +1)=2∗(h ( i +1)+h ( i ) ) ;
42 end
43 c ( 1 ) =0;
44 f o r i = 2 : 1 : n−1
45 c ( i )=h ( i ) ;
46 end
47
48 % d e f i n i c i o n de l a m a t r i z columna b y c o e f i c i e n t e s d e l s p l i n e c u b i c o
49 f o r i = 1 : 1 : n−2
50 b ( i +1)=(6/h ( i +1) ) ∗ ( x ( i +2)−x ( i +1) ) −(6/h ( i ) ) ∗ ( x ( i +1)−x ( i ) ) ;
51 end
52 f o r j = 1 : 1 : n−1
53 D( j ) =(C( j +1)−C( j ) ) / ( 3 ∗ h ( j ) ) ;
54 B( j ) =((x ( j +1)−x ( j ) ) /h ( j ) )−h ( j ) ∗ (C( j +1)+2∗C( j ) ) / 3 ;
55 end
56 f o r i =1:1: malla
57 xx ( i )=A( j )+B( j ) ∗D+C( j ) ∗Dˆ2+d ( j ) ∗Dˆ3
58 end
59 end

Después de ejecutar el programa y tomar los puntos necesarios con el cursor, la función spline
para el contorno de la mano fue:

8
Figura 3: Spline cúbico del contorno de la mano para 42 puntos (x, y).

Problema 5
Observe que
Z 1
4
I= =π
0 1 + x2

a) Use las reglas compuestas del punto medio, del trapecio y de Simpson para aproximar I
para varios tamaños de paso de integración hn = 1/n, n = 10, 50, 100, 250, 500, 1000, 1500, 2000.
Grafique el logaritmo del error absoluto contra n para cada paso. Describa el efecto de
redondeo de los errores cuando h → 0

b) Implemente el método de integración de Romberg para calcular I. Gráfique el logaritmo


del error en los términos diagonales en la tabla de extrapolación versus log(h). Verifique
sus resultados con la teorı́a.

Solución:

a) Para una partición dada a = x0 < x1 < x2 < · · · < xn = bLos métodos del trapecio y
Simpson están dados por las siguientes ecuaciones:
" n−1
#
h X
IT = f (a) + 2 f (xi ) + f (xn ) (4)
2 i=1

9
" #
h X X
IS = f (x0 ) + 2 f (xi ) + 4 f (xi ) + f (xn ) (5)
3 i pares tq i<n i impares tq i<n

Las ecuaciones (4) y (5) se implementan fácilmente de la siguiente manera:

function I = trapecio(f,a,b,n)
h=(b-a)/n; xi=a:h:b;
I= h/2*(f(xi(1))+2*sum(f(xi(2:(end-1))))+f(xi(end)));
end

function I = simpsons(f,a,b,n)
h=(b-a)/n; xi=a:h:b;
I= h/3*(f(xi(1))+2*sum(f(xi(3:2:(end-2))))+
4*sum(f(xi(2:2:(end-1))))+f(xi(end)));
end

Utilizando las funciones trapecio y simpsons para n = 10, 50, 100, 250, 500, 1000, 1500, 2000
y graficando el logaritmo del error absoluto contra n se obtiene

Figura 4: Gráficas del logaritmo del error absoluto contra n.

10
La figura 4 nos deja ver dos cosas:

El método de simpson es considerablemente más exacto que el método del trape-


cio.
Vemos que cuando h → 0 el error del método del trapecio decrece (esto va de
acuerdo a la teorı́a). Para el método de Simpson vemos que a partir de n = 500
el error muestra un incremento muy leve (esto no es acorde con la teorı́a). Este
comportamiento se debe posiblemente al error de máquina cometido al realizar
gran cantidad de sumas de números cercanos a cero.

En cuanto al orden de convergencia se puede graficar el logaritmo de los errores abso-


lutos contra el logaritmo del tamaño del paso:

Figura 5: pendiente de la recta: 2.000

Según lo aprendido en clase, el error absoluto para el método del trapecio es:

|IT (h) − M | = Kh2

11
b−a 00
con K = 12
f (µ), µ ∈ [a, b]. Luego:

log |IT (h) − M | = log(K) + 2 log(h)


Por lo tanto, la figura 5 concuerda con la teorı́a.
En cuanto al orden de convergencia para el método de Simpson encontramos algo más
extraño:

Figura 6: La pendiente de los puntos en el intervalo [−6, 2] puede oscilar entre 6 y 4

El comportamiento de los puntos en el intervalo [−8, −5] se puede explicar gracias al


error de máquina cometido al sumar gran cantidad de puntos flotantes cercanos a cero.

b) El método de Romberg para aproximar I está dado por la fórmula recursiva


"  #
i
h
Ri,0 = IT , i = 0, 1, · · · , m
2
i
Ri,j+1 − 41 Ri,j
Ri+1,j = i , i = 1, 2, · · · , m
1 − 14

12
Consideremos la matrı́z de extrapolación de Romberg:
 
R0,0 0 0 ··· 0
 R1,0
 R1,1 0 ··· 0 

R =  R2,0
 R2,1 R2,2 ··· 0 

 .. .. .. .. .. 
 . . . . . 
Rm,0 Rm,1 Rm,2 · · · Rm,m

Iˆ = Rm,m = Rm (h) (6)

Por ejemplo, para m=6 la matrı́z de extrapolación es:


 
3,0000 0 0 0 0 0 0
3,1000 3,1333 0 0 0 0 0 
 
3,1312 3,1416 3,1421 0 0 0 0 
 
3,1390
R= 3,1416 3,1416 3,1416 0 0 0 
3,1409 3,1416 3,1416 3,1416 3,1416 0 0 
 
3,1414 3,1416 3,1416 3,1416 3,1416 3,1416 0 
3,1416 3,1416 3,1416 3,1416 3,1416 3,1416 3,1416

Note que para su diagonal se tiene que h = 1, 1/2, 1/4, 1/8, 1/16, 1/32, 1/64

Graficando el logaritmo del error absoluto de los elementos de la diagonal de R contra


log(h) se obtiene la figura 7.

13
Figura 7: Gráfica del logaritmo del error absoluto contra log(h) para el método de Romberg.

Vemos que los puntos describen una función convexa. Esto quiere decir que conforme
se incrementa el número de iteraciones (m) el orden de convergencia incrementa lo
cual va de acuerdo a la teorı́a. Además comparando con la figura 5 vemos que el
método de Romberg converge mucho más rápidamente al valor objetivo con un h
considerablemente más grande (fijarse en los ejes x de las figuras 5 y 7) como se
discutió en clase.

Se probó en clase que para el método de Romberg con m iteraciones se tiene que el
orden de convergencia es O(h2(m+1) ). Para verificar esto aplicamos el método con m = 2
h = 1, 1/2, 1/3, 1/4, 1/5, 1/6, 1/8 y graficamos el logaritmo del valor absoluto de
los errores contra log(h):

14
Figura 8: La pendiente en el intervalo [−2,5, 1] es varı́a entre 5,995 y 5,999 (≈ 6)

Vemos que la gráfica anterior tiende a comportarse linealmente conforme h disminuye


lo cual se explica de la siguiente manera:

|R2 (h) − π| = α6 h6 + α8 h8 + · · ·
|R2 (h) − π| = α6 h6 + E(h)

Vemos que para h pequeño E(h) se vuelve despreciable:

|R2 (h) − π| ≈ α6 h6 (h pequeño)


log |R2 (h) − π| ≈ log(α6 ) + 6 log(h)

Es decir, para valores pequeños de h, log |R2 (h) − π| debe comportarse como una recta
de pendiente 6. Como se puede apreciar en la figura 8.

15

You might also like