Diferencia entre revisiones de «Métodos numéricos»

De MateWiki
Saltar a: navegación, buscar
(Análisis numérico del método)
(Análisis numérico del método)
Línea 49: Línea 49:
 
Aplicando el ''análisis numérico'' es posible obtener una expresión del error en función de ''h''. El error de la aproximación es:
 
Aplicando el ''análisis numérico'' es posible obtener una expresión del error en función de ''h''. El error de la aproximación es:
 
<math>\displaystyle E = \sum_{i=1}^5 A_i - \int_a^b f(x)dx = \sum_{i=1}^5 f(x_i) h - \int_a^b f(x)dx</math>
 
<math>\displaystyle E = \sum_{i=1}^5 A_i - \int_a^b f(x)dx = \sum_{i=1}^5 f(x_i) h - \int_a^b f(x)dx</math>
 +
 +
Tomaremos <math>x_0=10, \ x_1=12, \ x_2=14 \ \dots \ x_n=20</math>. Podemos expandir la función usando el polinomio que lo interpola:
 +
<math>\displaystyle f(t) = p_n(t) + \frac{f^{(n+1)}(c)}{(n+1)!}(t-x_0)(t-x_1)\cdots(t-x_n)</math>
 +
donde <math>c</math> es algún punto intermedio en el intervalo <math>[a,b]</math>.
 +
 +
Si tenemos en cuenta que nosotros estamos usando un polinomio interpolador (uno muy burdo, que ni siquiera es lineal), el error es la diferencia entre integrar usando la función e integrar usando el polinomio. Es decir:
 +
<math>\displaystyle E = \int_a^b f(t)dt - \int_a^b p_n(t)dt = \int_a^b (f(t)-p(t))dt = \int_a^b \frac{f^{(n+1)}(c)}{(n+1)!}(t-x_0)(t-x_1)\cdots(t-x_n)dt</math>
  
 
== Orígenes del análisis numérico ==
 
== Orígenes del análisis numérico ==

Revisión del 12:55 20 ago 2013

Warning.png Este artículo está en versión beta. El autor de este artículo no lo ha terminado todavía, por favor no lo edites hasta que elimine este mensaje.

La mayoría de los métodos matemáticos empleados en ingeniería utilizan variables continuas. Cuando queremos trasladar estos métodos al ordenador, para facilitar su resolución, nos encontramos con que en un ordenador no es posible realizar cálculos en variable continua de manera eficiente. El ordenador trabaja con una representación de información discreta. Los métodos numéricos se encargan de adaptar métodos matemáticos en variable continua a un sistema de representación de información discreto. En ocasiones, también se emplean métodos numéricos cuando no es posible obtener una solución analítica de un problema.

1 Análisis numérico de algoritmos

Un método numérico es un algoritmo que intenta resolver una operación matemática compleja en un ordenador. Los motivos por los que se usa un método numérico en vez de intentar una solución analítica pueden ser varios:

  • El problema es muy complejo, y no se puede encontrar en la práctica
  • El problema no tiene solución analítica conocida, pero puede resolverse de manera numérica
  • El tamaño de la solución lo hace impracticable

El objetivo del análisis numérico es obtener un método para resolver el problema matemático en un ordenador. Hay que tener en cuenta que el ordenador solo es capaz de realizar operaciones matemáticas sencillas, y sobre todo, que los ordenadores usan un sistema discreto de representación de la información. En el desarrollo de un método numérico hay que tener en cuenta por tanto dos aspectos:

  • Es necesario traducir el problema a operaciones elementales (operaciones aritméticas)
  • Es necesario controlar el error para que el algoritmo sea estable, y produzca una solución cercana a la realidad

Algunos paquetes de software, como por ejemplo Octave UPM, poseen una biblioteca de métodos numéricos y de operaciones matemáticas que hacen más sencilla la implementación de un método numérico. Por ejemplo, aunque un ordenador no puede resolver un sistema de ecuaciones directamente, en Octave UPM la solución del sistema [math]A\cdot x = b[/math] se obtiene simplemente con

x = A\b;

En cuanto a controlar el error, existen dos fuentes principales de error:

Existen también diferentes conceptos que suelen aparecer relacionados con métodos numéricos:

  • Cuando hablamos de un método numérico, normalmente nos referimos a un algoritmo que resuelve un problema matemático y que se puede implementar en un ordenador.
  • En ocasiones, también se usa el término cálculo numérico, para denominar la actividad de resolver problemas matemáticos usando un ordenador.
  • Por último, el análisis numérico es una rama de la Matemática que se encarga del análisis de los algoritmos numéricos, con el fin de controlar el error y producir una solución fiel a la solución exacta.

2 Ejemplo de método numérico

Vamos a ver un ejemplo de método numérico sencillo. La integral de una función es un problema que a veces es complejo de resolver de manera analítica, o incluso, que puede no tener solución analítica. Sin embargo, es un problema relativamente sencillo de resolver numéricamente.

Área bajo la función

El problema que vamos a resolver es el siguiente: [math]\displaystyle D = \int_a^b f(x) dx[/math] Se trata de calcular el valor de D, que es el área bajo la curva f(x) entre los puntos x=a y x=b. Suponemos que f(x) es una función continua en [a,b]. La imagen de la derecha ilustra el problema.

Aproximación del area bajo la función usando rectángulos

Al integrar una función en un intervalo dado, estamos sumando pedazos del área de ancho infinitesimal. La suma contiene infinitos elementos, y su resultado es el valor de la integral, que coincide con la del área. En un ordenador, no podemos tener pedazos de área infinitesimal, por lo que será necesario discretizar el problema, y calcular el área aproximando por rectángulos de alguna longitud dada. Por ejemplo, en la imagen de la derecha hemos aproximado el área usando cinco rectángulos.

Es decir, hemos realizado la siguiente aproximación: [math]\displaystyle \int_a^b f(x) dx \approx \sum_{i=1}^5 A_i = \sum_{i=1}^5 f(x_i)\cdot h[/math] donde [math]h=2[/math] en la figura, y [math]x_1 = 12, \ \ x_2=14, \ \ \dots[/math], es decir [math]x_{i+1} = x_i + h[/math].

Es obvio que la aproximación supone un error en el cálculo. En el caso de la figura de la derecha, la zona roja de los rectángulos nos indica el error que estamos cometiendo en la aproximación. En los rectángulos [math]A_1, A_2, A_4 y A_5[/math] el error es positivo; es decir, nuestra aproximación supone una estimación superior al valor del área bajo la curva. En el caso del rectángulo [math]A_3[/math], el error es negativo, ya que hemos realizado una estimación inferior al valor del área bajo la curva en ese intervalo. Este error negativo se resta de la suma de los errores positivos, y mejora ligeramente nuestra estimación.

Si hiciéramos el valor de h más pequeño, el error cometido sería probablemente más pequeño. Pero no se puede disminuir h hasta valores arbitrariamente pequeños, ya que en algún momento alcanzaremos los límites de precisión de la máquina, y obtendremos errores de redondeo demasiado grandes. En el ejemplo, está claro que h=2 es demasiado burdo; el valor se ha elegido únicamente con fines ilustrativos.

Otro ejemplo de método numérico que se puede encontrar en MateWiki es la Factorización de Doolittle, que se usa para resolver sistemas de ecuaciones lineales, para el cálculo de la matriz inversa y otras aplicaciones.

2.1 Implementación del método numérico

2.2 Análisis numérico del método

Aplicando el análisis numérico es posible obtener una expresión del error en función de h. El error de la aproximación es: [math]\displaystyle E = \sum_{i=1}^5 A_i - \int_a^b f(x)dx = \sum_{i=1}^5 f(x_i) h - \int_a^b f(x)dx[/math]

Tomaremos [math]x_0=10, \ x_1=12, \ x_2=14 \ \dots \ x_n=20[/math]. Podemos expandir la función usando el polinomio que lo interpola: [math]\displaystyle f(t) = p_n(t) + \frac{f^{(n+1)}(c)}{(n+1)!}(t-x_0)(t-x_1)\cdots(t-x_n)[/math] donde [math]c[/math] es algún punto intermedio en el intervalo [math][a,b][/math].

Si tenemos en cuenta que nosotros estamos usando un polinomio interpolador (uno muy burdo, que ni siquiera es lineal), el error es la diferencia entre integrar usando la función e integrar usando el polinomio. Es decir: [math]\displaystyle E = \int_a^b f(t)dt - \int_a^b p_n(t)dt = \int_a^b (f(t)-p(t))dt = \int_a^b \frac{f^{(n+1)}(c)}{(n+1)!}(t-x_0)(t-x_1)\cdots(t-x_n)dt[/math]

3 Orígenes del análisis numérico

Desde los comienzos de la Informática, los ordenadores se han dedicado a resolver problemas matemáticos que no era posible resolver a mano. Al principio, estos problemas no eran necesariamente complejos. Por ejemplo, muchas grandes empresas empezaron a usar ordenadores para el cálculo automático de las nóminas de sus empleados, aprovechando que el ordenador podía tratar grandes cantidades de información.

Sin embargo, la necesidad de resolver problemas complejos de ingeniería extendió pronto el rango de aplicaciones de los ordenadores, y empezaron a usarse para cálculos complejos, que no se adaptaban bien a un ordenador. Uno de los primeros ejemplos es la resolución de sistemas de ecuaciones lineales. En un principio, se intentaban adaptar métodos conocidos para su uso en un ordenador, pero no siempre proporcionaban un resultado correcto. El análisis rigurosos de los algoritmos y de las fuentes de error en un ordenador proporcionó respuesta a por qué en ocasiones los métodos numéricos no funcionaban, y supuso el nacimiento del análisis numérico, que es en la actualidad una rama de la Matemática[1]

4 Aŕeas del análisis numérico

5 Referencias

  1. Grcar, Joseph F. John von Neumann's Analysis of Gaussian Elimination and the Origins of Modern Numerical Analysis. SIAM Review, 53(4), pp. 607–682, 2011. (enlace a PDF sin suscripción)