1. Método de la Bisección en Fortran

Publicado por Danilo Toro en

Banner - Método de la Bisección

Este post acerca del método de la bisección en Fortran es el primero de una serie de entradas sobre como programar métodos numéricos en Fortran.

Requisitos

  • Es importante que tengas conocimientos acerca de funciones matemáticas
  • Nociones básicas de programación (idealmente en Fortran)

El método de la bisección es una forma sencilla y muy útil para encontrar la solución a raíces de funciones de una variable. Las raíces de una función, si no lo recuerdas, son los valores x en los cuales f(x) se hace 0

Método de la bisección

El método de la bisección trata de lo siguiente:

Toda función continua f en un intervalo cerrado [a,b] toma todos los valores que se hallan entre f(a) y f(b). Esto es que todo valor entre f(a) y f(b) es la imagen de al menos un valor en el intervalo [a,b]. En caso de que f(a) y f(b) tengan signos opuestos, el valor cero sería un valor intermedio entre f(a) y f(b), por lo que con certeza existe un p en [a,b] que cumple f(p)=0. De esta forma, se asegura la existencia de al menos una solución de la ecuación f(x)=0.

Método de bisección – Wikipedia

En palabras simples, si evalúo la función en dos números (a y b), los multiplico y el resultado da un número negativo, entonces entre esos dos números se encuentra la raíz (m en la imagen)

mImagen representativa del Método de la bisección
Método de la bisección. Imagen obtenida de laguia2000.com

Dado lo anterior, el algoritmo es el siguiente:

  • Elegir los valores inferior y superior del intervalo que llamaremos x1 y x2. Es importante que la raíz esté entre esos valores
  • Obtener una aproximación de la solución, mediante el promedio xr = (x1+x2)/2
  • Realizar las siguientes comparaciones
    • Si f(x1)*f(xr)<0, entonces la raíz se encuentra entre x1 y xr, y hacemos x2 = xr
    • Si f(x1)*f(xr)>0, entonces la raíz se encuentra entre xr y x2, y hacemos x1 = xr
    • Si f(x1)*f(xr) = 0, entonces x1 o xr es la raíz

Los pasos anteriores son una generalización, el código que mostraré a continuación, tiene como condición de salida el error relativo. Ver sección 5.2.1 en la página 126 del Chapra.

Método de la bisección en Fortran

El código que veremos a continuación es sencillo y sirve para encontrar una de las raíces de una función cuadrática. Además, puedes encontrar en mi repositorio de Github este ejemplo más otro un poco más “avanzado”, que sirve para resolver más tipos de funciones (Es el mismo algoritmo, solo que creamos más funciones 😅)

Sintaxis Fortran

A continuación explicaré algunas de las palabras reservadas de Fortran.

  • program: Especifica que una unidad de programa es un programa principal; el punto de partida de la ejecución del programa. Es como “main” para otros lenguajes
  • implicit none: La instrucción implicit none se usa para inhibir la característica antigua de Fortran que, por defecto, trata todas las variables que comienzan con las letras i, j, k, l, m y n como números enteros y todas las demás variables como argumentos reales. Siempre debe usarse.
  • write: Salida de información a la terminal o un archivo de datos. Los * significan que se escribirá en la terminal
  • read: Obtener valores para variables del terminal o un archivo de datos. Los * significa que leerá desde la terminal
  • abs: obtiene el valor absoluto de un número

Si te interesa conocer otros statements de Fortran puedes entrar a este link: Alphabetical Index of FORTRAN Statements and Attributes

Código Fortran

Si tienes alguna duda sobre alguna línea del código, coméntemelo 😉 Si quieres descargar el código, puedes encontrarlo aquí: 💻 Repositorio de github 💻


0 comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *