Está en la página 1de 13

1

ALGUNOS TEMAS DE ANÁLISIS


NUMÉRICO
2
Índice general

1. INTRODUCCIÓN AL ANÁLISIS NUMÉRICO 5


1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2. ¿Qué es el análisis numérico? . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3. Cuestiones básicas de aritmética computacional . . . . . . . . . . . . . . . 6
1.4. Condicionamiento de un problema y estabilidad de un método . . . . . . . 9
1.5. Propiedades de los métodos numéricos . . . . . . . . . . . . . . . . . . . . 10
1.6. Software numérico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.7. Curiosidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.8. Comentarios sobre la bibliografı́a . . . . . . . . . . . . . . . . . . . . . . . 11

3
4
Capı́tulo 1

INTRODUCCIÓN AL ANÁLISIS
NUMÉRICO

1.1. Introducción

1.2. ¿Qué es el análisis numérico?


Referencia: Viaño [?]
En diversos campos de la ciencia (fı́sica, quı́mica, medicina, ...) o la ingenierı́a se
describen a menudo fenómenos reales mediante modelos matemáticos. Una vez dado un
modelo matemático, una primera intención puede ser obtener una solución analı́tica (solu-
ción exacta), pero una tal solución generalmente sólo será posible obtenerla para ciertas
(quizás drásticas) simplificaciones del problema. Teniendo en cuenta que normalmente el
problema matemático no modeliza exactamente el problema real, con frecuencia resulta
más apropiado encontrar una solución aproximada del modelo matemático más com-
plicado que encontrar una solución exacta del modelo simplificado. Para ese fin son útiles
las técnicas numéricas, que mediante una labor de cálculo más o menos intensa, conducen
a soluciones aproximadas. La notable tarea calculı́stica que comporta la mayorı́a de estos
métodos hace que su uso esté fuertemente ligado a la utilización de un computador.
El primer tema de nuestro proyecto docente de Cálculo Numérico tiene por objetivo
primordial comprender como debe trabajarse en esta disciplina. En primer lugar defi-
nimos el análisis numérico como parte de la matemática constructora de métodos para
aproximar, de una manera eficiente, las soluciones de problemas expresados matemática-
mente. Y ası́, concretamos nuestro objetivo en el diseño de algoritmos eficaces que pueden
ser programados y ejecutados en un computador. Ası́ pués, además de la precisión del
resultado obtenido por un método numérico, es importante considerar el coste, esto es
la cantidad de esfuerzo requerido para resolver un problema. Un método ideal serı́a el
que minimizando el tiempo de computación proporcionase una precisión aceptable en la
solución.
Las etapas del proceso completo de la resolución numérica son:
PROBLEMA −→ MÉTODO −→ ALGORITMO −→
EJECUCIÓN EN ORDENADOR −→ INTERPRETACIÓN DE RESULTADOS

5
6 C. Pola

Para finalizar esta introducción notemos que los métodos numéricos que vamos a
considerar no son un sustituto de la teorı́a matemática que se ha estudiado en cursos
anteriores. Los métodos numéricos son herramientas para ser utilizadas junto con todos
los otros conocimientos matemáticos de que disponemos.

1.3. Cuestiones básicas de aritmética computacional


La aritmética del computador presenta varias diferencias con la aritmética exacta.
Podemos empezar con un ejemplo:
10000000
X
Ejercicio 1.3.1 Calculemos con el computador la suma 0,1 y comparemos el re-
i=1
sultado obtenido con el proporcionado con la aritmética exacta.

¿A qué es debido que obtengamos resultados diferentes? En este apartado conside-


raremos las caracterı́sticas básicas de la aritmética del computador (o también llamada
aritmética punto flotante) con el objetivo de entender ese comportamiento diferente.
Por razones tecnológicas (la máquina está formada por componentes electrónicos que
poseen dos estados: ON y OFF), la mayorı́a de los ordenadores usan internamente el
sistema de numeración binario (esto es, una secuencia de ceros y unos). Sin embargo,
a primera vista puede parecer que el ordenador utiliza el sistema de numeración en base
10 ya que nosotros nos comunicamos con él en dicha base. En realidad, el computador
convierte los datos que le suministramos (en base 10) a base 2, realiza los cálculos en base
2 y finalmente traduce el resultado a base 10 para mostrarlo.
Además, la limitación fı́sica del computador impone que los números con los que
trabaja tengan un número finito de cifras. Por lo tanto, el conjunto de números utiliza-
bles por la máquina es finito, surgiendo ası́ la primera fuente de error: la imposibilidad
de suministrar correctamente los datos al computador (error de redondeo).
Para tratar la representación de los números en un computador introducimos el con-
cepto de número punto flotante. El sistema de numeración punto flotante de un compu-
tador está caracterizado por cuatro números: la base, la longitud de la mantisa y el rango
del exponente. En particular un número punto flotante normalizado en base b es de la
forma:
x = (±d0 .d1 d2 . . . dp )b × be ,
donde 0 ≤ di ≤ b − 1, d0 6= 0 si x 6= 0 y
x = ±(d0 + d1 b−1 + d2 b−2 + . . . + dp b−p )be . (1.3.1)
El número b ∈ IN, b ≥ 2, es la base del sistema de numeración. La cantidad d0 .d1 d2 . . . dp
define la mantisa del número y tiene una longitud finita. El exponente e ∈ Z pertenece
a algún intervalo dado [−L, U ], donde L y U son dos enteros positivos.
Al no poder representar más que un número finito de números parece natural plan-
tearse el rango en el que se encuentran dichos números surgiendo los conceptos de OVER-
FLOW y UNDERFLOW (asociados al intentar representar un número cuyo exponente es
demasiado grande o demasiado pequeño respectivamente).
INTRODUCCIÓN AL ANÁLISIS NUMÉRICO 7

En el siguiente ejercicio se puede comprobar cómo con aritmética punto flotante no se


cumplen algunas propiedades habituales de la aritmética exacta.

Ejercicio 1.3.2 Consideremos un sistema decimal de numeración punto flotante norma-


lizado con p = 3 y dos dı́gitos decimales para e.

a. Determinemos los números menor y mayor, positivos, de este sistema. Observemos el


intervalo de números reales no representados por el sistema a la derecha del cero.

b. Comprobemos cómo la suma de dos números del sistema no tiene por qué ser un
número del sistema. Calculemos por ejemplo: 1,234 × 100 + 5,678 × 10−4 .

c. La suma de dos números distintos de cero puede dar como resultado uno de ellos.
Calculemos por ejemplo: 1,000 × 100 + 1,000 × 10−4 .

Todos los computadores diseñados a partir de 1985 usan un estándar: aritmética pun-
to flotante IEEE. Esto no significa que todos los ordenadores obtengan exactamente los
mismos resultados porque hay alguna flexibilidad dentro del estándar. MATLAB utiliza,
por defecto, el formato doble precisión de IEEE: p = 52 y − 1022 ≤ e ≤ 1023. 1
MATLAB llama realmin al menor número positivo representable en la máquina y realmax
al mayor, cuyos valores son aproximadamente 2,2251E − 308 y 1,7977E + 308 respectiva-
mente. Cuando ocurre una operación no válida, por ejemplo la división por cero, se utiliza
la entidad NAN (not-a-number).
Cálculos simples como la potencia de un número pueden ocasionar OVERFLOW o
UNDERFLOW. Ambas situaciones, a veces pueden evitarse sin más que reorganizar los
cálculos.

Ejercicio 1.3.3 Veamos en la página 45 de Datta [1] un método de cálculo de la norma


euclı́dea de un vector para evitar los problemas de OVERFLOW en el computador.

Ejercicio 1.3.4 La función floatgui (http://www.mathworks.com/moler/ncmfilelist.html)


nos permite observar la distribución no uniforme del conjunto finito de los números máqui-
na en la recta real (ver la página 36 de http://www.mathworks.com/moler/intro.pdf ).

El computador representará un número real x (dentro del rango de números represen-


tables) tomando el número punto flotante más cercano a x, que denotaremos fl(x) y que
queda determinado por la siguiente definición:

Definición 1.3.1 Sea b ≥ 2 un entero, p ∈ IN. Si x ∈ IR \ {0} tal que



di b−i )bN ,
X
x = ±( (d1 6= 0).
i=1

1
Los números punto flotante en doble precisión son almacenados en 64 bits (52 bits para la fracción
de la mantisa, 11 para e y 1 bit para el signo). El signo del exponente no se almacena explı́citamente (en
realidad se almacena el número e + 1023).
8 C. Pola

Se define  p
di b−i )bN
X
±(




 si dp+1 < b/2,
fl(x) =  i=1
p
di b−i + b−p )bN si dp+1 ≥ b/2.
X
±(




i=1

y fl(x) se dice valor de x redondeado a p dı́gitos.

Analizando el error relativo que conlleva representar en el computador un número x


con fl(x), obtenemos el siguiente resultado (ver página 47 de Datta [1]):
Teorema 1.3.1 Si
fl(x) − x
= ,
x
entonces:
|| ≤ 0,5b−p+1
fl(x) = x(1 + ).

Ejercicio 1.3.5 Leer en la página 46 de Datta [1]sobre la conveniencia de utilizar el error


relativo frente al error absoluto (ver ejemplo 2.2.2).

Definición 1.3.2 El número 0,5b−p+1 recibe el nombre de precisión relativa de la


aritmética punto flotante con p dı́gitos (en la mantisa), precisión relativa de la
maquina o simplemente precisión de la máquina o unidad de redondeo. Se llama
épsilon-máquina, εM , al menor número máquina positivo tal que fl(1 + εM ) > 1 (su
valor es b−p+1 ) 2 .

El valor de εM depende del computador (ver en la página 48 de Datta [1] un algoritmo


para estimar el valor de εM ). MATLAB llama eps al espaciamiento εM y su valor por
defecto es aproximadamente 2,2204E − 016.
Supuesto que el computador sigue el estándar IEEE, se cumplen las siguientes Leyes
de la aritmética punto flotante: dados dos números punto flotante, x e y, se tiene que
f l(x ∗ y) = (x ∗ y)(1 + ),
con || ≤ εM donde ∗ denota una de las operaciones: +, ∗, / (en el último caso, supuesto
que y 6= 0).
Intuitivamente está claro que un gran número de operaciones punto flotante pueden
acumular un error bastante grande. Pero lo que puede resultar llamativo es que una sola
operación puede producir un error considerable, como ocurre cuando se restan dos números
del mismo signo y de aproximadamente el mismo tamaño (cancelación catastrófica).
ˆ
|d − d|
Ejercicio 1.3.6 Calcula x − y para x = 0,54617 e y = 0,54601. Comprueba que =
|d|
0,25, siendo d y dˆ los resultados obtenidos respectivamente con la aritmética exacta y con la
aritmética decimal de numeración punto flotante normalizado con 4 dı́gitos en la mantisa.
2
Algunas referencias se refieren al espaciamiento εM como la precisión de la máquina. En este caso la
unidad de redondeo es εM /2.
INTRODUCCIÓN AL ANÁLISIS NUMÉRICO 9

Afortunadamente en muchos casos la cancelación catastrófica se puede evitar (ver en


páginas 58-59 de Datta [1] varios ejemplos).
En resumen, denotando por F al conjunto de números máquina o punto flotante,
destacamos los siguientes puntos:

1. El conjunto F es finito.

2. Existe un máximo para F (overflow level).

3. Existe un mı́nimo positivo para F (underflow level).

4. Los números de F no están uniformemente distribuidos (más concentrados al despla-


zarnos hacia el cero).

5. El resultado de operaciones aritméticas entre números de F puede no


pertenecer a F y entonces tiene que ser redondeado al número de F más próximo
a él.

6. Denotamos por εM el menor número de F positivo que verifica: 1 + εM > 1 en


aritmética punto flotante. Dicho número está relacionado con la precisión relativa
de la aritmética computacional.

7. Los niveles de overflow y underflow son determinados principalmente por el número


de bits dedicados al exponente, mientras que la precisión de la máquina está deter-
minada por el número de bits destinados a almacenar la mantisa.

1.4. Condicionamiento de un problema y estabilidad


de un método
En la precisión de una solución computada en un proceso numérico pueden influir tanto
el algoritmo utilizado como los datos del problema planteado. A continuación tratamos
de aproximarnos a los conceptos de condicionamiento de un problema y estabilidad de un
método.
El condicionamiento de un problema es una propiedad intrı́nseca del problema.
Un problema (con unos datos dados) se dice que está mal condicionado si errores relativos
pequeños en los datos pueden causar un error relativo grande en la solución. En las páginas
81 y 83 de Datta [1] tenemos varios ejemplos de problemas mal condicionados.
Por otro lado, la imprecisión de la solución calculada puede ser debida al algoritmo
empleado y no a los datos del problema. Ası́, para la resolución de una ecuación de segundo
grado, podemos plantearnos dos métodos, uno estable y otro inestable (ver página 58
de Datta [1]). En este caso la imprecisión del resultado calculado no se le puede achacar
al problema ya que en cuanto cambiamos de algoritmo, con los mismos datos, hallamos
una solución satisfactoria.
El concepto de estabilidad aparece repetidamente en análisis numérico y suele definirse
de una manera particular en cada tipo de problema. Ası́, en la resolución de ecuaciones
10 C. Pola

lineales, Ax = b, un algoritmo se dice estable si la solución computada x̃ verifica: (A +


E)x̃ = b + δb, siendo E y δb “pequeños”.
Más adelante, cuando desarrollemos el resto de los temas, profundizaremos más en
estos conceptos.

1.5. Propiedades de los métodos numéricos


Para empezar podemos distinguir los métodos directos (diseñados en un número
finito de etapas) frente a los métodos iterativos. En el desarrollo del temario veremos
ejemplos de los dos tipos.
Para evaluar el coste de un algoritmo se mide la cantidad de tiempo empleado en su
ejecución y los requisitos de almacenaje (esto último en el caso de problemas de talla
grande). Teóricamente el coste de tiempo de un método directo se puede estimar con-
tabilizando el número de operaciones necesarias para implementarlo y en el caso de los
métodos iterativos se puede estudiar la velocidad de convergencia.

1.6. Software numérico


Escribir un código que implemente un algoritmo numérico puede parecer una tarea
trivial pero no es ası́ si lo que se pretende es un software de alta calidad (potente, flexible,
fácil de usar y modificar, portable, robusto y basado en algoritmos numéricos eficaces).
Entre el software matemático de tipo numérico de alta calidad destacamos:

LAPACK Resuelve los problemas tı́picos de álgebra lineal numérica: resolución de sis-
temas de ecuaciones lineales, problemas de autovalores, etc.

MATLAB Software descrito en documento adjunto.

NAG Resuelve problemas de álgebra lineal numérica y otros problemas de cálculo numéri-
co: EDO, EDP, optimización,...

NETLIB (NETwork LIBrary, http://www.netlib.org/) da acceso a mucho software


numérico como por ejemplo la librerı́a LAPACK.

1.7. Curiosidades
En la historia reciente se han producido sonados desastres que han sido atribuidos a
un uso inadecuado del cálculo numérico. En el siguiente enlace:

http://ta.twi.tudelft.nl/nw/users/vuik/wi211/disasters.html

se encuentran referenciados algunos ejemplos como el fallo de una baterı́a de misiles Patriot
en la Guerra del Golfo (1991) que tuvo como consecuencia la muerte de 28 personas o la
explosión del cohete europeo Ariane 5 en 1996 que supuso, entre otras cosas, una gran
pérdida económica.
INTRODUCCIÓN AL ANÁLISIS NUMÉRICO 11

1.8. Comentarios sobre la bibliografı́a


El libro de Viaño [3] se dedica exclusivamente al tema abordado en este capı́tulo. Una
introducción rápida y básica del tema se encuentra en el capı́tulo primero del reciente libro
de O’Leary [2]. Datta [1] dedica tres capı́tulos al tema y lo ilustra con varios ejemplos.
12 C. Pola
Bibliografı́a

[1] B.N. Datta. Numerical Linear Algebra and Applications. Brooks/Cole, 1995.

[2] D.P. O’Leary. Scientific Computing with Case Studies. SIAM, 2009.

[3] J.M. Viaño. Lecciones de Métodos Numéricos: Introducción general y análisis de erro-
res. Tórculo Edicións, 1995.

13

También podría gustarte