Informe Estabilidad y Condicionamiento

TALLER ESTABILIDAD Y CONDICIONAMIENTO ˜ DANIELA ALEJANDRA PAIVA PENUELA C´od. 0702 0004 2014 JOHAN ESTEBAN HUERFIA CUPI

Views 22 Downloads 3 File size 460KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

TALLER ESTABILIDAD Y CONDICIONAMIENTO

˜ DANIELA ALEJANDRA PAIVA PENUELA C´od. 0702 0004 2014 JOHAN ESTEBAN HUERFIA CUPITRA C´od. 0702 0007 2014

HECTOR GRANADA Profesor del Departamento de Matem´aticas y Estad´ıstica

UNIVERSIDAD DEL TOLIMA. FACULTAD DE CIENCIAS. ´ ´ MATEMATICAS CON ENFASIS EN ESTAD´ ISTICA. ´ IBAGUE 2016

1

Aritm´ etica del computador 1. Considere el polinomio P (x) = (x + 3)8 (x − 2)4 (x − 3)5 , consiga la expansi´on del polinomio Pe (x) y utilice ambas expresiones para evaluarlos en x = 0,999. ¿Qu´e conclusiones puede sacar al respecto? Soluci´ on Introduciendo el polinomio en Matlab y hallando su expansion tenemos: Sea P (x) = (x + 3)8 (x − 2)4 (x − 3)5 Pe (x) = x17 +x16 −66x15 −50x14 +1915x13 +963x12 −31932x11 −7668x10 +334935x9 − 8505x8 −2264274x7 +651726x6 +9638109x5 −5215995x4 −23619600x3 +18423288x2 + 25509168x − 25509168 6

−0.5

Identica

x 10

−1

pe0

−1.5

−2

−2.5

−3 −3

−2.5

−2

−1.5

−1

p0

−0.5 6

x 10

Figura 1: Comparaci´on P(x) y Pe(x)

En la figura 1 analizamos las expresiones en el intervalo (0; 1) notando que p(x) es casi igual a pe (x) en dicho intervalo. Podemos observar que al comparar con la funci´on id´entica pareciera que ambas expresiones fueran las mismas y no existiera error alguno.

2 −9

1.5

Error

x 10

1

E

0.5

0

−0.5

−1

−1.5

0

0.2

0.4

0.6

0.8

1

Figura 2: Error

Tambi´en deseamos notar las diferencias entre las evaluaciones de p(x) y pe (x) (p(x):polinomio factorizado y pe (x):expansion del polinomio), notando que las diferencias aunque son diferentes de cero son peque˜ nas en ese intervalo, llegando a un error de hasta aproximadamente 1,5e − 09. 2. Suponga que la ecuaci´ on ax2 + bx + c = 0 tiene soluciones distintas, que estrategia se puede emplear para evitar errores de cancelaci´on? Soluci´ on Sabemos que los errores de cancelaci´on se presentan cuando se hace la diferencia de dos numeros muy cercanos; puesto que la ecuaci´on tiene soluciones diferentes sabemos por la formula cuadr´ atica que dichas soluciones son: x1 =

−b +



√ b2 − 4ac −b − b2 − 4ac y x2 = 2a 2a

Vemos entonces que se presentar´ıan errores de cancelaci´on en el numerador de cada expresi´ on, para evitar esto multipliquemos cada expresi´on por la conjugada del

3 numerador, para x1 tendr´ıamos lo siguiente: √ √ −b + b2 − 4ac −b − b2 − 4ac √ x1 = ∗ 2a −b − b2 − 4ac b2 − b2 + 4ac √ = 2a(−b − b2 − 4ac) 4ac √ = 2a(−b − b2 − 4ac) 2c √ = −b − b2 − 4ac De la misma manera para x2 : x1 = = = =

√ √ b2 − 4ac −b + b2 − 4ac √ ∗ 2a −b + b2 − 4ac b2 − b2 + 4ac √ 2a(−b + b2 − 4ac) 4ac √ 2a(−b + b2 − 4ac) 2c √ −b + b2 − 4ac −b −

P PN 2n−1 PN PN 2n 1 n n 3. Muestre que S = 2N n=1 (−1) n+1 = − n=1 2n + n=1 2n+1 = n=1 2n(2n+1) y calcule la suma para valores grandes de N empleando las tres expresiones anteriores. ¿Que conclusiones puede dar al respecto? Soluci´ on Cambiando el limite superior por N tenemos: 2N X n=1

n (−1) n+1 n

=

=

N X n=1 N X

N

2n−1

(−1)

X 2n − 1 2n + (−1)2n (2n − 1) + 1 2n + 1 n=1



n=1 N X

= −

n=1

2n − 1 + 2n 2n − 1 + 2n

N X n=1 N X n=1

2n 2n + 1 2n 2n + 1

4 De otro lado tenemos: 2N X n=1

n (−1) n+1 n

=

=

=

=

N X n=1 N X n=1 N X n=1 N X n=1

N

2n − 1 X 2n + − 2n 2n + 1 n=1



2n − 1 2n + 2n 2n + 1

−(2n)2 − 2n + 2n + 1 + (2n)2 2n(2n + 1) 1 2n(2n + 1)

Denotemos las expresiones de la siguiente manera: P n n (−1) f = 2N n=1 n+1 P PN 2n−1 2n g=− N n=1 2n + n=1 2n+1 PN 1 h = n=1 2n(2n+1) Para calcular la suma de N grandes y mirar el comportamiento de las tres expresiones realizamos un programa en Matlab (Programa 3),en el cual tambi´en las comparamos dos a dos. Calculamos las expresiones para N = 1000 y vemos que podr´ıamos decir que la suma de f y g son iguales, pues tiene 32 cifras correctas, pero para f y h notamos una diferencia, estos n´ umeros tienen 14 cifras significativas al igual que para g y h. para f 0,30660300681512120402061327695264 para g 0,30660300681512120402061327695264 para h 0,30660300681512475673429207745357 para N = 10000, obtenemos los siguientes resultados y notamos que para f y g todas las cifras son correctas, pero para f y h son solo 13 al igual que para g y h. 0,30682782131491515009713566541905 al calcular la suma en f 0,30682782131491515009713566541905 al calcular la suma en g 0,30682782131493130384214396144671 al calcular la suma en h Para N = 100000, tenemos que para f y g las cifras siguen siendo todas correctas, para f y h son 13 y tambi´en ocurre para g y h: 0,30685031945876495296232633336331 0,30685031945876495296232633336331 0,3068503194587990368091823256691 Observamos que mientras para f y g si el N aumenta los resultados son los mismo y siguen estando 32 cifras correctas, pero para f y h, si el N aumenta, las cifras correctas

5 disminuyen y se va viendo una notoria diferencia, al igual que para g y h.

0.32 0.3 f h g

0.28 0.26 0.24 0.22 0.2 0.18 0.16

0

2000

4000

6000

8000

10000

N

Figura 3: Comportamiento de f,g y h

En la figura 3 vemos que pareciera que las tres expresiones computacionalmente arroja valores iguales, la figura 4 nos muestra las diferencias que arrojan las expresiones comparadas dos a dos, podriamos decir que la figura 4 nos muestra el error absoluto entre dichas expresiones pero convenientemente quitamos el valor absoluto para saber en que valores de N una es mayor que la otra. La gr´afica nos permite afirmar que las expresiones f y g son computacionamelte iguales, pero que mientras el N aumenta, los valores de h tambi´en aumentan y esto podr´ıa causar un desbordamiento cuando P 1 el N es demasiado grande. Entonces la expresi´on m´as acertada es h = N n=1 2n(2n+1) , pues en las otras dos debido a que se presentan sustracciones de numeros bastantes cercanos se incurre a errores de cancelaci´on.

6 −14

0

x 10

f−g f−h g−h

−0.2 −0.4 −0.6 −0.8 −1 −1.2 −1.4 −1.6 −1.8

0

2000

4000

6000

8000

10000

N

Figura 4: An´alisis de los errores dos a dos

4. Considere la suma es divergente.

PN

1 n=1 n

para valores grandes de N, demuestre que la serie arm´onica

Soluci´ on P 1 Sea S = N n=1 n Realizamos un programa en Matlab (Programa 4) en donde podamos calcular la suma para valores grandes de N y para poder observar el comportamiento de S mediante gr´ aficas. Cuando es N = 1000 la suma S = 7,485470860550343; cuando N = 10000, S = 9,787606036044348 y para N = 100000, S = 12,090146129863445. Se ve que mientras el N aumenta en grandes cantidades, la suma no lo hace tanto, aumenta pero en cantidades peque˜ nas, lo que nos llevar´ıa a pensar que la serie arm´onica llegar´ıa a converger, pero en la figura 5 se puede ver que cuando N tiende a ∞ S no esta acotada superiormente,en el programa implementamos el error absoluto εn = |Sn+1 − Sn | para saber a medida de que el N aumenta, este tienda a cero, en la figura 6 se observa que aunque se acerca a cero, no es el error deseado por ser el N tan grande.

7

S 14

12

10

8

6

4

2

0

0

1

2

3

4

5 n

6

7

8

9

10 4

x 10

Figura 5: Sumas Serie Armonica

Para confirmar que la serie arm´onica diverge, a continuaci´on presentamos la demostraci´ on mediante en criterio de la integral. Sea la serie arm´ onica

P∞

1 n=1 n

y sea f (x) =

1 x

probemos primero los siguiente:

a) I = [1, +∞) f (x) es continua: Puesto que el dominio de f(x) es R − {0}, f(x) es continua en I. b) f(x) es positiva en I: Como x ∈ I es positivo, entonces f (x) =

1 x

> 0 ∀x ∈ I.

c) f(x) es mon´ otona decreciente en I: 0 Como f (x) = −1 < 0 ∀x ∈ I, entonces f(x) es mon´otona decreciente en I. x2

8

−4

x 10

1.2

1

e

0.8

0.6

0.4

0.2

0

0

1

2

3

4

5 n

6

7

8

9

10 4

x 10

Figura 6: Error Absoluto

Z 1



1 dx = x = =

Como

R∞ 1

1 x dx

diverge, entonces

P∞

1 n=1 n

Z

b

1 dx b→∞ 1 x l´ım ln b − ln 1 l´ım

b→∞

l´ım ln b Diverge

b→∞

diverge por el criterio de la integral.

5. Considere la funci´ on f (x) = x − sin(x). Obtenga un polinomio de Taylor de orden 7 alrededor de cero para esta funci´on. Eval´ ue las dos expresiones para valores peque˜ nos de x. Soluci´ on Sea f (x) = x−sin(x), mediante Matlab, obtenemos el polinomio de Taylor de order 7: P7 (x) =

x3 x5 x7 − + 6 120 5040

9 En el programa 5 evaluamos para x = 0,00005 en la funci´on y en el polinomio, f (0,00005) = 0,000000000000020833 y p7 (0,00005) = 0,000000000000020833, tenemos entonces que la diferencia en los dos es 0. Luego para x = 0,0025, f (0,0025) = 0,000000002604165852 y p7 (0,0025) = 0,000000002604165852, la distancia entre los dos es de 0. Pareciera que ambas funciones fueran iguales, pero para x = 0,07 ya notamos una diferencia, f (0,07) = −0,000057152662467236 y p7 (0,07) = −0,000057152662467347, luego el error absoluto entre ambos es de | − 0,000057152662467347 + 0,000057152662467236| = 1,110019736717816e − 16.

−4

2

x 10

1.5

1

0.5

0

−0.5

−1

−1.5

−2 −0.1

p7(x) f(x) −0.08

−0.06

−0.04

p7(x) =

x3 6

−0.02

0 x

0.02

0.04

0.06

0.08

0.1

Figura 7: Comparaci´on x5 x7 − 120 + 5040 y f (x) = x − sin(x)

En la figura 7 observamos el comportamiento de las dos funciones en el intervalo [−1, 1], lo que nos har´ıa pensar que ambas son iguales, en la figura 8 se grafic´o el error absoluto en el mismo intervalo, se ve que cuando los valores a evaluar se alejan de 0 las diferencias entre la funci´ on y el polinomio van aumentando. Mientras dicho error no sea mayor a 1 el calculo num´erico es estable y esto ocurre cuando x pertenece a una vecindad muy cercana a 0. Cuando x = π tenemos f (π) = 3,141592653589793238, p7 (π) = 3,216813269493416662 y el error es 0,07522061590362342 y para x = 4,5 f (4,5) = 5,477530117665097055,

10 p7 (4,5) = 7,224232700892857142 y el error es 1,74670258322776008. Aqu´ı ya se presentan errores grandes lo que ocurre un desbordamiento. −15

3.5

Error absoluto

x 10

3

2.5

e

2

1.5

1

0.5

0 −0.1

−0.08

−0.06

−0.04

−0.02

0 x

0.02

0.04

0.06

0.08

0.1

Figura 8: Error Absoluto

6. Resuelva el sistema redondeando siempre con tres cifras decimales y compare la respuesta con la soluci´ on exacta. 0,78x + 0,563y = 0,217 0,457x + 0,33y = 0,127 Soluci´ on

0,78x + 0,563y = 0,217

(1)

0,457x + 0,33y = 0,127

(2)

11 Multiplicando a (1) por (0,457) y a (2) por (−0,078) tenemos: 0,356x + 0,257y = 0,099 −0,356x − 0,257y = −0,099 0 = 0 y por tanto el sistema redondeando por 3 cifras tiene infinitas soluciones ya que las ecuaciones son congruentes para todos los punto. Ahora realizamos la soluci´on exacta: Multiplicando a (1) por (0,457) y a (2) por (−0,078) tenemos: 0,35646x + 0,257291y = 0,099169 −0,35646x − 0,2574y = −0,09906 −0,000109y = 0,000109 y = −1 Reemplazando a y = −1 en (1), 0,78x + 0,563(−1) = 0,217 0,78x − 0,563 = 0,217 0,78x = 0,78 x = 1 Luego el sistema tiene u ´nica soluci´on. En la soluci´on exacta, las ecuaciones son linealmente independiente y por ello tiene u ´nica soluci´on x = 1 e y = −1, en cambio en la soluci´ on en el sistema redondeando por 3 cifras las ecuaciones son linealmente dependientes, pues una es m´ ultiplo de la otra y por tanto este tiene infinitas soluciones. Vemos que al redondear se ocasionan errores que luego son propagados y esto produce un resultados totalmente diferentes. 7. Realizar un programa en Matlab para redondear un numero con n cifras decimales. Soluci´ on function [X]=redondeo(x,n) %x es el numero a redondear %n es el numero de cifras decimales %X el numero redondeado format long b=x*10^(n); if b-floor(b)>=0.5 b=floor(b)+1; end X=floor(b)/10^(n); end

12

Errores de redondeo y errores de cancelaci´ on 1. Asigne el valor decimal 0, 1 a la variable x, cambie al formato hexadecimal y examine el valor de x. Interprete el resultado y obtenga el valor decimal correspondiente al n´ umero de m´ aquina al que es redondeado 0, 1. Soluci´ on x = 0,1 f ormathex x >> 3f b999999999999a Convirtiendo a (3f b999999999999a)16 en su correspondiente valor binario tenemos que es igual a (0,0001000000000000000000000000000000000)2 pero la maquina le asigna un valor decimal de 0. 2. Ejecute el siguiente c´ odigo de Matlab: format long a = 4/3 b=a−1 c=3∗b e=1−c De efectuarse los c´ alculos en aritm´etica exacta, ¿Cu´al deber´ıa ser el valor de e?, ¿Puede identificar el valor que ha obtenido y explicarlo? Soluci´ on Ejecutando el cogido en Matlab tenemos lo siguiente resultados: a = 1,333333333333333 b = 0,333333333333333 c = 1,000000000000000 e = 2,220446049250313e − 16 El valor aritm´etico exacto es: a = 34 b = 13 c=1 e=0 Luego el valor exacto de e deber´ıa ser 0 y la maquina presenta que es e = 2,220446049250313e − 16 y de esto podemos concluir que el cero de la maquina es 2,220446049250313e − 16

13 3. Tomemos f (x) = sen(x) y x = 1, de modo que f 0 (x) = cos(x) = 0, 54030230586814... y vamos a asignar valore a h = 10−1 , 10−2 , ..., 10−20 . Realice a continuaci´on con la ayuda de MATLAB las siguientes tareas consecutivamente: a) Vamos a crear el fichero aproxder.m que contendr´a el script del experimento. Usaremos las siguientes variables con sus inicializaciones: n = 1; (contador), x = 1; (el punto), h = 1; (el paso), deriv = cos(x); (valor exacto de la derivada). b) Complete el siguiente ciclo que en cada paso calcule la aproximaci´on dif a f 0 (x) y el error absoluto cometido: while n