Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

CalNum Enfoquealgoritnico Con Python

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 23

Prof.

Olinto López
PROGRAMACION Y CÁLCULO NUMÉRICO

Programación y Cálculo Numérico


Un enfoque algorítmico con el soporte del lenguaje de programación Python

1. Introducción
El análisis numérico es una rama de la matemática cuyo objetivo principal es el estudio
de métodos para resolver problemas numéricos complejos. El estudio de estos métodos
no es reciente, pero con el apoyo del desarrollo de software mediantes lenguajes de
programación, se les puede usar con mucha eficiencia en la resolución de problemas de
ingeniería que antes no era posible.

El estudiante debe tener los conocimientos básicos necesarios para proveer soporte u
formalidad de cada uno de los métodos numéricos que se van a estudiar. Se desarrollara
la forma algorítmica de cada uno de los métodos para luego instrumentar su forma
computacional usando sus conocimientos de Cálculo, visualización y programación en
Python. Las prácticas, el estudiante lo hará en su pc o laptop o también usando una
plataforma online como www.replit.com u otra similar.

Es importante destacar que el estudio de cada método se debe complementar con


ejemplos y ejercicios sencillos que puedan resolverse con la ayuda de una calculadora
científica. Sin embargo, para la resolución de problemas de ingeniería de gran
complejidad se debe crear los scripts en Python y usar la computadora.

1.1. Resolución de problemas con la computadora

Si tenemos un problema de ingeniería a resolver y que está en nuestro ámbito de


conocimiento para lograr tal objetivo. Entonces, se debe tener presente varias etapas
en la resolución.

En la etapa de análisis, es necesario estudiar y entender el problema, sus


características, las variables y los procesos que intervienen. También, debemos conocer
los datos requeridos y el objetivo esperado. En el caso de problemas de tipo numérico,
el resultado de la etapa de análisis será el modelo matemático que caracteriza el
problema. Por ejemplo, un sistema de ecuaciones lineales.

En la etapa de diseño, se procede a elegir el método numérico apropiado para resolver


el modelo matemático. Debe verificarse que no se puede, o que sería muy laborioso,
obtener la solución exacta mediante métodos analíticos. Los métodos numéricos
permiten obtener soluciones aproximadas con simplicidad. El resultado de esta etapa es
la formulación matemática del método numérico y la elaboración de un algoritmo para
usarlo.

1
Prof. Olinto López
PROGRAMACION Y CÁLCULO NUMÉRICO

En la etapa de instrumentación, se elige el dispositivo de cálculo para la obtención de


resultados. En problemas sencillos, basta una calculadora. Para problemas complejos,
se requiere desarrollar un programa (scripts) en un lenguaje de programación, es decir,
se requiere el uso de la computadora. Esta opción es importante para la extensión de
los métodos.
Este proceso debe complementarse con la revisión y retro alimentación. Es preferible
invertir más tiempo en las etapas anteriores antes de llegar a la instrumentación.

1.2. Fuentes de error en la resolución de un problema numérico

En el análisis pueden introducirse errores debido a suposiciones inadecuadas,


simplificaciones y omisiones al construir el modelo matemático. Estos errores se
denominan errores inherentes.

En la etapa de diseño se pueden introducir errores en los métodos numéricos utilizados


los cuales mediante fórmulas y procedimientos simplificados para obtener respuestas
aproximadas. También se pueden introducir errores al usar algoritmos iterativos. Estos
errores se denominan errores de truncamiento.

En la etapa de instrumentación, se pueden introducir errores en la representación finita


de los números reales en los dispositivos de almacenamiento y en los resultados de las
operaciones aritméticas. Este tipo de error se denomina error de redondeo. También se
pueden introducir errores de redondeo al usar datos imprecisos.

Los errores son independientes y su efecto puede acumularse o propagarse. En el caso


del error de redondeo el efecto puede incrementarse si los valores que se obtienen son
usados en forma consecutiva en una secuencia de cálculos.

Debido a que los métodos numéricos en general permiten obtener únicamente


aproximaciones para la respuesta de un problema, es necesario definir alguna medida
para cuantificar el error en el resultado obtenido. Normalmente no es posible
determinar exactamente este valor por lo que al menos se debe establecer algún criterio
para estimarlo o acotarlo. Esta información es útil para conocer la precisión de los
resultados calculados.

1.2.1. Consistencia numérica


En la aplicación de un método numérico que utilice datos obtenidos mediante
observación o medición, si los datos tienen una precisión limitada, la precisión del
método numérico también estará limitada a esa precisión.

Por otra parte, si un método numérico se desarrolla en varios componentes, la


precisión de cada uno debe ser igual p similar para que método tenga consistencia
numérica.

2
Prof. Olinto López
PROGRAMACION Y CÁLCULO NUMÉRICO

1.3. El modelo matemático

Al resolver el problema mediante con la computadora, la parte más laboriosa


normalmente es el análisis del problema y la obtención del modelo matemático que se
usará para llegar a la solución.

Este es la descripción matemática del problema a resolver. Esta formulación requiere


tener conocimiento del ámbito del problema y de las herramientas matemáticas para su
definición.

1.4. Algoritmo numérico

Un algoritmo, es una descripción ordenada de los pasos necesarios para resolver el


problema. El diseño de un algoritmo para resolver el problema numérico requiere
conocer en detalle la formulación matemática, las restricciones de su aplicación, los
datos de entrada y algún criterio para validar y aceptar los resultados obtenidos.

Este facilita la instrumentación computacional del método numérico. En `problemas


sencillos se puede omitir la elaboración del algoritmo e ir directamente a la
codificación computacional.

1.5. Instrumentación computacional

En este curso se utilizara el lenguaje de programación Python para instrumentar el


algoritmo correspondiente al método numérico a aplicar para la resolución del
problema. Se deben escribir funciones, procedimientos que puedan desde una ventana
interactiva o desde un programa que contenga los datos del problema que se va a
resolver.

Esta actividad es necesaria para entender los métodos numéricos y no depender de


instrumentaciones de otros disponibles en los paquetes computacionales existentes.
Desarrollar software para matemáticas e ingeniería es una actividad formativa que
permite enfrentar la solución computacional de problemas nuevos o más complejos.

Con los scripts de los métodos numéricos desarrollados por el estudiante se puede
construir una librería que se puede mejorar, agrandar o sustituir las funciones
existentes, de tal manera que los usuarios interesados puedan resolver
computacionalmente muchos problemas numéricos con mayor facilidad y
comprensión.

1.6. Lenguaje de programación Python

 Es de fácil instalación en todos los sistemas operativos.

3
Prof. Olinto López
PROGRAMACION Y CÁLCULO NUMÉRICO

 El traductor e intérprete de Python y muchas librerías de utilidad pueden


descargarse de internet.
 La librería es útil para hacer graficas de funciones. Esta librería está
incluida en la librería .
 La librería tiene facilidades para el manejo matemático simbólico.
 La librería contiene funciones (numéricos) relacionados con el
Algebra Lineal.
 La librería contiene funciones para aplicaciones de matemáticas
avanzadas.
 Python y las librerías son de uso público y pertenecen a la categoría de
software libre.

1.7. Un ejemplo Inicial

A continuación se presenta un ejemplo para seguir el procedimiento descripto antes.

Problema. Se necesita un recipiente rectangular, sin tapa, de un litro de capacidad.


Para su construcción se debe usar una lámina rectangular de 32 cm de largo y 24 cm de
ancho. El procedimiento será recortar un cuadrado idéntico en cada una de las esquinas
y doblar los bordes de la lámina para formar el recipiente. Determine la medida del
lado del cuadrado que se debe recortar en cada esquina para que el recipiente tenga la
capacidad requerida.

Análisis y diseño
Para formular el modelo matemático debe entenderse bien los requerimientos

El dibujo anterior facilita la comprensión de los detalles para la elaboración del modelo
matemático

Sean
: Medida del lado de los cuadrados que se deben
recortar para formar la caja
: Los lados de la caja
( ) ( )( ) : Volumen de la caja

Como el volumen debe ser de , entonces


( ) ( )( )
Desarrollando tenemos el modelo matemático o ecuación a resolver

4
Prof. Olinto López
PROGRAMACION Y CÁLCULO NUMÉRICO

Como se puede ver, el modelo matemático es una ecuación polinómica de tercer grado
que no se puede resolver directamente por la conocida fórmula para resolver
ecuaciones de grado 3. Por lo tanto se usara un método numérico.

Algoritmo e instrumentación

Los cálculos se harán directamente creando un script (Una hoja de trabajo que tiene
varias sentencias en un lenguaje de programación) sencillo en Python usando
algunas funciones disponibles en las librerías que se usan para estos tipos de trabajo.

Posteriormente se revisarán métodos para resolver este tipo de modelo matemático.


El estudio de estos métodos, la construcción de algoritmos y su instrumentación
computacional dx la base para entender estos objetos matemáticos computacionales
y extender el conocimiento al desarrollo de métodos para resolver problemas
nuevos y más complejos.

Para hacer la gráfica del modelo matemático (ecuación) con python


Sentencia en python Comentario
# Se carga la librería simbólica
( ) #Se define la variable simbólica ‘x’
#Se define la fórmula del modelo matemático
( ( )) #Se construye el gráfico

La salida para el conjunto de sentencias anteriores

Para obtener cada una de las raíces que se observan en la imagen


Sentencia en python Comentario Salida
( ) #Metodo simbólico para resolver la ecuación
( ( )) #Mostrar la primera raíz con 5 dígitos 1,6963
( ( )) #Mostrar la primera raíz con 5 dígitos 8,0932
( ( )) #Mostrar la primera raíz con 5 dígitos 18,211

5
Prof. Olinto López
PROGRAMACION Y CÁLCULO NUMÉRICO

Las tres son respuesta de la ecuación

La tercera respùesta no es factble para el problema, pues se obtendrian


valores negativos para las otras dimensiones de la caja, ya que
( )

La primera respuesta se puede descartar porque la caja tendria una


apariencia muy plana, por lo cual se elige la segunda como la respuesta
adecuada.

La solución numérica para el problema planteado


Los lados de la caja en centímetros son: aproximadamente. Si
multiplicamos el volumen de la caja es:

2. Tipos de métodos numéricos


Existen dos estrategias para el diseño de métodos numéricos y es importante conocer sus
características para elegir adecuadamente el método, así como su instrumentación
computacional.

2.1. Métodos iterativos


Los métodos iterativos son procedimientos para acercarse a la respuesta mediante
aproximaciones sucesivas. Estos incluyen fórmulas que tienen la propiedad de
producir un resultado más cercano a la respuesta exacta a partir de un valor inicial
estimado. El resultado obtenido se puede usar nuevamente como valor anterior para
continuar mejorando la aproximación.

Se deben considerar algunos aspectos tales como la elección del valor inicial, ha
propiedad de convergencia de la fórmula y el criterio (de parada) para terminar las
iteraciones.

Estos métodos son auto correctivos. La precisión de la respuesta está dada por la
distancia entre el último valor calculado y la respuesta esperada. Esto constituye el
error de truncamiento.

El siguiente dibujo describe la estructura de un método iterativo

Cada ciclo se denomina iteración. Si la fórmula converge, en cada iteración la


respuesta estará más cerca del resultado esperado. Aunque en general no es posible
llegar a la respuesta exacta, se puede a cercar a ella tanto como lo permita la
aritmética computacional del dispositivo usado para el cálculo.

6
Prof. Olinto López
PROGRAMACION Y CÁLCULO NUMÉRICO

2.1.1 Ejemplo 1
Utilice una formula iterativa ( ) para calcular la raíz cuadrada √
de un número real positivo .

Análisis
La fórmula iterativa indicada tiene la propiedad que si es un valor estimado
para , entonces el valor calculado estará más cerca de . Se toma este valor
obtenido como el nuevo valor y se itera de nuevo con la fórmula y el valor
obtenido estará más cerca de la respuesta esperada. Este comportamiento se
conoce como convergencia.

Diseño
El modelo matemático lo tenemos, es la fórmula de iteración ( )

Algoritmo
Nombre : Raíz cuadrada
Entrada : n : Dato ( Valor real)
x : Valor inicial
Sale : t : Solución aproximada
Repetir
t ( )
x
Hasta que sea muy cercano a

Instrumentación
Con el algoritmo indicado vamos a calcular la raíz cuadrada de 7

0 ( ) 66
1 ( )
2 ( )
3 ( )
4 ( )
En Las dos últimas filas se observa que los resultados
no cambian con 10 dígitos decimales. Por lo tanto, se puede asumir que los
resultados tienen esa precisión, se observa también la rápida convergencia de la
sucesión generada. Sin embargo es necesario verificar que la solución es
aceptable pues si la sucesión { } converge a un valor, no necesariamente la
respuesta es correcta. Esta validación debe realizarse en el modelo matemático.

7
Prof. Olinto López
PROGRAMACION Y CÁLCULO NUMÉRICO

Verificamos si el resultado obtenido pasa la prueba


( )

Se realiza el ejercicio anterior pero cambiando la formula iterativa (La cual es


incorrecta).
Calcular √ con la siguiente fórmula iterativa ( ). Valor
inicial .

Solución
El procedimiento es análogo al realizado anteriormente, solo se debe cambiar la
fórmula de iteración. Pasamos a construir la tabla

0
( )
1
( )
2
( )
3 ( ) 2,160468969

13
( )
14
( )
15
( )

En Las dos últimas filas se observa que los resultados


no cambian con 9 dígitos decimales. Por lo tanto, se puede asumir que los
resultados tienen esa precisión.

Verificamos si el resultado obtenido pasa la prueba


( )
La fórmula converge (hay precisión) pero el valor obtenido es inexacto o
incorrecto (sesgo), ya que el cuadrado de este resultado no se aproxima a 7 o no
es la raíz cuadrada de 7.

Esto último plantea la importancia de verificar la respuesta del modelo


matemático y la validez de la formulación del método numérico utilizado. De
igual manera es necesario constatar si la respuesta es aceptable al problema
planteado.

2.1.2. Convergencia de los métodos iterativos

Es la propiedad que tienen las fórmulas iterativas de un método numérico para


producir resultados cada vez más cercanos a la respuesta esperada.

8
Prof. Olinto López
PROGRAMACION Y CÁLCULO NUMÉRICO

Definición: Convergencia de una fórmula iterativa


Sean : Respuesta del problema (Valor desconocido)
: Valor calculado en la iteración (Valor aproximado)

Si la fórmula iterativa converge, entonces

2.1.3. Error de truncamiento


La distancia entre la respuesta esperada y el valor calculado con una fórmula
iterativa se denomina error de truncamiento.

Definición Error de truncamiento


Sean : Respuesta del problema (Valor desconocido)
: Valor calculado en la iteración (Valor aproximado)
: Valor calculado en la iteración (Valor aproximado)

Entonces
= : Error de truncamiento en la iteración
= : Error de truncamiento en la iteración

2.1.4. Finalización de un proceso iterativo


Si la formula iterativa converge, la distancia entre los valores consecutivos se
debe reducir y se puede usar como una medida para el error de truncamiento.
Así que, con la definición de convergencia se puede establecer un criterio para
parar o finalizar el proceso iterativo.

Consideremos los resultados de dos iteraciones consecutivas: . Si el


método converge, es decir,

Al restar estas dos expresiones se obtiene

Por consiguiente, se puede definir como criterio de parada (convergencia) para


un proceso iterativo como sigue

Definición: Criterio (error absoluto) para parar un proceso iterativo


Sea algún valor positivo arbitrariamente pequeño. Si el método iterativo
converge, se cumplirá que a partir de alguna iteracion :
| |
El número es el error absoluto y se usa como una medida para acotar el error
de la respuesta calculada y así obtener una buena precisión en los cálculos
realizados.

La precisión utilizada en los cálculos aritméticos, debe ser coherente xon la


precisión del método numérico y con la exactitud del modelo matemático y los
datos utilizados.

9
Prof. Olinto López
PROGRAMACION Y CÁLCULO NUMÉRICO

Además , es necesario verificar que la respuesta final sea válida para el modelo
matemático y aceptable (exactitud) para el problema que se esta resolviendo.

Ejemplo: Se desea que la respuesta calculada para un problema con un método


iterativo tenga un error absoluto menor que . Entonces los cálculos
deberan parar cuando se cumpla que | | . Los cálculos deben
realizarse al menos con la misma precisión.

Ahora bien. Para que el criterio del error sea independiente de la magnitud de la
respuesta, es coveniente usar el error relativo y no el error absoluto.

Definición: Criterio del error relativo


Sea algún valor positivo arbitrariamente pequeño. Si el método iterativo
converge, se cumplirá que a partir de alguna iteración
| |
| |
Por ejemplo, si la respuesta calculada para un problema con un método iterativo
tiene un error relativo menor que . Entonces los cálculos deben parar
cuando se verifique
| |
| |
2.1.5. Error de truncamiento y estimación del error
Se debe distinguir entre estas dos medidas de error

: Error de truncamiento en la iteración . Su valor es


desconocido pues es la respuesta que se desea
calcular.

: Estimación del error de trumcamiento en la ietración i.


Esta es la diferencia entre dos aproximaciones
consecutivas se usa como estimación para el error de
truncamiento si el método converge.

2.1.6. Eficiencia de un método iterativo


Sean los errores de truncamiento en las iteraciones
respectivamente. Se supondrá que estos valores son pequeños y menores a 1.

Si a partir de alguna iteración i se puede establecer que | | | |, siendo


alguna constante positiva menor que 1, entonces se dice que la convergencia es
lineal o de primer orden y es el factor de convergencia. Se usa la notación
( ) y escribir ( ) para expresar de una manera sencilla el orden de
esta relación, y se lee “de primer orden ”.

10
Prof. Olinto López
PROGRAMACION Y CÁLCULO NUMÉRICO

Si en un método esta relación es tal que ( ) emtonces el error se


reducirá más rápidamente y se dice que el método tiene convergencia cuadrática
o de segunda orden.

Definición: Orden de convergencia de un método iterativo


Sean los errores en las iteraciones consecutivas respectivamente.
Si estos se pueden relacionar en la forma:
( )
Entonces el método iterativo tiene convergencia de orden .

Si un método iterativo tiene convergencia mayor que la lineal, entonces si el


método coverge, lo hace mas rápidamente.

2.1.7 Intervalo de existencia e intervalo de convergencia


El intervalo de existencia de la respuesta de un problema es la región en la cual
se puede determinar que se encuentra la solución.

El intervalo de convergencia es la región en la cual se poede asegurar que la


secuencia de valores calculados en las iteracciones converge a la respuesta del
problema.

2.1.8. Elección del valor inicial


Los métodos iterativos normalmente requieren que el valor inicial sea elegido
apropiadamente. Si es elegido al azar, puede producir la no convergencia.

2.2. Métodos directos


Son los métodos que para obtener los resultados, se debe ejecutar una secuencia finita
de operaciones aritméticas. La cantidad de cálculos aritméticos depemde del tamaño
del problema. El resultado obtenido será exacto siempre que se pieden conservar en
forma exacta los valores calculados en las operaciones aritméticas. En caso contrario
se introducirán errores de redondeo.

Por ejemplo. Instrumentar un método directo para resolver un sistema triangular


inferior de ecuaciones lineales.

Modelo matemático

En donde

11
Prof. Olinto López
PROGRAMACION Y CÁLCULO NUMÉRICO

: Coeficientes (datos)
: Contsantes (datos)
: Variables (resultados)

La formulación matemática del método se obtiene despehendo sucesivamente a de


la ecuación .

( )

( )
En general
( )
Es conveniente describir el uso de la fórmula mediante un algoritmo, el cual facilita el
uso manual y su instrumentación computacional.

Algoritmo

Nombre : Triangular
Entrada : : Dato ( Número de ecuaciones)
: Datos (Coeficientes)
: Datos (Constantes)
Sale : ⃗ : Solución aproximada

Para hacer

Para hacer

Fin
( )
Fin

Este algoritmo es un caso particular del problema general de los sistemas de


ecuaciones lineales.

Nota:
Los métodos numéricos normalmente se usan para resolver un tipo general de
problemas. Los algoritmos pueden probarse con la ayuda de la calculadora, pero lo
ideal es implementarlos en algún leguaje de programación y crear librerias.

12
Prof. Olinto López
PROGRAMACION Y CÁLCULO NUMÉRICO

Por ejemplo, Con la calculadora, usar la formulación del algoritmo Triangular para
resolver el sistema triangular inferior:

= 2
= 3
= 6

Aplicando el algoritmo

( ) ( )

( ) ( ( ))

Verificamos la solución
Sustituyendo los valores de en las ecuaciones del sistema

= ( )

= ( ) ( ) 2,999

= ( ) ( ) ( )

Como se puede apreciar en cada una de las ecuaciones, los cálculos aritméticos
arrojan valores aproximados a las constantes . Esto es debido a los errores de
redondeos realizados en el cálculo de cada una de las . Esto indica que si se toman
los valores de cada con más decimales mejora entonces los resultados en la
verificación.

2.2.1. Error de redondeo

Los métodos numéricos operan con datos que pueden ser inexactos y con
dispositvos no adecuados para representar a los números reales. El error de
redondeo se atribuye a la incapacidad de almecenar todas las cifras de estos
números (por ejemplo, la calculadora) y a la imprecisión de los instrumentos de
medición con los cuales se obtienen los datos.

Definición: Error de redondeo absoluto


Sean
: Valor exacto (Normalmente desconocido)
̅ : Valor aproximado (Observado o calculado)
= ̅ Error de redondeo

Definición: Error de redondeo relativo


Sean
: Valor exacto (Normalmente desconocido)
̅ : Valor aproximado (Observado o calculado)

13
Prof. Olinto López
PROGRAMACION Y CÁLCULO NUMÉRICO

= ̅ Error de redondeo

= Error relativo de redondeo. Se


̅ debe cumplir: ̅
Notas:
 Debido a que normalmente no es posible calcular exactamente el valor de
, se debe intentar al menos acotar su valor.
 A diferencia del error de truncamiento, se dispone solamente de un
resultado para esyimar el error de redondeo. Igialmente, es necesario
evaluar el modelo matemático con el valor calculado.

2.2.2. Error en la representación de los números reales

Las operaciones aritméticas pueden producir resultados que no se pueden


representar el dispositivos para hacer los cálculos. Si estos errores se producen en
forma recurrente entonces el error propagado pudiera crecer en forma
significativa dependieno de la cantidad de operaciones requeridas. Esta cantidad
de operaciones está determinada por la eficiencia del algoritmo.

Por ejemplo. Suponga que un dispositivo puede almacenar unicamente los


cuatros primeros dígitos decimales de un número real y trunca los restantes (esto
es redondeo inferior).

Se requiere almacenar el número: . Lo primero a hacer es expresar el


número en forma normalizada, es decir, sin enteros y ajustando su magnitud
como potencias de 10:

Ahora se descompone el número en dos partes como sigue

El valor almacenado es el valor aproximado


̅
El error de redondeo por la limitación del dispositivo de almacenamiento es
̅

En general, si n es la cantidad de enteros del número normalizado con potencias


de 10 y m es la cantidad de cifras decimales que se pueden almacenar en el
dispositivo, entonces si se truncan los decimales sin ajustar la cifra anterior, el
error de redondeo absoluto está acotado por
| |

Mientras que el error relativo: (Solo depende del almacenamiento)


(| |)
| |
(| |)

2.2.3. Error de redondeo en las operaciones aritméticas

14
Prof. Olinto López
PROGRAMACION Y CÁLCULO NUMÉRICO

En los métodos directos debe considerarse el error que se propaga en las


operaciones aritméticas, el cual puede ser significativo cuando la cantidad de
cálculos requeridos es grande. Se analizan los errores el las operaciones: suma y
el producto. A esto se le debera agregar el error de redondeo que se produce al
almacenar el resultado en algún dispositivo.

a) Error de redondeo en la suma

Sean : Valores exactos


̅̅ : Valores aproximados

Por la definición de error de redondeo

= ̅, ̅
=
= (̅ ) (̅ ) (̅ ̅) ( )
̅ = ̅ ̅ Valor que se almacena

Error absoluto en la suma


=
| | | | | |

Error de redondeo relativo a la suma

̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅

̅ ̅
̅ ̅ ̅ ̅ ̅ ̅
̅ ̅
̅ ̅ ̅ ̅

Entonces
| | | | | |
̅ ̅ ̅ ̅
̅ ̅
| | | | | |
̅ ̅ ̅ ̅
Se puede extender a la resta

15
Prof. Olinto López
PROGRAMACION Y CÁLCULO NUMÉRICO

=
| | | | | |

̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅

Por consiguiente
| | | | | |
̅ ̅ ̅ ̅

̅ ̅
| | | | | |
̅ ̅ ̅ ̅
b) Error de redondeo en el producto

=
= (̅ )(̅ ) ̅̅ ̅ ̅
= ̅̅ ̅ ̅ El último término se descarta por ser muy
pequeño
̅ = ̅̅ Valor que se almacena

Error de redondeo absoluto en el producto


= ̅ ̅
| | |̅ | |̅ |
La magnitud del error de redondeo en el producto puede ser tan grande como la
suma de los errores de redondeo de los operandos ponderada por cadda uno de
sus respectivos valores.

Error de redondeo relativo al producto


̅ ̅ ̅ ̅
̅̅̅̅ ̅̅̅̅ ̅̅̅̅ ̅̅̅̅ ̅ ̅

| | | | | |
Notas
 En general, si los valores de los operandos tienen ambos el mismo signo y
son valores mayores que 1, se puede concluir que la operación aritmética
del producto puede propagar más error de redondeo que la suma.
 Además, si el el redultado de cada operación aritmética debe
almacenarse, hay que agregar el error de redondeo debido a la limitación
del dispositivo de almacenamiento.

16
Prof. Olinto López
PROGRAMACION Y CÁLCULO NUMÉRICO

2.2.4. Casos de propagacuón del error de redondeo en operaciones aritméticas

1) Error de redondeo en mediciones

La velocidad de una partícula es constante e igual a , medida con unerror


de durante un tiempo recorrido de 5 seg medido con error de 0,1 seg.
Determine el error absoluto y relativo en el valor de la distancia recorrida.

Al ser la rápidez (magnitud de la velocidad) constante la distancia recorrida se


calcula mediante

Donde
: Es la distancia recorrida
: La rápìdez con la cual se desplaza el movil
: El tiempi que tarda en reccorre la distancia

Los datos son


Descripción
= Rápidez
= Error al medir la rápidez
= Tiempo que tarda
= Error al medir el tiempo

Se cálcula el error absoluto de la distancia


= ̅ ( ) ( ) Error absoluto en la distancia
calculada
= Con un rango de variación :

Se cálcula el error relativo de la distancia calculada


= Error relativo
̅ ̅

2) Resta de números com valores muy cercanos

Sean los dos números reales muy cercanos con error de


redondeo en el segundo decimal : aproximadamente. Ambos
errores pieden ser del mismo signo o diferente signo, depende de la forma como
se obtuvieron los datos:

Errores relativos

̅
̅

Cota para el error de redondeo relativo:

17
Prof. Olinto López
PROGRAMACION Y CÁLCULO NUMÉRICO

̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅
| | | | | |
̅ ̅ ̅ ̅
| | | | | |

El aumento en la cota del error en el resulatdo es muy significativo con respecto


a los operandos. Se concluye que se debe evitar restar nuemros cuya magnitud
sea muy cercana pues el divisor del cociente al ser muy pequeño, hará que el
error relativo sea significativo.

Adicionalmente habría que agregar el efecto del error de redondeo al almacenar


el resultado.

3) Suma de números de diferente magnitud

Considere tres números: . Supongamos por simplicidad que los datos son
valores positivos exactos, por consiguiente , y la suma es:
con

Supongamos que la suma se realiza en el orden usual:


( )
̅ ̅
; error de redondeo al almacenar la suma
̅ ̅ ̅ ̅
̅ ̅ ̅ ̅ ̅
( )
̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅
= (̅ ̅) (̅ ̅ ̅) error de redondeo al almacenar la suma
̅ ̅ ̅

Si cada resultado se almacena en un dispositivo que tiene “m” cifras, su cota de


error de redondeo:
| |
| ( ) | ( ̅ ̅ ̅)
̅ ̅ ̅
Si se suma con ; el resulatdo con , se obtendría
| ( ) | ( ̅ ̅)
̅ ̅ ̅
Si ̅ ̅, se puede concluir que la suma de los números debe realizarse
comenzando con los números de menor magnitud pues la cota del error será
menor.

2.2.5 Eficiencia de los métodos directos

La eficiencia de un algoritmo y su progrsmsción está relacionada con el tiempo


necesario para obtener la solución. Este tiempo depende de la cantidad de

18
Prof. Olinto López
PROGRAMACION Y CÁLCULO NUMÉRICO

operaciones que se deben realizar. Así, si se tienen dos algoritmos para resolver
un mismo problema, es más eficiente el que requiere menos operaciones para
producir el mismo resultado.

Sea el tamaño del problema, ( ) una función que mide la eficiencia del
algoritmo (cantidad de operaciones requeridas ). Para obtener a ( ) se pueden
realizar pruebas en el computador con diferentes valores de registrando el
tiempo real de ejecución. Este tiempo es proporcional a la cantidad de
operaciones que se realizaron, por consiguiente, se poede usar para estimar a la
función ( ).
Esta forma experimental para determinar a ( ) tiene el incomveniente de usar
la instrumentación computacional del algoritmo para realizar las pruebas. Es
preferible conocer la eficiencia del algoritmo antes de invertir el esfuerzo de la
programación computacional para preveer que es un algoritmo aceptable.

Para determinar la eficiencia de un algoritmo antes de su instrumentación se


puede analizar la estructura del mismo o realizar un recorrido de este en forma
abstracta.

Ejemplo 1. Considere el algoritmo que se da a continuación, que cálcula la suma


de los primeros nñumeros naturales. Encontrar a ( )

Sea T la cantidad de sumas en el siguiente código en Python

( )

Se puede observar que la suma está dentro de un ciclo se repetición que se realiza
“ ” veces, po lo tanto.
( )
Ejemplo 2. El siguiente algoritmo suma los elementos de una matriz cuadrada de
orden “ ”. Determine a ( )

Sea T la cantidad de sumas en el siguiente código

( )
( )

Se puede observar que la suma está dentro de dos ciclos de repetición, la variable
cambia “ ” y para cada uno de sus valores la variable cambia “ ” veces, po
lo tanto.
( )

19
Prof. Olinto López
PROGRAMACION Y CÁLCULO NUMÉRICO

Ejemplo 3: El siguiente ejemplo es una modificación del anterior. El siguiente


algoritmo suma solamente los elementos de la sub matriz triangular superior.
Obtener a ( )

( )
( )

En este caso para determinar a ( ), se puede recorrer el algoritmo y mostrar en


una tabla la cantidad de sumas que se ejecutan.
Iteración Cantidad de sumas por cada ciclo para

Entoces, ( ) . Esto corresponde al suma de una serie


aritmética. Es decir,
( )
( )
Otra manera de obtener a ( ) es en hacer un conteo de las cantidad de
operaciones suma en los ciclos del algoritmo anterior y así obtener puntos de su
eficiencia.

Algoritmo en Python, para el conteo de ciclos (cantidad de operaciones sumas en


este caso) del ejemplo anterior.

( ( ))

( )
( )

( )

Debido a que son dos ciclos. ( ) debe ser un polinomio algebraico de segundo
grado para obtener este polinomio son suficientes tres puntos: ( ):

Se realizaron tres pruebas del programa de conteo y se obtuvieron (Se utilizó el


entorno idle de Python para realizar las pruebas)

20
Prof. Olinto López
PROGRAMACION Y CÁLCULO NUMÉRICO

10

15

21

Con estos resultados se puede construir el polinomio de interpolación que


representa a ( ). Este se puede obtener manualmente o usando un
procedimiento computacional.
El resultado que se obtiene es:
( )
( )
Resultado que se obtuvo anteriormente

Si queremos registrar el tiempo real de ejecuci’on de un proceso (progrma o


función) en Python, se puede usar la función () de la librería , como
sigue
Comentarios
#Se importa toda la librería
() #Se toma el tiempo t1, antes del proceso
#Se ejecuta la función o proceso
() # Se toma el tiempo t2, despues del proceso
( ) #Se imprime la diferencia de tiempo

2.2.6. La notación ( )
Supongamos que para resolver un problema se han diseñado dos algoritmos A y
B, con eficiencias ( ) ( ) , respectivamente. Cuál
algoritmo es más eficiente?.

Para valores pequeños de , ( ) ( ), pero valores grandes de n, ( )


( ). Es de interés práctico determinar la eficiencia de los algoritmos para
valores grandes de n, por lo tanto el alforitmo A es más eficiente que el
algoritmo B como se puede onservar en el siguiente gráfico:

21
Prof. Olinto López
PROGRAMACION Y CÁLCULO NUMÉRICO

Si ( ) incluye términos de que tienen diferente orden, para , es


suficiente considerar el término de mator orden ya que este es el que determina la
eficiencia del añgoritmo cuando es grande. En la comparación, no es necesario
los coeficientes y las constantes.

Veamos el siguiente ejemplo. Suponga que ( ) , la siguiente


tabla de valores

( )
( )
( )
( )
( )

( ) ( )

Se observa que a medida que crece, el valor numérico ( ) depende


principalmente del término dominante , es decir,
( )
Este hecho se puede expresar usando la notación ( ) la cual indica el “orden”
de la eficinecia del algoritmo, y se escribe: ( ) ( ) lo cual implica que la
eficiencia es proporcional a , y se dice que el algoritmo tiene eficiencia de
segundo orden.

En general, dado un problema de tamaño , la medida de la eficiencia ( ) de


un algoritmo se expresa con la notación ( ( )) siendo ( ) alguna expresión
tal como: ( ) ( ) etc, la cual expresa el
orden de la cantidad de operaciones que requiere el algoritmo.

Es de interés medir la eficiencia de los algoritmos antes de su instrumentación


computacional.

22
Prof. Olinto López
PROGRAMACION Y CÁLCULO NUMÉRICO

Tabla de ( ) con algunos valores de para algunas funciones típìcas ( )

Los algoritmos e las dos últimas columnas son de tipo exponencial y factorial
respectivamente. Se puede observar que aun con valores relativamente pequeños
de el valor de ( ) es extremadamente alto. Los algoritmos con este tipo de
eficiencia se denominan no factibles pues ningún computador puede calcular la
solución en un tiempo aceptable para valores de grandes. La mayoría de los
algoritmos que corresponden a los métodos numéricos son de orden polinomial,
es decir, ( ) .

23

También podría gustarte