TALLER ESTABILIDAD Y CONDICIONAMIENTO ˜ DANIELA ALEJANDRA PAIVA PENUELA C´od. 0702 0004 2014 JOHAN ESTEBAN HUERFIA CUPI
Views 22 Downloads 3 File size 460KB
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