Taller #2 Métodos Numéricos
Taller #2 Métodos Numéricos
Taller #2 Métodos Numéricos
Facultad de Ingeniería
Autores:
Cortés Cortés David Santiago - 1745133
Orozco Hurtado Alejandro - 1744439
Edwin Alfonso Montero - 1044668
Profesora:
Maria Patricia Trujillo Uribe
Noviembre de 2019
Preguntas
Problems 2.1:
Problems 2.2:
1, 2, 3, 4, 8, 15, 16
1, 3, 5, 6
Problems 2.3:
4, 5
Respuestas
̂ <2
para base 10, para base 2: |𝑥 − 𝑥| −𝑛
̂ <2
|𝑥 − 𝑥| −23
ya que el marc-32 utiliza 23 bits para la mantisa. Por último la unidad de error es
entonces 2 −23 .
𝑚
2.1.2. Siendo (1. 𝑎1 𝑎2 . . . 𝑎23 )𝑥2 el número binario normalizado de 1/10
𝑥− = (0.000110011001100110011001)2
𝑥+ = (0.000110011001100110011010)2
Cada uno con 24 bits después del punto fraccionario. Para determinar cuál de los
dos está más cerca al valor real de 1/10se restan de la siguiente forma:
−24 1 −24
𝑥 − 𝑥− = (0.00011. . . ) ∗ 2 = 10 ∗ 2
1 −24
9 −24
𝑥+ − 𝑥 = (1 − )∗2 = ∗2
10 10
2.1.3.
a.Siendo (1. 𝑎1 𝑎2 𝑎3 . . . 𝑎24 ) × 2 𝑚 el número ⅗ en su representación binaria
redondeada, ¿Cuál es el error relativo de redondeo?
3/5 = 0.6
0.6 * 2 = 1.2 ➝1
0.2 * 2 = 0.4 ➝0
0.4 * 2 = 0.8 ➝0
0.8 * 2 = 1.6 ➝1
0.6 * 2 = 1.2 ➝1
x = (3/5)10 = (0.100110011001100110011001…..)2
Obteniendo x- por chopping y x+ por rounding up (El problema indica que solo se
tiene 24 bits después del punto):
x- = (0.100110011001100110011001)2
x+ = (0.100110011001100110011010)2
Para determinar cuál está más cercano a x para decidir cual debemos tomar como
fl(x), hacemos:
Haciendo la comparación nos damos cuenta que el valor más cercano a x entre x+ y
x- es x+ por lo cual hacemos fl(x) = x+
0.285714285714285714*2=0.5714285714…
0.5714285714*2=1.14285714286
0.14285714286*2=0.28571428571
...
De tal forma:
(2/7)10 = (0.0100100100100100100100100. . . )2
Donde los 8 bits después del primer bit hacen referencia el exponente del número
(01111101)2 = (125)10 luego 𝑒 − 127 = 125 − 127 = 2
𝑥− = 0.010010010010010010010010 = (1.00100100100100100100100) × 2 −2
𝑥+ = 0.010010010010010010010011 = (1.00100100100100100100110) × 2 −2
Para determinar cuál de los dos números se encuentra más cercano a 2/7 hacemos
lo mismo del literal anterior.
−24 −24
𝑥 − 𝑥− = (0.0111110. . . )2 × 2 = (2/7) × 2
−24 −24
𝑥+ − 𝑥 = (1 − 2/3) × 2 = (1/3) × 2
Se puede observar que 𝑥− es el número más próximo al valor real de 2/7. Hacemos
𝑓𝑙(𝑥) = 𝑥−
2.1.8. Does each machine number in the Marc-32 have a unique normalized
representation?
Ya que el marc-32 sigue las directrices del IEEE-754 para una palabra de 32 bits
con precisión simple y asumiendo que no se hacen redondeos i.e ningún número
excede seis puestos decimales, entonces hay:
2 1 distintas opciones para el signo del número (0 ó 1)
2 8 distintas combinaciones para el exponente del número
2 23 combinaciones posibles para la mantisa del número.
Sin embargo como se expresa en el libro, un número que se salga del rango del
Marc-32 será redondeado hacia arriba o truncado a partir del bit 24, lo que podría
ocasionar que dos números reales distintos tengan la misma representación
normalizada en el Marc-32.
x = 2^(3) + 2^(-19)+2^(-22)=(1000.0011011011….0000)₂
Tomando la derecha
x’=(1000.0011011011….0000)₂
x-x’=8.00000214577 x 2^(-24)
Tomando la Izquierda
x’’ = (1000.00110110...0001)₂
x-x’=(x’’-x’)-(x-x’)
x-x’’=2^(-24) - 8.00000214577 x 2^(-24) = 7.00000214577 x 2^(-24)
Redondeo = 7.00000214577 x 2^(-24)
Error Absoluto
| A(x)-x / |x|| = 7.00000214577 x 2^(-24) / 8.00000214577 x 2^(-24) =
0.8750000x2^(-24) como q < 1 —> 0.8750000x2^(-24)<2^(-24)
1/9 = (0.111)10
Asumiendo que tenemos una máquina hipotética con una palabra de 52 bits (43 bits
para la mantisa, 8 para el exponente y un bit para el signo del número) .
Para calcular su representación binaria hacemos:
0. 1 ∗ 2 = 0. 2
0. 2 ∗ 2 = 0. 4
0. 4 ∗ 2 = 0. 8
0. 8 ∗ 2 = 1. 7
0. 7 ∗ 2 = 1. 5
0. 5 ∗ 2 = 1. 1
0. 1 ∗ 2 = 0. 2
0. 2 ∗ 2 = 0. 4
𝑥 = (0.00111000111000111. . . ) = (1.11000111000. . . ) × 2 −3
Las representaciones en número máquina con 43 bits después del punto decimal
serían entonces:
𝑥− = (0.001110001110001110. . .111)
𝑥+ = (0.001110001110001110. . .1000)
Haciendo uso de una máquina decimal hipotética que hace sus cálculos con
números de hasta cinco dígitos:
Ejemplo 1:
Podemos utilizar los siguientes números reales en base 10
𝑥 = 0.37214 78693 → 𝑓𝑙(𝑥) = 0.37215
𝑦 = 0.37202 30572 → 𝑓𝑙(𝑦) = 0.37202
𝑥 − 𝑦 = 0.00012 48121
𝑓𝑙(𝑥) − 𝑓𝑙(𝑦) = 0.00013
Luego
𝑓𝑙(𝑥 − 𝑦) = 0.00012 y por último
𝑓𝑙(𝑓𝑙(𝑥) − 𝑓𝑙(𝑦)) = 0.00013
Ejemplo 2:
Utilizando los siguientes números reales en base 10.
𝑥 = 54382. 73285
𝑦 = 98593. 43284
De tal manera que:
𝑓𝑙(𝑥) = 54383 y 𝑓𝑙(𝑦) = 98593
Entonces hacemos las siguientes operaciones:
𝑥/𝑦 = 0.55159 58952, 𝑓𝑙(𝑥/𝑦) = 0.55160
Por otra parte:
𝑓𝑙(𝑥) / 𝑓𝑙(𝑦) = 0.55159 08837
𝑓𝑙( 𝑓𝑙(𝑥) / 𝑓𝑙(𝑦)) = 0.55159
2.1.22
2.2.1 Usando el término de error en el Teorema de Taylor, demuestre que se
requieren al menos siete turnos en la serie del Ejemplo 2 para que el error no
exceda 10-9
Resolviendo la serie de Taylor para la función del ejemplo 2(f(x) = x - sin x para |x| ≤
1.9) en 0 tenemos:
Y para x=1.9
Podemos ver que la primeras vez que cae bajo 10-9 es cuando n=7
2.2.2
2.2.4 (Continuación) Para la función del problema anterior, encuentre una serie
de Taylor adecuada que pueda calcularse con precisión.
2.2.8 Hay una pérdida de significancia al resolver una ecuación por medio de
la fórmula cuadrática √𝑏 2 − 4𝑎𝑐 cuando 4𝑎𝑐 es pequeño en relación a
𝑏 2 , 4𝑎𝑐 ≈ |𝑏| .
Para resolver este problema se puede multiplicar la ecuación por el conjugado de la
raíz, el cual sería:
−𝑏 ∓ √𝑏 2 − 4𝑎𝑐
Para obtener la nueva fórmula:
2𝑐 / (−𝑏 ∓ √𝑏 2 − 4𝑎𝑐) , 𝑓ó𝑟𝑚𝑢𝑙𝑎 𝑑𝑒 𝐶𝑖𝑡𝑎𝑟𝑑𝑎𝑢𝑞
Sin embargo, en la anterior expresión sigue existiendo una resta de dos cantidades
que pueden ser casi iguales. En efecto para valores en que 4𝑎𝑐 ≈ |𝑏|la fórmula de
Citardauq calcula correctamente la raíz, para otros casos funciona mejor la fórmula
cuadrática.
Un segundo método podría ser calcular una de las raíces con alta precisión,
nombrandola 𝑥1 y calcular la segunda teniendo en cuenta que el producto de las
raíces de 𝑎𝑥 2 + 𝑏𝑥 + 𝑐 = 0 es 𝑐/𝑎, es decir 𝑥1 𝑥2 = 𝑐/𝑎 ≡ 𝑥2 = (𝑐/𝑎) ∗ 𝑥 −1
2.2.15 Considere la función f(x)=𝑥 − 1 (1-cos(x))
a. para que f sea continua en x=0 se debe cumplir que 𝑙𝑖𝑚 f(x) = f(x) 𝑙𝑖𝑚 𝑥 − 1 (1-
𝑥→0 𝑥→0
cos(x)) =0, para una definición correcta es x=0 tal que f(x)=0
b. ¿Cerca de qué puntos hay una pérdida de importancia si se usa la fórmula
dada? cerca del 0 porque para la resta 1- cosx son cantidades muy pequeñas
de diferencia.
c. ¿Cómo podemos sortear la dificultad en la parte b? Encuentre un método que
no use la serie Taylor.
se puede transformarla en:
1−𝑐𝑜𝑠𝑥 1−𝑐𝑜𝑠𝑥 1+𝑐𝑜𝑠𝑥 1−𝑐𝑜𝑠 ² 𝑥 𝑠𝑒𝑛²𝑥
= = =
𝑥 𝑥 1+𝑐𝑜𝑠𝑥 𝑥(1+𝑐𝑜𝑠𝑥) 1+𝑐𝑜𝑠𝑥
d. Si la nueva fórmula que proporcionó en parte с involucra la cancelación
sustractiva en algún otro punto, describa cómo evitar esa dificultad.
Se puede restringir los dominios de las funciones
𝑠𝑒𝑛²𝑥 𝜋 𝜋
para R𝜖 (-2<x<2) cancela valores de x cercanos a 𝜋
1+𝑐𝑜𝑠𝑥
𝜋 𝜋
para 𝑥 − 1 (1-cos(x) )en R𝜖 (2<x<3 2 ) cos(x ) No se aproxima a 1.
2.2.16 Sea f (x) = -е-2х + ех . cual de estas fórmulas х, Зх, Зх(1 - х/2), 2 - Зх, o
ех(1 - е -3х ) para f es más preciso para valores pequeños de х?
El mas preciso seria ех(1 - е -3х ), ya que si realizamos la multiplicación nos da:
ех -е-2х que es la misma f(x)
También lo podemos comprobar computando:
Computer Problems 2.2.1
2.2.33. Using your computer, print the values of the functions f(x) = х8 - 8х7 +
28.х6 - 56х5 + 70х4 - 56х3 + 28х2 - Sx + 1 g(x) = (((((((х - 8)х + 28)х -56)х + 70)х -
56)х + 28)х -8)х + 1 h(x) = (х - 1 )8 at 101 equally spaced points covering the
interval [0.99, 1.01]. Calculate each function in а straightforward way without
rearranging or factoring. Observe that the three functions are identical.
Account for the fact that the printed values are not all positive as they should
Ье. If а plotter is availaЬ!e, plot these functions near 1.0 using а magnified
scale for the function values to see the variations involved. (See Rice [1992, р.
43 1.)
Computer Problems 2.2.5 Escribe y prueba un subprograma para f (x) = х-2(1 -
cos x) . Evita loss of significance en resta para todo x y encargate del
problema en x=0.
Para evitar loss of significance por resta, convertiremos f(x) en una serie de Taylor,
entonces f(x) quedará como:
........
Error absoluto:
|18.66665 09290 9 − 18.66600 09290 9| = 0.00065 10438 78
Error relativo:
−5
(|18.66665 09290 9 − 18.66600|) / 18.66665 09290 9 = 0.34871 × 10
Error absoluto:
−5
|0.33333 32889 − 0.33332 9| = 0.42888 × 10
c. 𝑥 = 41 95835, 𝑦 = 31 45727
𝑥/𝑦 (𝑒𝑛 𝑒𝑙 𝑝𝑒𝑛𝑡𝑖𝑢𝑚 𝐼) = 1.33382
𝑥/𝑦 (𝑣𝑎𝑙𝑜𝑟 𝑟𝑒𝑎𝑙) = 1.33382 04491
Error absoluto:
|1.33382 − 1.3338204491| = 0.4491 × 10 −6
Error relativo:
𝑓𝑙(𝑥/𝑦) = 1.33382
−6
1.3338204491 − 𝑓𝑙(𝑥/𝑦) / 1.3338204491 = 0.36701 × 10
a. (x - 1)α
Condition number:
b. ln x
Condition number:
c. sin x
Condition number:
En x➝2π, k(x) ➝∞(o diverge) así que está mal condicionado cuando x➝2π
d. ex
Condition number:
e. x-1ex
Condition number:
f. cos-1 x
Condition number:
|(x)/-(√(1-x2) * arccos x)| ➝ k(x) =|x| / √(1-x2) * arccos x
En x➝1, k(x) ➝∞(o diverge) así que está mal condicionado cuando x➝1