f 90 raices

Páginas: 11 (2615 palabras) Publicado: 16 de septiembre de 2014
Subrutinas en Fortran 95 para la resolución
de ecuaciones no lineales de una variable
Pablo Santamaría
v0.3.1 (Mayo 2014)

1.

Introducción

En general, las raíces de una ecuación no lineal f (x) = 0 no pueden ser obtenidas por fórmulas explícitas
cerradas, con lo que no es posible obtenerlas en forma exacta. De este modo, para resolver la ecuación nos
vemos obligados a obtenersoluciones aproximadas a través de algún método numérico.
Estos métodos son iterativos, esto es, a partir de una o más aproximaciones iniciales para la raíz, generan
una sucesión de aproximaciones x0 , x1 , x2 , . . . que esperamos convergan al valor de la raíz α buscada. El
proceso iterativo se continúa hasta que la aproximación se encuentra próxima a la raíz dentro de una
tolerancia > 0preestablecida. Como la raíz no es conocida, dicha proximidad, medida por el error absoluto
|xn+1 − α|, no puede ser computada. Sin un conocimiento adicional de la función f (x) o su raíz, el mejor
criterio para detener las iteraciones consiste en proceder hasta que la desigualdad
|xn+1 − xn |
<
|xn+1 |
se satisfaga, dado que esta condición estima en cada paso el error relativo. Ahora bien, puedeocurrir en ciertas
circunstancias que la desigualdad anterior nunca se satisfaga, ya sea por que la sucesión de aproximaciones
diverge o bien que la tolerancia escogida no es razonable. En tal caso el método iterativo no se detiene
nunca. Para evitar este problema consideramos además un número máximo de iteraciones a realizarse. Si
este número es excedido entonces el problema debe ser analizadocon más cuidado.
¿Cómo se escoge un valor correcto para las aproximaciones iniciales requeridas por los métodos? No existe
una respuesta general para esta cuestión. Para el método de bisección es suficiente conocer un intervalo que
contenga la raíz, pero para el método de Newton, por ejemplo, la aproximación tiene que estar suficientemente
cercana a la raíz para que funcione 1 . En cualquiercaso primeras aproximaciones iniciales para las raíces
pueden ser obtenidas graficando la función f (x).
En las siguientes secciones presentamos implementaciones de los métodos numéricos usuales como
subrutinas Fortran. Con el fin de proporcionar subrutinas de propósito general, las mismas tienen entre sus
argumentos a la función f involucrada, la cual pude ser entonces implementada por elusuario como un
subprograma FUNCTION con el nombre que quiera. Otros argumentos que requieren estas subrutinas son los
valores para las aproximaciones iniciales que necesite el método, una tolerancia para la aproximación final
de la raíz y un número máximo de iteraciones. La raíz aproximada es devuelta en otro de los argumentos.
Dado que el método puede fallar utilizamos también una variable enteracomo clave de error para advertir al
programa principal. Por convención tomaremos que si dicha clave es igual a cero, entonces el método funcionó
correctamente y el valor devuelto es la raíz aproximada dentro de la tolerancia preescrita. En cambio, si la
clave de error es distinta de cero, entonces ocurrió un error. La naturaleza del error dependerá del método,
pero un error común a todosellos es que el número máximo de iteraciones fue alcanzado.
Con el fin de aprovechar la capacidad de Fortran 95 de detectar errores de tipo en los argumentos
al llamar a las subrutinas, debemos hacer explícita la interface de las mismas. La forma más simple y
poderosa de efectuar ésto consiste en agrupar las mismas en un módulo, al que denominaremos roots. En
nuestra implementación todas lascantidades reales serán de la clase de doble precisión, la cual, para máxima
flexibilidad, está definida en forma paramétrica utilizando el modulo intrínseco iso_fortran_env.
1 De hecho, efectuando algunas iteraciones del método de bisección podemos obtener una buena aproximación para iniciar el
método de Newton.

1

Código 1. Implementación del módulo roots
MODULE roots
USE, intrinsic ::...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • los 90
  • Los 90
  • A OS 90
  • Los 90
  • 90
  • 90
  • Raices
  • raices

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS