Sie sind auf Seite 1von 13

Metodos Matematicos de Especialidad.

Especialidad de Construccion.
Curso 12-13
Tema 1. Generalidades sobre el Calculo Numerico
11 de septiembre de 2012

Indice
1. Motivacion y objetivos del calculo numerico 2
2. Matlab 3
3. Aritmetica de la computadora 4
3.1. Notacion cientca normalizada y n umeros de maquina . . . . . . . . . . . . . 4
3.2. Error de redondeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4. Problema bien planteado. Condicionamiento. Algoritmos estable e inesta-
bles. 8
5. Distintos problemas en el Calculo Numerico 10
6. Metodos iterativos. Convergencia local y global. Velocidad de convergencia 11
7. Coste computacional de algoritmos 13
1
Luis Sanz Generalidades sobre el Calculo Numerico
Metodos Matematicos de Especialidad. Especialidad de Construccion.
Curso 12-13.
TEMA 1. GENERALIDADES SOBRE EL C

ALCULO
NUM

ERICO
1. Motivacion y objetivos del calculo numerico
Este breve captulo tiene como objetivo introducir conceptos basicos relativos al calculo
numerico y que se utilizaran en el resto de la asignatura.
~ Necesidad del calculo numerico
Veamos algunas de las razones por las que el caclulo numerico es util:
El valor numerico de muchas funciones, como por ejemplo e
x
o cos(x); no puede calcu-
larse mediante operaciones elementales de suma, resta, multiplicacion y division. Para
ello se necesitan procedimientos numericos que aproximen estas cantidades. Dichos pro-
cedimientos son implementados en un ordenador, pues este permite realizar un gran
n umero de operaciones por segundo.
El modelado de muchos procesos conduce al planteamiento de problemas matematicos
que no pueden ser resueltos mediante formulas explcitas que se puedan evaluar direc-
tamente. A continuacion se presentan algunos ejemplos:
Un gran n umero de funciones no tienen una primitiva que se pueda expresar me-
diante funciones elementales, con lo que la integral
R
b
a
f(x)dx no se puede calcular
de forma directa. Ejemplo:
R
1
0
e
x
2
dx.
En general, la solucion de una ecuacion no lineal no se puede calcular por metodos
exactos. Ejemplo:
15 cos(x
2
) = x
3
En general, los autovalores de una matriz de orden elevado (por ejemplo 4 4) no
pueden ser calculados de forma explcita.
En general, la solucion a una ecuacion diferencial ordinaria y
0
(x) = f(x; y(x))
no se puede expresar mediante funciones elementales. Es decir, las ecuaciones
diferenciales para las cuales existe una formula explcita para la solucion son mas
la excepcion que la regla. Lo mismo sucede para la mayor parte de las ecuaciones
en derivadas parciales.
Por ello, se hacen necesarios procedimientos que puedan ser implementados en un
ordenador y que aproximen la solucion a los problemas de este tipo.
2
Luis Sanz Generalidades sobre el Calculo Numerico
En otras ocasiones, aunque los problemas pueden ser resueltos explcitamente, su com-
plejidad hace que sea necesario recurrir a los ordenadores para encontrar una solucion
de manera rapida. Algunos ejemplos son:
Resolucion de grandes sistemas lineales de ecuaciones Ax = b. En ocasiones el
n umero de incognitas puede estar en el orden de los miles y las decenas de miles.
Problemas de interpolacion de datos por una curva de una familia de curvas, por
ejemplo un polinomio.
~ Objetivo del calculo numerico El objetivo del calculo numerico es el de desarrollar
metodos que puedan ser implementados en un ordenador, mediante algoritmos, para aproxi-
mar de forma eciente la solucion de problemas expresados de forma matematica.
~ El \problema general" que pretendemos resolver mediante el calculo numeri-
co: Dado un problema matematico, al que denominaremos \problema teorico", con solucion
unica, se busca un algoritmo que se pueda implementar en un ordenador mediante un pro-
grama adecuado cuya ejecucion genere una solucion numerica que este cerca de la teorica en
alg un sentido que habra que precisar.
Idealmente:
La solucion numerica debe ser muy precisa y la ejecucion del algoritmo debe requerir
poco tiempo de calculo, aunque estos factores estan normalmente en conicto.
El algoritmo debe ser facil de programar y su ejecucion debera ocupar la mnima
cantidad de memoria posible.
Puesto que los datos de entrada de nuestro problema estan sometidos a incertidumbres,
el algoritmo debe ser robusto o estable, es decir, los resultados deben ser poco sensibles
a peque~ nas perturbaciones en los datos.
El resto de la leccion es una exposicion de los distintos puntos introducidos en este prob-
lema general.
2. Matlab
La aplicacion informatica que se utilizara para llevar a cabo la programacion y los calculos
en la asignatura es Matlab.
Matlab es una aplicacion ampliamente utilizada a efectos de computacion, simulacion y
visualizacion en el mundo de la ingeniera. Al utilizar un lenguaje de programacion de alto
nivel (es decir, mas sencilla de cara al programador), la implementacion de algoritmos en
Matlab es mucho mas rapida que en lenguajes como Fortran o C, lo cual le convierte en muy
atractivo desde el punto de vista pedagogico. Por otro lado, aunque la velocidad de ejecucion
de los programas es bastante inferior a la que se conseguira en Fortran o C, esta es suciente
para las necesidades de la asignatura.
Matlab es al mismo tiempo una aplicacion interactiva y un entorno de desarrollo, y en
el calculo tecnico y cientco Matlab se ha convertido en uno de los estandares \de facto".
Matlab ofrece, entre otras, las siguientes posibilidades:
3
Luis Sanz Generalidades sobre el Calculo Numerico
Un entorno amigable y facil de utilizar, en el que se pueden realizar interactivamente
todo tipo de calculos, con acceso a una librera de miles de funciones muy probadas y
altamente ecientes.
Un entorno de programacion con todas las herramientas necesarias para desarrollar
nuevas funciones y/o aplicaciones.
Conjuntos de funciones (por ejemplo integradores de ecuaciones diferenciales ordinar-
ias, funciones para trabajar con matrices sparse, etc.) desarrolladas por algunos de los
mejores expertos mundiales en el tema, y \toolboxes" especializados que cubren un
gran n umero de areas tecnologicas (optimizacion, tratamiento de se~ nal, EDPs, comu-
nicaciones, nanzas, control, etc.).
Una excelente documentacion referente al programa, tanto online como sobre papel, y
un gran n umero de libros que, o bien tratan sobre Matlab, o bien utilizan Matlab para
apoyar sus contenidos.
3. Aritmetica de la computadora
3.1. Notacion cientca normalizada y n umeros de maquina
Para representar un n umero, el ordenador utiliza aritmetica nita es decir, en la repre-
sentacion de un n umero se utiliza un n umero nito de bits (ceros y unos). Notese que el
ordenador trabaja en forma binaria, no en forma decimal.
~ Notacion cientca normalizada
Para representar los n umeros en un ordenador se usa la llamada notacion cientca
normalizada:
a) Caso decimal (aunque ya sabemos que el ordenador no trabaja as): 732;5051 =
;7325051 10
3
. En general
x = r 10
n
con
1
10
_ r < 1 y n Z. La condicion
1
10
_ r < 1 siempre se puede cumplir eligiendo
n adecuadamente y es la que hace que se hable de notacion normalizada.
b) Caso binario (la forma verdaderamente empleada por el ordenador):
x = q 2
m
(1)
con
1
2
_ r < 1 y m Z. A q se le denomina mantisa y a m exponente.
La longitud de palabra es el n umero de dgitos que se utilizan en la representacion
del n umero. Como ejemplo se puede considerar un ordenador hipotetico, que denominaremos
M-32, con 32 bits de longitud de palabra. Estos bits se utilizan de la siguiente forma:
a) Signo de x 1 bit
b) Signo del exponente 1 bit
c) Exponente (n umero entero) 7 bits.
4
Luis Sanz Generalidades sobre el Calculo Numerico
d) Mantisa (n umero real) 23 bits. De hecho, como
1
2
_ r < 1 el primer bit de la
mantisa es siempre uno, es decir, las mantisas son de la forma (;1 )
2
con lo que ese
uno no se codica y los 23 bits de la mantisa se utilizan para representar del segundo
al 24
o
bit en q.
Como consecuencia de la aritmetica nita, el ordenador solo puede reconocer un n umero
nito de n umeros. Por ello, no todos los n umeros reales pueden almacenarse en un ordenador.
Denici on 1 N umero de maquina. Se dice que un n umero real x es un n umero de
maquina si puede expresarse en la forma (1) con:
1) [m[ ocupando 7 bits a lo sumo.
2) q ocupando 24 bits a lo sumo.
Comentarios:
La restriccion (1) implica [m[ _ (1111111)
2
= 2
7
1 = 127 y como 2
127
- 10
30
, M-32
puede manejar n umeros entre 10
30
y 10
30
aproximadamente.
La restriccion (2) implica que nuestros calculos tienen una precision limitada a 7 cifras
decimales, pues 2
24
- 10
7
. Por ello, en un ordenador con 32 bits de longitud de
palabra no tiene sentido intentar alcanzar una precision de mas de 7 cifras decimales.
Los n umeros enteros pueden utilizar para su representacion todos los bits de la pal-
abra salvo uno reservado al signo, por lo que en Marc-32 estaran comprendidos entre

2
31
1

y 2
31
1.
~ Desbordamientos por exceso y por defecto. Si se genera un n umero demasiado
alto (m > 127) en la maquina se produce un desbordamiento por exceso que generalmente
comporta un error fatal, es decir, el programa se interrumpe automaticamente. Si se genera
un n umero demasiado peque~ no (m < 127) se produce un desbordamiento por defecto que
generalmente hace que al n umero en cuestion se le asigne el valor cero.
~ Operaciones aritmeticas. Todas las operaciones en el ordenador se llevan a cabo a partir
de operaciones aritmeticas basicas: suma, resta, multiplicacion y division.
~ Calculos en doble precision.
Para conseguir representar n umeros mas grandes o mas peque~ nos, o bien para aumentar
la precision de ciertos calculos, se puede utilizar la llamada aritmetica de doble precision, en
la que cada n umero se representa mediante dos palabras y usualmente la mantisa tiene al
menos el doble de bits, es decir, 48 bits. As, la precision se extiende, aproximadamente, al
doble de posiciones decimales respecto a la precision simple. En efecto, 2
48
=

2
24

2
-

10
7

2
= 10
14
.
El inconveniente de los calculos en doble precision es el siguiente: los calculos en precision
simple son llevados a cabo directamente por el procesador del ordenador, mientras que los
calculos en precision doble se deben llevar a cabo via software. Por ello, los calculos en doble
precision son aproximadamente dos o mas veces mas lentos que los llevados a cabo en precision
sencilla.
5
Luis Sanz Generalidades sobre el Calculo Numerico
Notese que MATLAB realiza todos los calculos en precision doble, con lo que la precisi on
es de 14 cifras decimales. Esto hace que se pueda conseguir mucha precision, pero la velocidad
de los calculos es mas lenta que la que se obtiene trabajando con precision simple.
3.2. Error de redondeo
Hay n umeros muy sencillos que no son n umeros de maquina. Por ejemplo, 10
1
=
(0;00011000110001 )
2
, es decir, la representacion binaria de 0;1 tiene un n umero inni-
to de cifras. Si x no es un n umero de maquina, para ser manejado por el ordenador necesita
ser aproximado a un n umero maquina que denotamos fl(x), introduciendose con ello un error
de redondeo.
Estudiemos el error de redondeo. Si x es un n umero dentro del intervalo de la maquina
(M-32), el n umero maquina mas cercano, satisface

x fl(x)
x

_ "
con " = 2
24
- 10
7
con lo que el error relativo que se comete al introducir un n umero en el
ordenador es menor que 10
7
.
Es muy importante recordar que, en cualquier calculo que se lleve a cabo con un orde-
nador, es imposible evitar la existencia de error de redondeo.
~ Efecto del error de redondeo en los calculos. >Como afecta el error de redondeo a
las operaciones basicas?
1. Efecto del error de redondeo en la suma de n umeros del mismo signo. La
siguiente proposicion asegura que cuando se suman n umeros del mismo signo, el error relativo
correspondiente al aeror de redondeo es peque~ no:
Proposicion 1 Si un ordenador tiene un error relativo maximo de ", entonces el error de
redondeo relativo al calcular una suma x
1
+ + x
n
de n umeros del mismo signo es a lo
sumo (1 + ")
n
1 - n".
Puesto que " es muy peque~ no, n" es peque~ no incluso para valores de n muy grandes, con
lo que la suma de n umeros del mismo signo no ofrece ning un problema.
Veamos un ejemplo: Considerese la suma
x = ;3721478693
y = ;3720230572
x + y = ;7441709265
6
Luis Sanz Generalidades sobre el Calculo Numerico
Si los calculos se llevaran a cabo en un computador hipotetico DECIMAL con mantisa de 5
dgitos se tiene:
fl(x) = ;37215
fl(y) = ;37202
fl(fl(x) + fl(y)) = ;74417
Por ello el error relativo es
x + y fl(fl(x) + fl(y))
x + y
- 1;245009670575413e 006
que es muy bajo.
2. Efecto del error de redondeo en la resta de n umeros del mismo signo. Perdida
de cifras signicativas. En constraste con la situacion anterior, cuando se restan n umeros
muy cercanos entre s se producen errores relativos muy grandes. Como ejemplo tomaremos
lo n umeros x e y anteriores pero ahora los restaremos en vez de sumarlos. As
x = ;3721478693
y = ;3720230572
x y = ;0001248121
pero si los calculos se llevaran a cabo en un computador hipotetico DECIMAL con mantisa
de 5 dgitos se tendra:
fl(x) = ;37215
fl(y) = ;37202
fl(fl(x) fl(y)) = ;00013
es decir, la precision es solo de 4 cifras signicativas. El error relativo es
x y fl(fl(x) fl(y))
x y
- 0;4
es decir, un 40 %; que es muy alto.
Por ello, una de las reglas de oro de la programacion es evitar las sustracciones de can-
tidades similares o, si no se puede evitar, realizar dichos calculos en doble precision. Por
ejemplo, para asignar y =
_
x
2
+ 1 1 para x peque~ no es mejor programarlo en la forma
y =
x
2
p
x
2
+1+1
.
Comentario: Cuando se lleva a cabo un calculo que tiene lugar en muchas fases, los errores
de redondeo en cada una de estas, aunque sean peque~ nos, podran acumularse y degradar
signicativamente la precision el proceso en su conjunto. Esta es una situacion que hay que
evitar (ver el concepto de algoritmo estable mas adelante)
7
Luis Sanz Generalidades sobre el Calculo Numerico
4. Problema bien planteado. Condicionamiento. Algoritmos estable e
inestables.
Nos planteamos ahora el problema de la robustez tanto del problema teorico que se quiere
resolver como del algoritmo numerico que se va a emplear.
Denici on 2 Problema bien planteado. Diremos que un problema matematico esta bien
planteado para un cierto conjunto de datos cuando:
1) Para todo valor de los datos de entrada existe solucion y es unica.
2) La solucion depende de forma continua de los datos del problema.
Notese la importancia de que la solucion dependa de forma continua de los datos. Si no
es as, el intentar buscar una solucion de una manera aproximada no tiene mucho sentido.
Nosotros solo trataremos problemas bien planteados.
Denici on 3 Problema teorico bien condicionado/mal condicionado. Sea un prob-
lema bien planteado. Se dice que el problema (independientemente del algoritmo numeri-
co empleado para su resolucion practica) esta bien condicionado cuando cambios relativos
peque~ nos en las entradas (datos) del problema producen cambios relativos peque~ nos en las
soluciones correspondientes. Sean x y x
0
dos entradas cercanas entre s y sean y e y
0
a sus
salidas correspondientes
Entonces, se dice que un problema teorico esta bien condicionado cuando para cualesquiera
entradas x y x
0
, la variacion relativa en la salida
|y
0
y|
|y|
no es demasiado grande respecto a la variacion relativa en la entrada
|x x
0
|
|x|
En algunos problemas se puede denir un n umero de condicion C _ 0 que mayora la
variacion relativa en la salida respecto de la variacion relativa en la entrada, es decir, C
cumple que
|y
0
y|
|y|
_ C
|x x
0
|
|x|
As, un problema estara \bien condicionado" cuando C sea bajo y \mal condicionado" cuando
C sea alto (aproximadamente del orden de 10
5
).
8
Luis Sanz Generalidades sobre el Calculo Numerico
Denici on 4 Algoritmo estable/inestable. Un algoritmo es inestable cuando los peque~ nos
errores que se producen en cada una de sus etapas pueden agrandarse en etapas posteriores
y terminar degradando seriamente la exactitud del calculo en su conjunto. De lo contrario se
dice que el algoritmo es estable.
Comentarios:
El concepto de condicionamiento hace relacion al problema teorico, mientras que la
nocion de estabilidad se reere al algoritmo empleado para resolverlo.
Siempre habra que utilizar algoritmos estables, pues como es imposible huir de los
peque~ nos errores de redondeo en cada etapa, un algoritmo inestable, incluso si se aplica
a un problema bien condicionado, puede proporcionar una salida muy alejada de la
solucion teorica buscada.
La resolucion numerica de un problema mal condicionado, sea cual sea el algoritmo
que se utilice, proporcionara una solucion muy distinta de la solucion teorica, pues los
peque~ nos errores de redondeo haran que la solucion obtenida tenga poco que ver con
la solucion teorica. Por ejemplo, considerese la sucesion denida mediante
x
0
= 1; x
1
=
1
3
x
n+1
=
13
3
x
n

4
3
x
n1
; n _ 1
Se comprueba facilmente que la solucion es x
n
=

1
3

n
, pero si usamos la recurrencia
anterior para generar la solucion en M-32 se obtiene que para x
1
hay 7 dgitos decimales
correctos, para x
3
solo 6, para x
3
solo 5, para x
8
no hay ninguna cifra decimal correcta y
para x
15
el error relativo es de 10
8
. La explicacion a este fenomeno es que el problema,
para datos x
0
; x
1
en el entorno de 1; 1=3, esta muy mal condicionado. En efecto, la
solucion general de x
n+1
=
13
3
x
n

4
3
x
n1
es x
n
= A

1
3

n
+ B4
n
y aunque nuestras
condiciones iniciales implican que A = 1 y B = 0, los errores de redondeo al introducir
dichas condiciones (y en el todos los calculos del proceso) hacen que tengamos un
termino "4
n
donde " es peque~ no. Para n sucientemente alto, el termino "4
n
dominara al
termino
1
3
n
y el resultado que proporcione cualquier algoritmo para generar la sucesion
x
n
sera totalmente erronea.
Para resolver un problema mal condicionado lo ideal (si es que se puede, porque no
siempre es posible) es transformar dicho problema en otro problema equivalente (es
decir, que tenga las mismas soluciones) y que este mejor condicionado.
De las consideraciones anteriores se deduce que solo cabe esperar que los resultados
numericos se aproximen a los teoricos en el caso de problemas bien condicionados y
resueltos mediante algoritmos estables.
9
Luis Sanz Generalidades sobre el Calculo Numerico
5. Distintos problemas en el Calculo Numerico
Entre las muchas formas en las que se puede clasicar a los problemas numericos, clasi-
caremos a estos en tres grupos:
~ (A) Problemas en los que la incognita a determinar pertenece a un espacio de
dimension nita.
En estos problemas la incognita puede ser, por ejemplo, un vector, una matriz, un poli-
nomio, etc. Estos problemas pueden ser resueltos de forma exacta (salvo errores de redondeo)
por algoritmos adecuados. Entre estos se encuentran los problemas de:
Resolucion de sistemas lineales y no lineales.
Calculo de autovalores y autovectores.
Optimizacion de funciones.
Los algoritmos para resolver problemas de este tipo se pueden clasicar en:
1. Metodos directos: La solucion buscada se encuentra en un n umero nito de pasos.
As, si no existiese error de redondeo la solucion encontrada coincidira con la teorica.
2. Metodos iterativos: La solucion buscada x se obtiene como lmite de un cierto
proceso iterativo en el que se empieza con valor inicial x
0
y se genera una sucesion x
k
tal que x = lm
k!1
x
k
. Por ello, la solucion se alcanzara \en un n umero innito de pasos".
Como esto no es viable ni efectivo, lo que se hace es truncar el proceso iterativo cuando
se estime que se esta sucientemente cerca de la solucion.
Por ejemplo, para calcular la suma de la serie S =
1
P
n=0
n
n
3
+1
se puede utilizar que
S = lm
N!1
N
P
n=0
n
n
3
+1
y por ello se puede tomar
N
P
n=0
n
n
3
+1
, con N alto, como valor
aproximado de la serie.
Como criterio de parada del proceso iterativo se suele elegir el de parar cuan-
do la distancia entre dos iteraciones sucesivas (en una cierta norma adecuada al
contexto) sea menor que una cierta cantidad, es decir, cuando
|x
k
x
k1
| _ Tol
Por tanto, en cualquier metodo iterativo, ademas del error de redondeo se intro-
duce un error de truncamiento al transformar un proceso innito en uno nito.
Sin embargo, la iteracion se puede detener de forma que el error de truncamiento
sea tan peque~ no como queramos, incluso mas peque~ no que el error de redondeo.
En ese caso, el error de truncamiento puede despreciarse frente al de redondeo y
por ello solo se habla del primero.
~ (B) Problemas en los que como dato se tiene un elemento de un espacio de
dimension innita (por ejemplo, al espacio de las funciones continuas) y se pretende
aproximarle por un elemento de un espacio de dimension nita (por ejemplo, al
espacio de los polinomios)
Ejemplos:
10
Luis Sanz Generalidades sobre el Calculo Numerico
Interpolacion de una funcion por un polinomio en unos determinados puntos.
Ajuste de una funcion por polinomios por el criterio de mnimos cuadrados.
En estos problemas, ademas del error de redondeo, se introduce un nuevo error que tiene
que ver con el paso de dimension innita a dimension nita.
~ (C) Problemas en los que la incognita a determinar pertenece a un espacio de
dimension innita (por ejemplo, al espacio de las funciones continuas).
Estos problemas no pueden ser resueltos directamente, y lo que se suele hacer es reducir
el problema a uno de dimension nita. Por ejemplo, en vez de intentar aproximar el valor de
la funcion incognita en todos los puntos de un intervalo, se puede tomar una malla e intentar
aproximar el valor en los puntos de dicha malla.
Ejemplos:
Resolucion de ecuaciones diferenciales ordinarias.
Resolucion de ecuaciones en derivadas parciales.
Como en (B), en estos problemas, ademas del error del redondeo, se tiene error que tiene
que ver con el paso de dimension innita a dimension nita.
6. Metodos iterativos. Convergencia local y global. Velocidad de
convergencia
Estudiemos algunos conceptos relacionados con los metodos iterativos introducidos ante-
riormente.
~ Convergencia global/local.
Con respecto a la convergencia del metodo iterativo, podemos distinguir:
Convergencia global. Se dice que un metodo iterativo para resolver un determinado
problema es globalmente convergente si para cualquier iteracion inicial x
0
el metodo
converge a una solucion del problema.
Convergencia local. Se dice que un metodo iterativo para resolver un determinado
problema es localmente convergente, si para cada solucion x existe un entorno U de x
tal que para cualquier iteracion inicial x
0
U el metodo converge a x.
Comentarios:
Obviamente, la convergencia global implica convergencia local, no siendo cierto el
recproco.
En muchas ocasiones, aunque se sepa que un algoritmo es localmente convergente, no
se sabe a priori cual es el entorno de la solucion en el que queda garantizado que el
algoritmo converge a dicha solucion. Ademas, hay que tener en cuanta que a priori
no se sabe cual es la solucion, luego para tener exito es muy importante seleccionar
adecuadamente la estimacion inicial x
0
. As, se pueden dar casos en los que dependi-
endo como se elija la estimacion inicial, el metodo converja a la solucion deseada, no
converja, o converja a un punto que no es solucion.
11
Luis Sanz Generalidades sobre el Calculo Numerico
Los algoritmos iterativos suelen ser localmente convergentes. Sin embargo, muchos de
ellos no son globalmente convergentes.
~ Velocidad de convergencia local
Con respecto a la velocidad con la que un metodo iterativo converge, se tiene lo siguiente:
En ocasiones es posible dar resultados de convergencia local que caracterizan la velocidad de
convergencia a la solucion cuando se empieza en un entorno de dicha solucion. Para estudiar
la velocidad con la que las iteraciones x
k
convergen a x se introduce la siguiente denicion:
Cuando se una sucesion x
k
que converge a x cumple
|x
k
x| = O(
1
k
p
)
se dice que converge con velocidad
1
k
p
.
Recordemos que:
Se dice que una sucesion a
k
es O(b
k
) cuando k , cuando existe una C tal que
[a
k
[ _ C [b
k
[ para k sucientemente alto o, equivalentemente, cuando
lm
k!1
sup

a
k
b
k

<
Se dice que una sucesion a
k
es o(b
k
) cuando k , cuando lm
k!1
a
k
b
k
= 0 para k
sucientemente alto.
Por ejemplo, a
k
=
5 log k
k
3
es o(
1
k
2;9
).
Para caracterizar velocidades de convergencia mayores que los de tipo O(
1
k
p
), se introduce
la siguiente denicion:
Denici on 5 Orden de convergencia. Se dice que una sucesion x
k
que converge a x tiene
orden de convergencia q si q es el supremo de los n umeros reales tales que
kx
k+1
xk
kx
k
xk
q a con
a < . As, q puede no existir y de hacerlo puede ser no entero.
Comentarios:
Si se cumple |x
k
x| =
M
k
p
para alguna M y alg un p; la convergencia es solo lineal.
En el caso q = 1 se habla de convergencia lineal y en el caso q = 2 de convergencia
cuadratica. Hablando de forma laxa, la convergencia lineal signica que, cerca de la
solucion, al ir iterando las cifras signicativas de precision adicionales se van ganando
de forma lineal. La convergencia cuadratica indica que cerca de la solucion, el n umero
de cifras signicativas de precision se doblan de forma aproximada con cada paso.
12
Luis Sanz Generalidades sobre el Calculo Numerico
7. Coste computacional de algoritmos
Uno de los factores clave para elegir un algoritmo es que sea eciente, es decir, que tenga
un bajo coste computacional. Un algoritmo con un coste computacional muy alto requerira un
tiempo de ejecucion muy alto, lo cual le puede convertir en poco practico.
Por ello, es necesario establecer alguna medida del coste computacional de un algoritmo
que permita comparar distintos algoritmos que realicen una misma tarea. Logicamente, el
coste computacional estara ligado al tama~ no del problema que se quiere resolver, que en cada
caso correspondera a un concepto distinto (orden de una matriz, n umero de puntos en una
malla, etc).
Algunas de las operaciones que realiza el ordenador, y que por tanto requieren tiempo,
son:
Operaciones aritmeticas: sumas, restas, multiplicaciones y divisiones
Evaluacion de funciones (en ultimo termino esta evaluacion se lleva a cabo utilizando
las operaciones aritmeticas anteriores).
Accesos a memoria para conocer el valor de una variable o para almacenar su valor.
Asignaciones de una variable: por ejemplo x = 2y + 1.
Comparaciones (en los bucles if, while, for, etc)
Nosotros nos concentraremos exclusivamente en dos operaciones:
1. Operaciones aritmeticas. En estas, el coste de la multiplicacion y la division, que
es muy parecido, es mucho mayor que el de la suma y la resta, por lo que solo se suele
considerar el n umero de multiplicaciones y divisiones. A cada multiplicacion o division
la denotaremos op.
2. Evaluacion de funciones: N umero de veces que se eval ua la funcion dato del
problema. Normalmente, el coste de la evaluacion de una funcion es muy superior al
coste de una multiplicacion o una division. Por ello en algoritmos en los que abunde
la evalucion de funciones y no haya demasiadas multiplicaciones/divisiones, se puede
despreciar el coste de estas frente al de las evaluaciones.
Una vez denido el tama~ no n del problema y determinado el coste (en ops) C = C(n)
como funcion de n, se puede hablar de algoritmos con:
Coste logartmico: C(n) = O(log n); n
Coste polinomico: C(n) = O(n
p
); n
Coste exponencial: C(n) = O(a
n
) para a > 1, ; n
Coste factorial: C(n) = O(n!); n
Comentarios:
Para n sucientemente alto, coste logartmico _ coste polinomico _ coste exponencial
_ coste factorial.
Pues bien, apara valores altos de n (del orden de las decenas o centenas de miles) los
unicos algoritmos que pueden ser resueltos por los ordenadores de hoy en da en un
tiempo razonable son los que tienen coste logartmico o polinomico.
13

Das könnte Ihnen auch gefallen