Вы находитесь на странице: 1из 51

Mtodos

Numricos
UPSE 2016
IVAN SANCHEZ

Metodos Numericos
Mtodos Numricos = Anlisis Numrico = Algoritmos numricos.
Reflexin entre clculos, algebra lineal y ecuaciones diferenciales.
Remix entre anlisis matemtico cualitativo y cuantitativo.
Cualitativo: Nos dice que existe, que es nico (teora de conjuntos, etc.).
Cuantitativo: Nos permite determinar aproximadamente la cantidad de aquello que
existe (es complementario al anlisis cualitativo).

Algoritmos Numricos
Mtodos que a partir de un numero finito de pasos obtiene Resultados
Numricos de Problemas matemticos a partir de nmeros.
Esta materia se dedicara a estudiar esos algoritmos.
Los algoritmos numricos son parte del diseo de nuestro software, sirven
para resolver o procesar nuestro modelo matemtico del problema.

Modelo Matemtico???
Al desarrollar una solucin para un problema, tenemos varias etapas:
Determinar el Problema: Definimos el problema brevemente.
Anlisis: Establecemos un modelo matemtico que represente nuestro problema, los
resultados esperados y el objetivo. Es decir mapeamos, transformamos, convertimos
nuestro modelo en trminos matemticos.
Diseo: Establecemos los mtodos numricos (algoritmos) para resolver el modelo
matemtico planteado (el problema).
Instrumentacin: Es la eleccin de la plataforma que usaremos para calcular
nuestra solucin. La computadora. Aqu programamos.
Resultados: Verificamos los resultados.
Retroalimentacin: Existe en todas las etapas, sirve para ajustar los modelos, los
mtodos y la instrumentacin para lograr resultados correctos.

Resolviendo Problemas con


Matemticas
Retroalimentacin

Problem
a
Determin
ar
problema
y
objetivos

Analisis

Diseo

Modelo
Matematic
o

Metodos
numericos
(Algoritmo
s)

Instrumentac
ion

Resulta
do

Programar

Revisar
resultado
sy
objetivos

3 ideas Basicas
Punto Fijo
Eliminacin de Gauss
Aproximacin a funciones

Errores
OBJETIVOS DE APREND IZAJE
E N T E N D E R D E D O N D E V I E N E N L O S E R R O R E S D E C A L C U LO E N L A S C O M P U TA D O RA S .
C O M P R E N D E R C O M O S E P R O PA G A N L O S E R R O R E S Y S U S I M P L I C A C I O N E S .

Errores en el Proceso
Errores en el Anlisis (Inherentes): Nos equivocamos en el modelo
matemtico. Sobre simplificaciones, supuestos equivocados, omisiones.
Errores en el Diseo (Truncamiento): Errores en los mtodos numricos
utilizados. Malas formulas, sobresimplificaciones del proceso. Errores
iterativos.
Errores en la Instrumentacin (Redondeo): Errores en la representacin finita
de nmeros reales en dispositivos de almacenamiento (casi siempre binarios,
veremos mas adelante).

Importancia del manejo de errores


Ariane 5

Falla de software
El error se dio al tratar de convertir un numero flotante de 64 bits a un
numero entero con signo de 16 bits, lo que produjo un overflow (el numero
inicial era demasiado grande y hubo desbordamiento).
El numero a transformar representaba la velocidad horizontal.
No se manejo el error adecuadamente con excepciones y se uso el manejo de
errores por defecto, el cual termino la ejecucin del programa.

Lecciones Aprendidas
No correr software innecesario en sistemas crticos cuando no se necesitan
(la parte que provoco la explosin era software legado del Ariane 4, pero se
dejo intacta en el Ariane 5 a pesar de que no se estaba usando).
Adems de correr pruebas de lo que el sistema debe hacer, tambin
necesitamos probar lo que el software no debe hacer.
No tener manejo de excepciones por defecto que provoquen terminacin del
software en sistemas que no tienen un modo de fallos seguro.

Sistemas de numeracin
Decimal
Hexadecimal
Octal
Binario
En los sistemas posicionales la posicin de los dgitos indica su valor.
Tambin debemos conocer acerca del error de Redondeo y el uso de nmeros de
doble precisin.
Debemos ya conocer acerca de los sistemas de numeracin y la conversin
antes de empezar esta clase. Revisar Introduccin a la computacin.

Error y Error Absoluto


El error es la diferencia entre el resultado esperado (o resultado a aproximar)
y el valor obtenido o valor aproximado.
Si p* es una aproximacin a p, el error se define como:
E = p* - p

Para facilitar las cosas usamos el error absoluto (el valor absoluto del Error).
EA = | p* - p |

Error Relativo y Porcentaje de


Error
Es el error relativo al valor a aproximar.
ER = | p* - p |/p , si p 0

Podemos expresar el error relativo como porcentaje de Error


ERP = ER * 100

Ejemplo
El valor para un calculo debera ser p = 0.10 x 10^2 pero obtuvimos p* =
0.08 x 10^2
Calculemos el Error Absoluto, el Error relativo y el Porcentaje de Error
EA = | 0.08 x 10^2 0.10 x 10^2| = 0.2 x 10
ER = |0.2 x 10|/(0.10 x 10^2) = 0.2
ERP = ER * 100 = 20%

Que tipo de Error Usar?


Por lo general nos interesa el error absoluto (la cantidad que nos desviamos
de lo que queramos calcular).
Cuando son nmeros muy grandes o muy pequeos, el error absoluto es
pequeo tambin. Entonces nos interesa conocer mas en que porcentaje nos
hemos desviado del valor a estimar. All usamos error Relativo. ER.

Ejemplo
Tenemos que p = 0.24 x 10^-4 y p* = 0.12 x 10^-4
Entonces EA = |0.12 X 10^-4 0.24 x 10^-4| = 0.12 x 10^-4
El error absoluto parece muy pequeo, si aceptamos a p* como aproximacin
de p, estaremos cometiendo un grave error (adis cohete, pum!)
Calculando el error relativo vemos:
ER = |0.12 X 10^-4|/0.24 x 10^-4 = 0.5
ERP = 50%

Advertencia Warning
Achtung -
Cuando se manejan
cantidades muy grandes
o muy pequeas, el
error absoluto puede
ser engaoso.
El error relativo es
mejor indicador en esos
casos!

Ahora si pudimos causar una


catstrofe de dimensiones
apocalpticas, no hagamos eso!
Software de
programador
descuidado,
que no sabe
mtodos
numricos.
AKA: Pendejo.

Nmeros en Computadora
Las computadoras solo pueden manejar una cantidad finita de bits para
representar cada numero.
La cantidad de bits asignados para cada numero depende de cada
arquitectura (32 bits vs 64 bits).
Es bueno trabajar con muchos bits para aplicaciones de ingeniera o ciencia.
Para aplicaciones administrativas (la ciencia de contabilidad jajaja), se
pueden usar menos bits (no desperdiciemos bits).

La Palabra
Y esta es mi palabra les digo, y es palabra que deben seguir. Es de 64 bits.
La palabra es el numero de bits que una arquitectura puede manejar. Desde
8 bits hasta 64 bits.
Las palabras se pueden dividir en bytes (8 bits).
64 bits : 8 bytes
32 bits : 4 bytes

Bits en las consolas


16 bits 64 bits
8 bits

128 bits

Ya no importa

Nmeros en Palabras
Toda la informacin se guarda en palabras en la computadora, estas palabras
vienen definidas por la arquitectura.
Pero no palabra en el sentido gramatical, palabra en el sentido de
arquitectura computacional (Word size en funcin de numero de bits).
En algunas situaciones se usan varias palabras para almacenar bits.

Nmeros en Palabras
Para nosotros nmeros en palabras refiere a palabras como concepto de
arquitectura computacional.
Nmeros en palabras no es esto:
100 = CIEN

Es esto:
100 = 0b1100100
En palabras de 8 bits (el primero es el bit de signo).

Nmeros en Palabras
El bit mas significativo (primer bit, hey! El bit de mas a la izquierda) en la
mayora de arquitecturas suele ser el bit de signo.
Si el bit de signo esta apagado 0, significa que no lleva signo (negativo). Es
decir: bit de signo en 0 es un signo positivo (+)
Si el bit de signo esta prendido 1, significa que si lleva signo (negativo). Es
decir: bit de signo en 1 es un signo negativo (-).
El resto de bits se usa para representar el numero.

Nmeros en Palabras
Una palabra de 16 bits puede guardar
2^15 1 nmeros = 327671.
Es decir el intervalo entre 32768 a -32767 (el cero ocupa un espacio).

Representacin de nmeros de punto


Flotante
Se acuerdan de los Floats en programacin.
Esos son nmeros de punto flotante.
Todos los nmeros se normalizan a una representacin decimal.
Hay bits de mantisa (para la parte decimal.
Hay bits de exponente (para mover el punto, por eso es flotante). Estos bits incluyen el
smbolo del exponente.
Tenemos el bit signo para todo el numero.

Errores Graves en Computacin


Supongamos una palabra de 7 bits en una arquitectura
imaginaria.
4 dgitos decimales de mantisa
2 dgitos decimales de caracterstica
1 bit para el signo del numero
Tenemos una palabra de 7 bits

Los nmeros se deben guardar en la forma normalizada!


Ejemplos: 3.0 = .3000 x 10^1
7956000 = .7956 x 10^7
-0.0000025211 = -.2521 x 10^-5

Errores Graves en Computacin:


Suma
Suma de nmeros muy distintos en Magnitud
Intentemos sumar 0.002 a 600 en nuestra compu imaginaria.
0.002 = .2000 x 10^-2
600 = .6000 x 10^3
Los nmeros normalizados no pueden sumarse directamente por lo que deben
desnormalizarse antes de la suma
.000002 x 10^3 + .600000 x 10^3 = .600002 x 10^3
Como solo puede manejar 4 dgitos, los 2 ltimos son eliminados y la respuesta es .6000 x
10^3.
Como que la operacin de suma jams se haya realizado!

Errores Graves en Computacin:


Resta
Resta de nmeros casi iguales
Ejemplo: .2145 x 10^0 0.2144 x 10^0 = .0001 x 10^0
Normalizado .1000 x 10^-3
Aun no hay error, pero solo hay un digito significativo en la respuesta. Un pequeo error
puede propagarse de forma catastrfica.
Supongamos la operacin X = (A B) x C
Los valores son A = .2145 x 10^0 , B = .2144 x 10^0 , C = .1000 x 10^5
Al efectuarse la operacin obtenemos X = 1. No hay error.
Sin embargo, si hay un error en A al calcular al inicio, y este valor fuese A = .2146 x 10^0.
Error absoluto 0.0001, Error Relativo 0.00046, ERP = 0.046%
Si usamos ese valor para calcular X, tendremos un resultado de 2. Un error de 0.046% se
convierte en un error de 100%. Y si este error pasa desapercibido. BOOM!

Calculando

Mas Errores: Overflow y


Underflow
Cuando ejecutamos
una operacin
aritmtica con 2
nmeros valido pero
el resultado es muy
grande o pequeo que
la computadora no
puede representarlo.

Overflow (Rebosado)
Ejemplo: Multiplicar .5000 x 10^8 por .2000 x
10^9 = .1000 x 10^27
Los operandos se pueden guardar, pero el
resultado no porque la caracterstica
(exponente) requiere 3 dgitos y hay 2

Mas Overflow
Ejemplo: 2000000/0.000005

El
computad
or xq
tiene
OverFlow!

Underflow
El underflow puede aparecer en operaciones de multiplicacin y divisin, no
es tan serio como el Overflow!
Las computadoras casi nunca notifican del underflow
(0.3000 x 10^-5) x (0.02000 x 10^-3) = 0.006 x 10^-8 = 0.6000 x 10^-10
Como el exponente -10 tiene 2 dgitos no puede expresarse. El resultado se
guarda como 0.
Como el error relativo es muy pequeo, el problema no es muy serio.

Mas Underflow
Si se desea calcular X = A * B * C
Donde A = 0.3000 x 10^-5 , B = 0.0200 x 10^-3 , C = 0.4000 x 10^7
Si se multiplican primero A * B, entonces tenemos un resultado de 0.
Si esto multiplicamos por C, tenemos CERO!
Pero si reordenamos los trminos para que X = A * C * B, entonces si
obtenemos 0.1200 x 10^2, el cual es el resultado correcto.
As mismo un arreglo en la divisin puede evitar un underflow.

Error de Discretizacion
El error de discretizacion es aquel que se da porque no se puede almacenar
un numero especifico exactamente como un numero binario de punto
flotante.
Error de discretizacion = Error de cuantificacin
Ya que los nmeros no pueden ser expresados exactamente por la maquina
(nmeros maquina), estos nmeros no forman un conjunto continuo se dice
que forman un conjunto Discreto (de all discretizacion).
Discreto significa no continuo.

Error de Discretizacion

Errores de Salida
Aunque las operaciones se realicen correctamente, se debe considerar los
formatos de salida.
Una operacin bien realizada con un formato de salida incorrecto puede traer
problemas
Ejemplo:
La respuesta de un calculo es 0.015625
Si la respuesta se imprime en el formato F10.6 (fortran), la repuesta mostrada es la
correcta.
Si la respuesta se imprime en el formato F8.3, se imprimir 0.016 (si la
computadora redondea), o 0.015 si la computadora trunca.

Propagacin de Errores
En cada operacin hay (o puede haber) un error.
En cada paso, los resultados de las operaciones
anteriores van acarreando ese error!
Es como el juego del telfono. El error se
propaga.
Cada jugador es una operacin.
El resultado final puede ser muy diferente al
esperado.

Propagacin de Errores: Suma


Queremos calcular c = a + b
Si de entrada para la computadora el valor de a es inexacto, representado por a,
tenemos que :
a = a + a
donde a es el error de a* al representar a.

De igual forma para b = b + b


Se tiene que si no hay error en la suma, igual hay un error en el resultado final. Es
la consecuencia del error de representacin que se propaga.
Error = (a + b) (a + b) = (a + a + b + b) (a + b)
= a + b = c

Propagacin de Errores: Suma


Continua.
Ahora c = c + c
El error absoluto es: |(a + b) (a + b)| = |a + b| |a| + |b|
Entonces |c| |a| + |b|
Vemos que los errores a y b se han propagado a c.
c es el error de propagacin.
Si continuamos realizando operaciones, estos errores se seguirn propagando.

Error en Evaluacin de
Funciones.
As mismo se propagan errores cuando se evalan funciones. Como a es aun
una aproximacin de a, tenemos que la evaluacin de una funcin f(x) con x
= a tendr un error.
Error resultante: f = f(a) f(a)
Si a es pequeo, puede aproximarse la curva f(x) por su tangente cuando x
= a. La pendiente de esta tangente es la derivada de la funcin, esto es f(a),
la cual es aproximadamente igual a f/ a.
f a f(a) a f(a)
En valor absoluto |f | |a f(a)| |a| |f(a)|

Error en Evaluacin de
Funciones.

Algoritmos en Mtodos
numricos
Son las secuencias de operaciones algebraicas y lgicas que se utilizan para
obtener una solucin a un problema.
En general existen varios algoritmos para resolver un problema.
Preferimos los algoritmos estables
A pequeos errores en los valores manejados, pequeos errores en los resultados.

Algoritmos y Estabilidad
Supongamos que un error se introduce en algn paso en los clculos.
El error de propagacin de las n operaciones siguientes se denota por n.
En la practica suceden 2 casos:
|n| n c , donde c es una constante independiente de n. Aqu la propagacin del
error es linear.
|n| Kn , para k > 1; se dice entonces que la propagacin del error es
exponencial.

Error Lineal vs Exponencial

Error Lineal vs Exponencial


La propagacin lineal de los errores suele ser inevitable.
Cuando c y son pequeos, es aceptable.

La propagacin exponencial es mortal y debe evitarse.


Sabemos que el termino Kn crece muy rpido, incluso con valores pequeos de n.
Los errores exponenciales hacen de los resultados poco fiables, con mucho error
independiente de .

Estabilidad:
Estables: Algoritmos con error Lineal.
Inestables: Algoritmos con error Exponencial

COMPUTIN
G

Daft Punk Dice


Cuidado con los Overflows
Recuerda que las representaciones binarias no son exactas con respecto a los
nmeros decimales
Los errores se propagan, y se propagaran en tu nota final si no los tomas en
cuenta.
Ese numerito chiquito al que no trataste bien, crecer para joderte la vida y
har que se explote un cohete, te despidan, te metan preso y acabes como
Sadam Hussein.

Bibliografa
Nieves Hurtado, A. (2012). Mtodosnumricosaplicados a la ingeniera.
Grupo Editorial Patria.
Rodrguez Ojeda, L. (2015). Anlisis Numrico Bsico. Guayaquil: ESCUELA
POLITECNICA DEL LITORAL (ESPOL).

Вам также может понравиться