Você está na página 1de 12

MÉTODOS MATEMÁTICOS (Curso 2009-2010)

Cuarto Curso de Ingeniero Industrial


Departamento de Matemática Aplicada II. Universidad de Sevilla

Lección 1: Introducción al Análisis Numérico

ARITMÉTICA DE PRECISIÓN FINITA.

Representación decimal de números reales. Sin duda alguna, el modo más extendido para
denotar números es la notación decimal. Por ejemplo, la igualdad
1 1 1 1
3.1416 = 3 + + 4 2 + 3 + 6 4,
10 10 10 10
lo que realmente indica es que el sı́mbolo a la izquierda del signo de igualdad tiene asignado el
número generado a la derecha de dicho signo. Es conocido que esta representación en base 10
puede también realizarse utilizando como base otros números naturales.
En concreto, si β es un natural estrictamente mayor que uno y x ∈ R, 0 < x ≤ 1, entonces
existe una sucesión de enteros (dj )j≥1 tal que 0 ≤ dj ≤ β − 1 y

X 1
x = (0.d1 d2 · · · dn · · ·)β ! x = dj .
j=1
βj

Además, si x tiene otra representación distinta: x = (0.e1 e2 · · · en · · ·)β (es decir, dn 6= en ,


para algún n), se verifica que existe j0 ∈ N tal que

ej = dj , 1 ≤ j ≤ j0 − 1,
ej0 = dj0 + 1,
ej = 0, dj = β − 1, j > j0 .

La restricción al intervalo (0, 1] no es importante, pues dado |x| > 1, siempre puede encontrarse
el menor natural E tal que
x
± E ∈ (0, 1],
β
x
y si βE
= (0.d1 d2 · · · dn · · ·)β , se define la representación de x en base β como

x = ±(d1 · · · dE .dE+1dE+2 · · · dn · · ·)β .

Además de la representación decimal (base 10), hay otras bases que se utilizan en diversos
contextos. En concreto, en el campo informático se usan ampliamente la representación binaria
(base 2), octal (base 8) y hexadecimal (base 16).

1
Aritmética de precisión finita. Los cálculos numéricos son efectuados usualmente por un
ordenador y, por tanto, debe tenerse en cuenta su forma de realizar las operaciones aritméticas
y poder ası́ evaluar la precisión de los resultados numéricos obtenidos. La inmensa mayorı́a de
los ordenadores actuales utilizan lo que se conoce como aritmética en coma flotante y con un
número finito de dı́gitos.
Denotemos por M el conjunto de los números reales representables en un ordenador idealizado
OM que utiliza aritmética en coma flotante en base β con t dı́gitos. Esto significa que cada número
x ∈ M (x 6= 0) puede escribirse como
 
d1 d2 dt
x = sig(x) × + 2 + · · · + t β E ≡ sig(x) × (0.d1 d2 · · · dt )β × β E ,
β β β

donde β es un número natural estrictamente mayor que 1, denominado base de la representación;


E = ±(E1 E2 · · · Er )β es un número entero denominado exponente; cada dı́gito di verifica 0 ≤
di ≤ β − 1 con d1 6= 0; y el grupo de cifras d1 d2 · · · dt se denomina mantisa de la representación.
Evidentemente, en ordenadores reales, el exponente varı́a entre ciertos lı́mites Emı́n ≤ E ≤ Emáx .
Las dos situaciones más extendidas son:

Precisión simple (32 bits): β = 2, t = 24, r = 7.

Doble precisión (64 bits): β = 2, t = 53, r = 10.

Sin embargo, en notación normalizada, d1 no se guarda al ser no nulo, y hay un lugar más para
almacenar los exponentes. No obstante, lo que en Matlab, que funciona con precisión doble,
realmente se representa en las 11 casillas del exponente es e = E + 1023 cuyo rango (en base 10)
es [1, 2046] y hay que mencionar que algunos valores del exponente se reservan para inf, NaN
y para números no normalizados.
Dado x ∈ R arbitrario, es bastante probable que x no pertenezca a M. Por tanto, si queremos
introducir x en el ordenador OM , debemos encontrar un número de M que lo aproxime. Este
problema es resuelto por cada ordenador de modo distinto, pero nosotros describiremos un
proceso que modela el comportamiento de todos ellos: el redondeo a t dı́gitos de x. Este proceso
consiste simplemente en elegir un número (puede no ser único) de M donde se alcance la distancia
mı́nima entre x y M.
Si escribimos x = sig(x) × β E × a ∈ R con a = (0.d1 d2 · · · dn · · ·)β ∈ [1/β, 1], se define el
redondeo de x a t dı́gitos como el número

E (0.d1 d2 · · · dt )β , si dt+1 < β/2,
f l(x) := sig(x) × β × −t
(0.d1 d2 · · · dt )β + β , si dt+1 ≥ β/2.

En un ordenador real, donde el exponente está acotado, el proceso anterior no garantiza que
f l(x) pertenezca a M. Hay dos razones por las que f l(x) puede no ser un número del ordenador:

porque x es demasiado grande (su exponente es positivo y es mayor que Emáx ), o bien

porque es demasiado pequeño (su exponente es negativo y es menor que Emı́n ).

Los ordenadores tratan de distintas formas este problema. En general, cuando x es demasiado
grande se produce lo que se conoce como overflow y en la variable correspondiente se almacena

2
una etiqueta que representa al valor infinito. Por otro lado, cuando x es demasiado pequeño se
produce lo que se conoce como underflow y, habitualmente, se redondea x como cero y no se
detienen los cálculos, aunque se suele dar un mensaje de aviso.
El resultado básico sobre aproximación de números reales en M utiliza la cantidad u := 12 β 1−t ,
denominada unidad de redondeo y es la cantidad más importante asociada a M.
Teorema. Si x ∈ R, entonces f l(x) = x(1 + δ), donde |δ| ≤ u.
Una cantidad muy relacionada con la unidad de redondeo u es la denominada precisión
de la máquina εM y que se define como la distancia del número 1 al siguiente número mayor
perteneciente a M o, equivalentemente,

M := mı́n{a ∈ M : 1 + a > 1}.

Puede probarse fácilmente que εM = β 1−t = 2u. El programa Matlab utiliza siempre doble
precisión y, en este caso, u = 2−53 ≈ 1.11×10−16 . Conviene aclarar que la orden eps de Matlab
proporciona la precisión de la máquina, esto es, 2u.
En general, al realizar operaciones algebraicas elementales sobre números de M no se obtienen
números de la máquina y, por ello, es necesario definir una aritmética en M o aritmética de
precisión finita. A continuación, expondremos el modelo de aritmética, denominado estándar,
por el que se rigen (o al menos lo intentan) la inmensa mayorı́a de los ordenadores actuales.
Este modelo se basa en que dados x, y ∈ M, debe ocurrir que

f l(x op y) = (x op y)(1 + δ), donde |δ| ≤ u, siendo op = +, −, ∗, /.

Es normal asumir que la extracción de raı́ces cuadradas también verifica el modelo. Conviene
aclarar que f l(x op y) denota el valor de la correspondiente expresión aritmética elemental
(suma, resta, producto y división) realmente computado por el ordenador. Siguiendo un convenio
muy extendido, indicaremos por flop cualquiera de las operaciones aritméticas en coma flotante
anteriores. El costo computacional de muchos métodos numéricos será medido en flops.
Puede comprobarse fácilmente que las leyes habituales de la aritmética usual no se verifican
en este contexto. En concreto, al trabajar en aritmética de precisión finita hay que especificar
el orden en que se realizan las sucesivas operaciones elementales y agruparlas en paréntesis.

Errores relativos y errores absolutos. Resolver un problema numérico usualmente indica


determinar un cierto valor numérico x. En general, sólo pueden obtenerse aproximaciones a dicho
b es una de esas aproximaciones al valor x, se define el error absoluto como
valor. Si x

Error(b b|.
x) = |x − x

b o error relativo
Para muchos propósitos es preferible considerar el porcentaje de error en x
|x − xb|
Rel(b
x) = , suponiendo x 6= 0.
|x|
Por ejemplo, el teorema de la sección anterior afirma que el error relativo de aproximar x por
f l(x) está acotado por u.
El concepto de error relativo está relacionado con la representación decimal a través de la
noción de dı́gitos significativos correctos. Por simplificar, supondremos que la base es 10. Los

3
dı́gitos significativos en una representación decimal son el primero no nulo y todos los dı́gitos
sucesivos.
Se dice que xb tiene o comparte m ∈ N dı́gitos significativos correctos con x si se verifica que
los redondeos a m dı́gitos de xb y x son iguales. El significado intuitivo de este concepto es que los
m primeros dı́gitos de x b, a partir del primero no nulo, son considerados como verdaderos dı́gitos
de la representación decimal de x que, como es lógico, se supone desconocida. Esta definición,
si bien matemáticamente elegante, tiene el defecto de que se necesita conocer el valor de x para
poderla aplicar. En la práctica, lo que se utiliza es el error relativo pues puede probarse que si

x) ≤ 0.5 × 10−m ,
Rel(b

b.
entonces x tiene o comparte m ∈ N dı́gitos significativos correctos con x

CONDICIONAMIENTO DE LOS PROBLEMAS NUMÉRICOS.


ESTABILIDAD DE LOS MÉTODOS NUMÉRICOS.

Métodos numéricos y algoritmos. El objeto del Análisis Numérico es proporcionar métodos


computacionales para el estudio y la solución de diversos problemas matemáticos, que en lo
sucesivo denominaremos problemas numéricos. Para la resolución de los problemas numéricos
se han creado métodos estandarizados de solución denominados algoritmos, los cuales resuelven
dichos problemas mediante una descripción de operaciones (aritméticas y lógicas) perfectamen-
te detalladas, las cuales transforman ciertos datos de entrada en ciertos datos de salida. Un
programa es la implementación de un algoritmo por medio de algún lenguaje de programación.
Los algoritmos están inspirados en uno o varios métodos numéricos. En lo sucesivo, utili-
zaremos el término método numérico para indicar un procedimiento matemático para resolver
un problema numérico o, al menos, para reducir el problema numérico a otro más simple. La
transformación de un sistema de ecuaciones lineales en un sistema triangular se realiza por un
método numérico (denominado eliminación gaussiana), a pesar de que no proporciona la so-
lución del sistema. Grosso modo, un método numérico es un concepto más abstracto que un
algoritmo y con menos énfasis en la completitud de los detalles computacionales. Por ejemplo, el
método de Newton-Raphson es un método numérico para determinar la raı́z de una ecuación no
lineal, pero para tener un algoritmo se deben añadir condiciones sobre los puntos de arranque
o diversos criterios de parada. En las clases teóricas de esta asignatura estudiaremos realmen-
te métodos numéricos, más que algoritmos, y es en las clases prácticas donde abordaremos el
enfoque algorı́tmico.
El primer paso en el análisis de los diversos métodos numéricos será estudiar el problema
de la convergencia, es decir, cuándo funcionan dichos métodos sin tener en cuenta errores de
redondeo.
Puesto que un problema numérico puede ser tratado con diversos métodos, es interesante
determinar qué método numérico es más eficiente. Dos factores muy importantes que miden la
eficiencia de un método numérico son:
Coste computacional: en general no se comparan tiempos de ejecución, sino alguna medida
matemática introducida al efecto: orden de convergencia, número de operaciones, ...

4
Errores de redondeo: se estudia cómo responde el método al implementarlo en aritmética
de precisión finita.
Evidentemente, es también posible diseñar diferentes algoritmos para resolver un mismo proble-
ma numérico. En ese caso, la eficiencia de dichos algoritmos no sólo se mide por los anteriores
factores, asociados a los correspondientes métodos numéricos, sino que aparecen otros nuevos
como, por ejemplo, el uso de la memoria del ordenador. En general, estos nuevos factores tienen
un indudable sesgo informático.

Estabilidad de los problemas numéricos. Como hemos comentado, básicamente la mayorı́a


de los procesos numéricos responden al siguiente esquema: se dan unos ciertos datos de entrada;
estos datos son tratados de acuerdo con un determinado plan (método numérico/algoritmo);
y unos ciertos resultados aparecen como datos de salida. En los diferentes problemas que tra-
taremos, puede incluso admitirse que los resultados dependen continuamente de los datos. En
la literatura matemática, tales problemas suelen denominarse bien planteados. A primera vis-
ta, parece que trabajar con problemas bien planteados es una situación perfecta. Sin embargo,
profundizando en el punto de vista numérico y, por tanto, considerando perturbaciones en los
datos de entrada, debemos fijarnos en el grado de continuidad entre los datos de entrada y
los datos de salida. En muchos problemas este grado de continuidad es realmente bajo y los
datos de salida son muy sensibles a perturbaciones en los datos de entrada (independiente del
algoritmo utilizado). Tales problemas se denominan mal condicionados, y si ocurre lo contrario,
bien condicionados. Conviene volver a subrayar que el condicionamiento de un problema es una
propiedad matemática de dicho problema sin conexión con el método numérico que vayamos a
emplear en su resolución. Los problemas mal condicionados suelen ser difı́ciles de resolver desde
el punto de vista numérico y, muchas veces, la mejor estrategia es plantear dicho problema de
un modo diferente o en otros términos.
Para medir el grado de continuidad comentado anteriormente y dilucidar hasta que punto
un problema está bien o mal condicionado suelen introducirse los denominados números de
condición.

Números de condición para la evaluación de funciones. Supongamos que queremos eva-


luar una cierta función ϕ : D ⊂ R → R, suficientemente diferenciable en un cierto dominio D, en
un punto x ∈ D. Para tales problemas es posible definir razonablemente números de condición.
Ahora bien, al definir un número de condición es fundamental aclarar en cuales de los datos
de entrada se considera la perturbación. En nuestro caso supondremos fija ϕ y consideraremos
un número de condición respecto a perturbaciones en x. Sean y := ϕ(x), yb := ϕ(b x), donde
denotamos por x b la perturbación respecto a x (∆x = x b − x). Aplicando la fórmula de Taylor,
tenemos:
|x|
Rel(y) ' |ϕ0 (x)| × Rel(x).
|ϕ(x)|
Por tanto, es razonable (cuando esté definida) considerar la cantidad
|x|
|ϕ0 (x)|
|ϕ(x)|
como un número de condición respecto a x para el problema anterior.

5
Estabilidad de los métodos numéricos. Si un resultado intermedio de un cálculo numérico
presente en un cierto algoritmo es contaminado por un error de redondeo, este error afectará a
todos los siguientes resultados que dependan de este resultado intermedio. Esto es, el error de
redondeo se propaga, y todos esos errores influyen en el resultado final del cálculo. En cier-
tos casos, esos errores tienen un resultado despreciable en el resultado final. Los algoritmos o
métodos numéricos con esta deseable propiedad se dice que son estables numéricamente. Si por
el contrario, los errores de redondeo intermedios tienen un efecto fuerte en el resultado final
decimos que el método numérico es numéricamente inestable.
Combinando los dos conceptos de estabilidad que hemos visto, llegamos a la siguiente regla
práctica: para obtener buenos resultados numéricos hay que aplicar métodos numéricamente
estables a problemas bien condicionados.
Muchas veces es suficiente retocar algunos aspectos de un método numérico para transformar-
lo de inestable en estable. Estos retoques pueden ser, por ejemplo, reordenar ciertos cálculos del
método. Nos gustarı́a precisar que es posible analizar matemáticamente la estabilidad numérica
de muchos métodos numéricos.

Cancelación numérica y smearing. Es importante señalar que la mayorı́a de las operaciones


son inocuas desde el punto de vista de la propagación de los errores de redondeo: en el caso de
la suma (de números del mismo signo), el producto y el cociente, el error relativo en los datos
se propaga de manera adecuada al resultado.
La situación es diferente con respecto a la diferencia de dos números del mismo signo. Si
los números que restamos están afectados de errores previos y son aproximadamente iguales, se
produce una drástica amplificación de esos errores. Este fenómeno (uno de los más importantes
relacionados con la inestabilidad numérica) se denomina cancelación numérica. Grosso modo,
la cancelación lo que hace es amplificar errores relativos previos e invalidar el resultado final.
Para ser más precisos, consideremos la substracción (en aritmética exacta) de dos cantidades
b := b
x a − bb, donde b
a = a(1 + δa ) y bb = b(1 + δb ). Los términos |δa | y |δb | son los errores relativos
asociados a las cantidades a y b que queremos restar. Si x = a − b, entonces

x − x
b −aδa − bδb |a| + |b|

x = a − b ≤ máx{|δa |, |δb |} |a − b| .

Es decir, el error relativo en x depende (como es lógico) de los errores relativos en a y en b,


pero es amplificado por la cantidad |a|+|b|
|a−b|
. De esta forma, si |a − b| << |a| + |b|, puede generarse
inestabilidad numérica.
A continuación vamos a mostrar un ejemplo simple pero importante donde surge de modo
natural la cancelación numérica: la resolución de ecuaciones de segundo grado. Matemáticamen-
te, el problema de resolver la ecuación cuadrática (real) ax2 + bx + c = 0 es trivial: hay dos
raı́ces (si a 6= 0) dadas por la fórmula

−b ± b2 − 4ac
x= .
2a
Desde el punto de vista numérico la situación es bastante diferente, pues la fórmula anterior no
proporciona,
√ en general, las raı́ces con una precisión razonable. Por ejemplo, si b2 >> 4ac, enton-
ces b2 − 4ac ' |b|, y para una de las elecciones de signo, la fórmula anterior sufre de cancelación

6
numérica severa. También pueden aparecer problemas de cancelación numérica importantes si
b2 ' 4ac.
Un modo de paliar el problema es realizar el cálculo de b2 − 4ac en alta precisión y calcular
las raı́ces por las fórmulas

b + sig(b) b2 − 4ac c
x1 = − , x2 = .
2a ax1
Debemos subrayar que el diseño de métodos numéricamente estables no se consigue simplemente
evitando cancelaciones. De hecho, no hay ninguna receta simple para lograrlo, aunque pueden
darse los siguientes consejos:

Tratar de evitar o al menos aminorar los efectos de cancelaciones numéricas.

Investigar las diferentes formulaciones, matemáticamente equivalentes, de un cierto méto-


do. Algunas son inestables numéricamente, pero otras no (un ejemplo conocido de este
fenómeno ocurre con el método de Gram-Schmidt).

Expresar las fórmulas para actualizar datos del siguiente modo

valor nuevo = valor antiguo + pequeña corrección,

siempre que la corrección pueda calcularse con gran precisión. Ejemplos de esta situación
son el método de Newton o gran parte de los métodos para resolver ecuaciones diferenciales
ordinarias.

Usar solamente transformaciones bien condicionadas en un problema (por ejemplo, en


productos matriciales utilizar preferentemente matrices ortogonales).

Tomar precauciones para evitar overflow y underflow.

Minimizar el tamaño de las cantidades intermedias de los cálculos en proporción rela-


tiva a la solución final. Cantidades intermedias de tamaño grande pueden barrer datos
importantes (pérdida de información) y propician que la respuesta final sea producto de
cancelaciones numéricas. Esta situación puede producirse, por ejemplo, en la eliminación
gaussiana.

El fenómeno comentado en el último punto se denomina smearing y puede visualizarse bas-


tante bien en la sumación recursiva. Supongamos que queremos sumar una cantidad finita de
números a1 , ..., aN , donde los hay positivos y negativos, y la suma total es un número muy pe-
queño. Si realizamos la sumación en aritmética de t dı́gitos y alguna suma intermedia aparece
con más de t dı́gitos significativos, necesariamente los dı́gitos por encima de la t-ésima posición
son barridos. El problema es que esos dı́gitos barridos pueden ser perfectamente del orden de la
suma total e influyen, por tanto, en el valor de dicha suma.

7
CUESTIONES

Ejercicio 1. Determinar dos representaciones binarias distintas del número decimal 0.25.
Ejercicio 2. Determinar una representación binaria del número cuya representación decimal es
49.
d
Ejercicio 3. Determinar una representación decimal del número binario 111.101.
Ejercicio 4. Sean x = (211)3 e y = (110.1)2 dos números en bases 3 y 2, respectivamente.
Calcule x + y en base 4.
Ejercicio 5. Considere un ordenador que trabaja en binario con dos dı́gitos y exponente entre
-2 y 2 (β = 2, t = 2, |E| ≤ 2). Sin tener en cuenta el signo, represente de manera aproximada
sobre la recta real el conjunto M de los números de máquina. Conteste razonadamente a las
siguientes preguntas. ¿Cuántos números distintos se pueden representar en este ordenador?,
¿cuánto vale el número de máquina M ?, ¿cuál es el máximo y el mı́nimo de M?, ¿cuáles deben
ser los representantes de 3 y 7 (f l(3) y f l(7))?
10 1
Ejercicio 6. Representar el número 4
+ 222
en precisión simple.
Ejercicio 7. Determinar la representación del número decimal 23.346 utilizando redondeo en
base diez a tres y cuatro dı́gitos. Obtener la representación del número 35 en un ordenador que
funcione en aritmética de coma flotante en base 2 y con cinco dı́gitos.
Ejercicio 8. Sea M el conjunto de números-máquina en precisión simple (β = 2, 24 dı́gitos).
Determinar los dos números más cercanos a 2/3 en M. ¿Cuál de esos dos números debe escogerse
como f l(2/3)?
Ejercicio 9. Demostrar que εM = 2u.
Ejercicio 10. Comprobar que la propiedad asociativa respecto a la suma no se verifica en
aritmética de precisión finita.
Ejercicio 11. Determinar el error absoluto y el error relativo cometido al aproximar el número
1/9 mediante redondeo en base diez a seis dı́gitos.
Ejercicio 12. Analizar geométricamente el condicionamiento respecto al parámetro 0 < α < 1,
de la solución del sistema de ecuaciones lineales

x + αy = 1,
αx + y = 0.

Ejercicio 13. Determinar el condicionamiento de la suma de n cuadrados, S = x21 + · · · + x2n ,


respecto a perturbaciones en alguno de los datos {x1 , . . . , xn }. Repetir el ejercicio con la suma
de los datos, S = x1 + · · · + xn .
Ejercicio 14. Considere los números a = 17.32 y b = 51.75.

(a) Determine el redondeo de ambos números utilizado por un ordenador que trabaje en base
b = 2 con t = 7 dı́gitos en la mantisa con notación normalizada. Calcule el error que se
comete en cada caso.

8
(b) Determine el valor que proporciona el ordenador para la suma a + b. Calcule el error.

Ejercicio 15. Determinar el valor que asignarı́a un ordenador, que almacena los números en
base 10 a 2 dı́gitos, a la menor raı́z de la ecuación

x2 − 20x + 1 = 0,

usando la fórmula algebraica habitual. ¿Qué ocurre? ¿Qué efecto puede tener el fenómeno de
cancelación numérica al calcular las cuatro raı́ces reales de

x4 − 103 x2 + 1,

usando la fórmula habitual para las ecuaciones bicuadráticas?


1 − cos(x)
Ejercicio 16. Comprobar que la expresión puede presentar cancelación numérica.
x2
Obtener una expresión equivalente que solvente este problema.

PROBLEMAS

Problema 1. Se desea calcular π usando el método ideado por Arquı́medes, esto es, inscribir
polı́gonos regulares de n lados en una circunferencia de radio unidad y hacer tender n hacia
infinito. Denotamos por f (n) la mitad del perı́metro del polı́gono regular de n lados inscrito en
una circunferencia de radio unidad.

1. Demuestre que π 
f (n) = n sen ,
n
y que su lı́mite, cuando n → ∞, es π. Si para k ≥ 2 denotamos yk := f (2k ), demuestre
que r 
1 p 
k+1
yk+1 = 2 1 − 1 − (2−k yk )2 .
2
r
α 1
Para ello, utilice la fórmula sen( ) = (1 − cos(α)).
2 2
2. Utilizando la recurrencia anterior, implemente una función en Matlab para evaluar π.
Muestre una tabla de resultados con las primeras 25 iteraciones. ¿Qué problema surge?
¿Qué ocurre si seguimos iterando?

3. ¿Era previsible la aparición del problema comentado anteriormente?

4. ¿Cómo podrı́a retocarse la recurrencia anterior para obtener un método numérico más
estable?

9
5. Repita el apartado dos con las variaciones expuestas en el apartado anterior.

Problema 2. Consideremos las medias aritmética m y geométrica g de n números positivos


x1 , . . . , xn , es decir,
1 1
m = (x1 + · · · + xn ), g = (x1 x2 · · · xn ) n .
n
1. Determine el número de condición de g y m respecto a perturbaciones en cualquier xk .
Justifique que los correspondientes problemas están bien condicionados.

2. Si los números x1 , . . . , xn son arbitrarios, ¿cuándo pueden surgir problemas de condicio-


namiento de m respecto a perturbaciones de los datos?

3. Diseñe una función en Matlab cuyos argumentos de entrada sean un vector, una per-
turbación y una coordenada asociada a dicha perturbación y cuyos argumentos de salida
sean el error relativo de la suma de las coordenadas del vector y el error relativo en la
correspondiente coordenada.
4. Aplique la función del apartado tres a conjuntos numéricos del tipo

{x1 , x2 , x3 , x4 , . . . , xn } ⊂ R+ , {−x1 , x2 , −x3 , x4 , . . . , (−1)n xn } ⊂ R.

¿Dónde pueden apreciarse los diferentes comportamientos comentados en los apartados


uno y dos?
5. De los diversos algoritmos posibles para resolver el problema de cálculo de m, considere los
dos siguientes: (1) sumar los xk en orden creciente; (2) sumar los xk en orden decreciente.
Utilizando Matlab, determine cuál de los dos algoritmos proporciona mejores resultados
numéricos aplicado al cálculo de
!
1 X
50000
1
12345678 + 2 +k
.
50001 k=1
k

Explique el fenómeno numérico observado.

Problema 3. Consideremos la evaluación de las integrales


Z 1 n
x
yn = dx, n ∈ N, a > 0.
0 a+x

1. Compruebe que se verifica la relación


1
yn+1 = − ayn , n ≥ 1.
n+1

2. Diseñe una función en Matlab que implemente la recurrencia anterior y obtenga, para
a = 10, una tabla con los valores de las veinte primeras integrales. ¿Hay algún valor absurdo
en la tabla?

10
3. En las hipótesis del apartado anterior, sea ybn el valor realmente computado por el ordenador
para yn . Supongamos que se comete algún error al calcular y1 , pero que el resto de las
operaciones aritméticas se realizan sin errores de redondeo. Demuestre que

∆yn = (−10)n−1 (yb1 − y1 ), para n ≥ 1.

A tenor de esta identidad, ¿cómo puede explicarse el fenómeno numérico observado en


el apartado anterior? ¿Cree que, para a = 1, un algoritmo basado en la ecuación de
recurrencia del apartado dos funcionará mejor que con a = 10?

4. Obtenga una fórmula de recurrencia, en orden decreciente, para el cálculo de las integrales
yn e implemente la correspondiente función de Matlab.

5. Para a = 10, calcule y20 utilizando la orden quad de Matlab. Utilizando este valor
numérico y la función del apartado anterior, obtenga una tabla estimando el valor de las
20 primeras integrales. ¿Por qué esta tabla proporciona resultados más precisos que la
obtenida en el apartado segundo?

Problema 4. Este problema muestra un ejemplo donde se produce el fenómeno de inestabilidad


numérica denominado smearing.

1. Para x = 0.01, 0.001, 20, 25 determine un número natural N = N(x) tal que la suma de
los N + 1 primeros términos de la serie de McLaurin de e−x proporcione teóricamente una
aproximación de dicha función menor o igual que 10−15 .

2. Diseñe una función en Matlab que evalúe las sumas parciales de la serie de McLaurin de
e−x y que tenga como argumentos de entrada el punto a evaluar y el número de sumandos
menos uno.

3. Teniendo en cuenta los valores de N calculados en el primer apartado, utilice la función


anterior para evaluar e−x en puntos cercanos al cero como 0.01 y 0.001, y en puntos alejados
del cero como 20 y 25. ¿Dónde proporciona el algoritmo anterior mejores resultados?
¿Mejoran los resultados aumentando el número de sumandos?

4. Represente gráficamente (gráfica de barras) las sumas obtenidas por el algoritmo propuesto
con x = 20 y el número de sumandos variando entre 1 y 100. Interprete dicha gráfica.

5. Plantee razonadamente un método numérico para evaluar e−x que evite las dificultades
observadas anteriormente. Compruébelo repitiendo el apartado tres.

11
EJERCICIOS DE CURSOS ANTERIORES

Primer Parcial. Curso 2007-2008.


Ejercicio 1. Considere los números a = 17.32 y b = 51.75.

(a) Determine el redondeo de ambos números utilizado por un ordenador que trabaje en base
b = 2 con t = 7 dı́gitos en la mantisa con notación normalizada. Calcule el error que se
comete en cada caso.

(b) Determine el valor que proporciona el ordenador para la suma a + b. Calcule el error.

Primer Parcial. Curso 2008-2009.


b
Ejercicio 1. Determine una representación decimal del número binario 11.01.
b + 10.01 suponiendo que trabaja en base β = 2 con t = 5 dı́gitos en la
Calcule la suma 11.01
mantisa y notación normalizada.

Examen Final. Curso 2008-2009.


d 2.
Ejercicio 1. Determine una representación decimal del número binario A = (1.110)
Halle una representación binaria del número decimal B = 0.7.
Calcule A + B en base 2 con redondeo a 6 dı́gitos.

12

Você também pode gostar