Calculo del Error para Métodos Númericos

Si se buscara el significado de la palabra error, se encontrarían diferentes definiciones, dependiendo del contexto donde se de este “error” o de lo que representa tal, tales como “error de apreciación” ,”error de medición”, “error de aproximación”, “error experimental” etc.

En este blog, debido a que principalmente nos enfocaremos en la programación  y el desarrollo de  algunos métodos numéricos  nos concentraremos el error que comprende la diferencia entre la cantidad exacta y la cantidad obtenida por nuestro algoritmo en cada ejecución o comando ya sea error verdadero, error relativo fráccional o error relativo porcentual entre otros.

como sabemos, los métodos numéricos son empleados para realizar aproximaciones de problemas que pueden ser resueltos (o aproximados) mediante ciertos algoritmos definidos, dichos métodos nos permiten resolver problemas tales como sistemas de ecuaciones lineales y no lineales, problemas geométricos  de calculo infinitesimal, ecuaciones diferenciales etc, que a menudo serían difíciles de resolver analíticamente.

como es de notar, cualquier valor que sea tan solo una aproximación, sea por el método que sea, conlleva consigo un margen de error con respecto al valor real de la solución o la variable que se intenta resolver, en esta oportunidad, se desarrollará el calculo respectivo a los tres últimos tipos de error mencionados.

a pesar que dichos algoritmos se pueden implementar en cualquier lenguaje de programación  c, c++, phyton, etc. Se utilizará en esta y otras oportunidades el compilador de Matlab, y en entradas posteriores los problemas pueden ser presentados tanto en Matlab como lenguaje C o C++.

Imagen          Imagen

Causas del Error.

Sea X el valor resultante de un procedimiento matemático y Xa su aproximación  entonces la diferencia entre X y Xa se explica por:

  •  Error de truncamiento: Que es el resultado de usar una aproximación o serie de aproximaciones, en lugar de un procedimiento matemático exacto, tales como serie de Taylor, serie de Mclaury entre otros ejemplos.
  • Error de redondeo: Los errores de redondeo son el resultado de limitaciones computacionales, ya que las computadoras no pueden almacenar un número infinito de cifras significativas en medio de un procedimiento, y es obvio, es por esto que los valores que se pueden representar numéricamente están limitados por ciertas condiciones tanto del lenguaje de programación y por la maquina en sí.

   Error Verdadero.

se define este error como la diferencia real entre el valor exacto de una variable o medición  el valor aproximado, así se tiene:

   Imagen

donde Ev es el error real cometido, X es el valor exacto y Xa el valor aproximado tras emplear, en nuestro caso un método para tratar de acercarnos al valor de X (para eso usamos los métodos numéricos ¿no?), el código sería el siguiente.

Imagen

Error Relativo Fráccional.

se puede obtener obtener el error relativo normalizando el error con respecto al valor real.

Imagen

Donde Er es el error relativo o también llamado error relativo fráccional,resulta de dividir el error verdadero Ev entre el valor exacto de la variable. X-Xa representa el error verdadero cometido, y X el valor exacto, el fragmento de código para este error es:

Imagen

Error Relativo Porcentual.

Aprovechando al obtener el error relativo, se puede conocer también el error relativo  porcentual entre los valores mencionados con anterioridad, bastando solo con multiplicar el valor relativo por 100 obteniendo así el %.

Imagen

Donde Erp es el error relativo porcentual.

Error en Métodos Numéricos Iterativos.

Para los métodos numéricos la magnitud del valor verdadero se puede conocer solo en funciones que pueden ser resueltas analíticamente, pero como es sabido los métodos numéricos empleados por nosotros, se usan principalmente para cuando es bastante difícil o no se puede llegar a una solución analítica, es por esta incertidumbre de los métodos numéricos  al no conocer el valor real que se presenta un inconveniente y un reto obtener la estimación del error en un procedimiento al no tener conocimiento hacia donde se debe llegar, la estimación del error, hablando en términos computacionales o de algoritmos, que es el caso que nos compete, es de suma importancia ya que es la apreciación de un umbral de error, que es un valor de error por debajo del cual es satisfactoria nuestra aproximación  es lo que usaremos un muchas ocasiones como condición de finalización para nuestros métodos iterativos.

Es por esta incertidumbre mencionada anteriormente que se tiene un error aproximado error por aproximación definido por cada una de las aproximaciones en los métodos iterativos, teniendo en cuenta la siempre, tanto la aproximación actual como la anterior, así:

Imagen

Para nuestro caso, al emplear métodos numéricos, principalmente los iterativos y teniendo en cuenta un umbral de error, se hace necesario trabajar con el valor absoluto de los errores, para tener una clara condición de parada en nuestros programas, de esta forma el calculo de los errores, en código (matlab) quedaría en la siguiente manera, empleando la función abs() de Matlab:

Error Verdadero:     

Imagen

Error Relativo: 

Imagen

Error Relativo Porcentual:

Imagen

  Error Aproximado Porcentual:

Imagen

un ejemplo de como sería el criterio de parada de un método que emplea interaciones, mediante el calculo del error aproximado sería uno que implementara las siguientes lineas, o parecidas.

Imagen

En este ultimo fragmento de código, la condición para ejecutar el ciclo While se cumplía mientras el error era mayor que el umbral propuesto, siendo así, cada vez que se ingresaba a un nuevo ciclo, se almacenaba el ultimo valor tomado por la variable X en Xant para posteriormente, obtener mediante sentencias que se ejecutarán un nuevo valor para X, que será Xac y por ultimo hacer el calculo del error porcentual aproximado. Con la condición para el siclo While se dice, que el resultado tiene un error menor a 0.0000001% de error, esto ultimo puede variar dependiendo de la precisión que se requiera,

3 comentarios en “Calculo del Error para Métodos Númericos

  1. Pingback: Funcion Exponencial Mediante Serie de Potencias Matlab | blogdelingeniero1

    • Hola Fil, gracias por tu comentario.
      Inicialmente pensamos en realizar lo mismo de arriba en C++ pero consideramos que al ser solo funciones como valor absoluto, sumas, restas y divisiones, la implementación resulta idéntica en C/C++ o incluso otros lenguajes (respetando la sintaxis de estos), aunque puede que más adelante actualicemos este artículo para incluir dichos lenguajes, nos estamos enfocando más crear otros contenidos de C/C++ que son más interesantes, te invitamos a que visites la sección de este lenguaje.

      Saludos.
      Julio

      Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s