2016
"Mediante tres métodos podemos obtener la sabiduría: primero por reflexión, que es el más noble; segundo, por imitación, que es el más sencillo; y tercero, por la experiencia, que es el más amargo". Confucio
En construcción
En construcción
Los MÉTODOS NUMÉRICOS son técnicas mediante las cuales es posible formular problemas matemáticos de tal forma que puedan resolverse usando operaciones aritméticas[3].
Etapas para la solución de un problema
Figura 1.Etapas (elaboración propia)
Defi nición 1 Método numéricos: Técnicas mediante las que es posible encontrar soluciones aproximadas a problemas matemáticos utilizando operaciones aritméticas.
Caminos para llegar a una solución
Analítica
Se encuentra una solución exacta.
No siempre se encuentra una solución.
Numérica
Se encuentra una solución aproximada.
Se utiliza el computador para hacer los cálculos.
Gráfi ca
La solución no es muy precisa.
El computador se utiliza como herramienta para grafi
car.
Sólo se trabaja en dos o tres dimensiones.
Texto académico MÉTODOS NUMERICOS
El per fil del estudiante contemporáneo es el de un alumno que atiende diferentes tareas en su vida diaria, incluso algunos con obligaciones laborales, por lo tanto, el texto académico Métodos Numéricos se ha escrito con un propósito de aprendizaje autodidacta en el que el estudiante es protagonista, desarrollando la competencia operativa y práctica de depurar el funcionamiento de los diferentes algoritmos, su implementación usando calculadoras programables o computadores personales y su aplicación para la resolución de problemas. Así las cosas, no es objetivo de la obra la fundamentación en aspectos teóricos y argumentación matemática, más allá de lo estrictamente básico.
Su contenido se diseñó siguiendo el modelo del aula invertida, conocido en ingles como Flipped Classroom, en el que el alumno puede obtener información en un tiempo y lugar que no requiere la presencia física del profesor, lo que permite disminuir el tiempo de exposiciones magistrales, aumentando así mismo, la velocidad de aprendizaje del alumno. Ésta es la principal fortaleza de la obra.
La primera parte del libro trata la teoría de errores. La segunda presenta los diferentes métodos numéricos empleados para solucionar ecuaciones no lineales. La tercera estudia los algoritmos que solucionan sistemas de ecuaciones lineales. El tema de interpolación se explica en la cuarta parte. La penúltima parte versa sobre diferenciación e integración numérica. La última parte es acerca de la solución numérica de Ecuaciones Diferenciales.
El Anexo A está dividido en dos partes. Cambiar redacción para los anexos.
El autor desarrolló el programa de computadora MN_IUPB, con el que explica durante las presentaciones magistrales la ejecución de los algoritmos planteados en este texto. El programa fue desarrollado con el lenguaje Visual C#. La forma de manejar el sistema informático se explica en el anexo B.
Finalmente, este texto se redactó partiendo de fuentes de información en archivos de PowerPoint, textos, libros, etc., reunidas por el docente autor durante los últimos 15 años de enseñanza. Para la publicación de esta obra, el autor hizo una búsqueda por internet de las referencias bibliográ ficas, algunas de las cuales no se pudo identi car la fuente ni autor.
La interactividad del libro se encuentra en los objetos interactivos de aprendizaje diseñados con la herramienta de autor Descartes, otros objetos son diseñados con el procesador gemométrico GeoGebra
Algunas imágenes tienen la opción de ser ampliadas al hacer clic sobre ellas.
En algunos apartados del libro se presentan ejemplos y ejercicios interactivos.
Igualmente, se presentan algoritmos diseñados con Maxima que es un software libre para la manipulación de expresiones simbólicas y numéricas, incluyendo diferenciación, integración, expansión en series de Taylor, transformadas de Laplace, ecuaciones diferenciales ordinarias, sistemas de ecuaciones lineales, vectores, matrices y tensores.
Recomendamos la descarga e instalación de la interface wxMaxima:
"Los sistemas de numeración son conjuntos de dígitos usados para representar cantidades, así se tienen los sistemas de numeración decimal, binario, octal, hexadecimal, etc. Las anteriores bases contienen respectivamente 10, 2, 8 y 16 números diferentes" [7].
Es un sistema de numeración en el que los números se representan utilizando solamente las cifras cero y uno (0 y 1).
Ejemplo
Observa un número binario de varias cifras, haz clic en el botón para observar otros números.
En este sistema los números se representan utilizando 10 dígitos, es un sistema de numeración posicional en el que las cantidades se representan utilizando como base aritmética las potencias del número diez.
Ejemplo
Observa un número decimal y su descomposición según la posición de las cifras, haz clic en el botón para observar otros números.
Conversión de decimal a binario
Se divide el número decimal y sus cocientes entre 2 y se acumulan los residuos que conformarán el número en la nueva base. La lista de ceros y unos leídos de abajo a arriba es el resultado.
Ejemplo
Haz clic en el botón "Siguiente paso" para observar cómo se obtienen los dígitos binarios correspondientes al número decimal dado .
Una vez hayas practicado y comprendido el procedimiento, puedes realizar los ejercicios que desees en la página siguiente.
Ejercicios
En el recuadro escribe la respuesta y luego pulsa la tecla "Intro". Puedes realizar varios ejercicios.
Conversión de binario a decimal
Para realizar la conversión de binario a decimal sigue los siguientes pasos:
1. Inicia por el lado derecho del número binario, cada cifra multiplícala por 2 elevado a la potencia consecutiva (comenzando por la potencia 0, 1, 2, ....).
2. Después de realizar cada una de las multiplicaciones, súmalas y el número resultante será el equivalente al sistema decimal.
La aritmética que realiza una calculadora o un ordenador es distinta a nuestro mundo matemático tradicional, pues en este caso permitimos la existencia de números con una cantidad infi
nita de cifras. Sin embargo, en el mundo de los ordenadores cada número representable tiene sólo un número
finito,
fijo, de cifras.
Normalmente los números racionales se pueden representar con exactitud, pero por ejemplo √3 no es racional, se da una representación aproximada, una cuyo cuadrado no es 3, aunque sí lo bastante cerca de 3 como para que sea aceptable en la mayor parte de las situaciones [1].
Suponiendo un ordenador de 32 bits.
Existen tres tipos de datos atómicos: entero, real, real con doble precisión. Sus rangos de valores son:
Tipo | Tamaño en bits | Rango |
Entero | 16 | -32768 a 32768 |
Real | 32 | 3,4x10-38 a 3,4x1038 |
Real doble | 64 | 1,7x10-308 a 1,7x10308 |
Presentamos, a continuación, seis tipos de errores:
2.3.1 Errores inherentes
Son errores inherentes a los datos, a la incertidumbre en las medidas, a los números que se exceden en el tamaño de bits permitidos por el ordenador, al diseño del modelo, entre otros.
2.3.2 Error absoluto
"Si p* es una aproximación de p y si p es el valor real, entonces:
Error Absoluto = |p-p*| o sea el valor absoluto de p menos p*".
Debido a que la ecuación se da en términos del valor absoluto, el error no puede ser negativo. Así pues, una colección (suma) de errores siempre se incrementan juntos, sin reducirse. Este es un hecho muy pesimista, dado que el redondeo y otros errores rara vez están en la misma dirección, es posible que la suma (algebraica) de ellos sea cero, con aproximadamente la mitad de los errores positiva y la otra mitad negativa. Pero también es demasiado optimista esperar que errores con signo sumen cero a menudo. Un enfoque realista es suponer que éstos, en especial el redondeo, están estadísticamente distribuidos" [5].
El error absoluto se propaga en los cálculos de la siguiente manera:
Producto Ex*y = yEx + xEy
Cociente Ex/y = (Ex/x) + (Ey/y)
Suma Ex+y = Ex + Ey
Resta Ex-y = Ex- Ey
2.3.3 Error relativo
El error relativo se define como:
Error relativo = |p-p*|/|p| con la condición de p ≠ 0.
"Generalmente el denominador es una de tres elecciones: la magnitud del valor exacto o real, la magnitud del valor calculado o aproximado, o el promedio de estas dos cantidades. La mayoría de las veces se usa como el valor real, por lo que se usará esta opción. El Error Relativo es una mejor medida del error que el error absoluto, en especial cuando se utilizan sistemas numéricos de punto flotante.
Puesto que los elementos de un sistema de punto flotante no están distribuidos de manera uniforme, la cantidad de redondeos posibles depende de la magnitud de los números que se redondean. El denominador de esta ecuación compensa el efecto" [5].
Ejercicios
En los recuadros escribe el error absoluto y el relativo, luego presiona la tecla intro
2.3.4 Error de redondeo
El error de redondeo se origina porque una máquina involucra números con sólo un número
finito de dígitos; por lo tanto, los cálculos se realizan con representaciones aproximadas de los números verdaderos. Dicho de otra manera, el error de redondeo se debe a la naturaleza discreta del sistema numérico de máquina de punto flotante que, a su vez, se debe a su longitud de palabra
finita. Cada número (real) se reemplaza por el número de máquina más cercano. Esto signi
ca que todos los números en un intervalo local están representados por un sólo número en el sistema numérico de punto flotante" [5].
El error de redondeo es el que resulta de reemplazar un número por su forma de punto flotante. Cualquier número real positivo puede ser normalizado para que adquiera la forma:
y = 0.d1d2d3...dkdk+1... x10n
1≤di≤9, con i = 2,3,4,...k
La forma de punto flotante fl(y) se obtiene terminando (recortando) la mantisa de y en k dígitos decimales. Existen dos métodos de terminar:
1. Cortando los dígitos dk+1dk+2... fl(y) = 0.d1d2d3...dk x10n
2. Redondeando el número
Si (dk+1 ≥ 5) Entonces
Se agrega uno a dk para obtener fl(y)
FinSi
Si (dk+1 < 5) Entonces
Se cortan todos excepto los primeros k dígitos.
FinSi
Ejercicios
En los recuadros escribe el número truncado y redondeado, luego presiona la tecla intro
2.3.5 Error de truncamiento
"Este tipo de error ocurre cuando un proceso que requiere un número in
finito de pasos se detiene en un número
nito de pasos.
Generalmente, se re
fiere al error involucrado al usar sumas fi
nitas o truncadas para aproximar la suma de una serie in
finita. Note que el error de truncamiento, a diferencia del error de redondeo, no depende directamente del sistema numérico que se emplee"[5].
UNDERFLOW: Son los números que tienen una magnitud menor que 16-65 y a los que generalmente se les da el valor cero.
OVERFLOW: Son los números que tienen una magnitud mayor a 1663 y causan que los cálculos se detengan.
EXACTITUD: se refi
ere a la aproximación de un número al valor verdadero que se supone representa.
PRECISIÓN: se re
fiere al número de cifras signifi
cativas que representan una cantidad"[6].
ε0 representa el crecimiento del error después de n operaciones.
Si representa el crecimiento del error después de n operaciones. Si ε0 ≈ C n ε0 C es una constante independiente de n. Se dice que el crecimiento del error es lineal. (Estable)
Si ε0 ≈ k εN0 para alguna k>1, el crecimiento del error es exponencial. (Inestable)
El crecimiento del error se puede determinar con:
1. Prueba de escritorio.
2. Seguir la propagación del error.
3. Comparar soluciones con datos del tipo de precisión simple y doble.
En algunos apartados del libro se presentan ejemplos y ejercicios interactivos.
Conclusiones
Evitar restar números casi iguales.
Evitar la división por un número cercano a cero.
Minimizar la ejecución del número de operaciones en el algoritmo.
Utilizar datos del tipo doble precisión cuando sea necesario.
Realizar escalamiento de los datos si es posible.
En este parte del libro estudiaremos los métodos numéricos para determinar las raíces de una Ecuación No Lineal con una variable. Analizaremos los problemas de convergencia y error que puedan presentarse. (Consúltese [1], p. 47; [2], p. 45).
En la mayoría de los casos no es posible determinar las raíces de una función, es decir, los valores x* tal que f(x* ) = 0, en un número finito de pasos. Para ello, tenemos que usar métodos de aproximación que, en general, son iterativos.
En el tercer capítulo observaremos cómo podemos determinar si una función no lineal tiene raíces, a través de un análisis gráfico y uno análitico. Al final, haremos una introducción a los métodos iterativos
En los dos capítulos siguientes veremos los métodos iterativos usuales: bisección, regula falsi, punto fijo, Newton y el método de la secante.
Incluiremos algunos objetos interactivos diseñados con el editor Descartes, que permitan un mayor acercamiento a los conceptos, teoremas y métodos iterativos descritos en cada capítulo. No obstante esta ayuda, se recomienda utilizar el cuadernillo de trabajo para realizar algunos ejercicios propuestos
Para hallar las raíces de una ecuación es necesario saber si la ecuación tiene solución. En caso de la existencia de una solución, convendría identificar en que intervalo se encuentra, pues ello optimizaría el algoritmo utilizado para hallar la raiz de la ecuación.
Una primera opción es dibujar la gráfica de la ecuación, opción que actualmente no representa problema por la gran cantidad de herramientas digitales disponibles en la red. Observa, por ejemplo, la animación realizada con Descartes
En la escena interactiva podrás ver algunas funciones y hallar sus raíces. Puedes escribir tu propia función, pero antes de hacerlo observa cómo se escriben las funciones comparando la expresión que aparece en la parte superior (sintáxis del ordenador) con la expresión de la parte inferior del interactivo (sintáxis matemática).
Haz clic para ampliar la escena
La verificación de las raíces a partir de la gráfica no siempre es el camino más inmediato, una forma analítica de lograrlo es a partir del teorema del valor intermedio, el cual afirma que "Si f es una función continua en un intervalo [a, b]. Entonces para cada k tal que f(a) ≤ k ≤ f(b), existe al menos un c dentro del intervalo [a, b] tal que f(c) = k". En el siguiente interactivo desplaza el punto c y observa el cumplimiento del teorema, en los ejemplos podrás encontrar su aplicación en la determinación de la existencia de raíces en una ecuación.
Los métodos numéricos para resolver ecuaciones no lineales son de tipo iterativo, los cuales son modelos de aproximaciones sucesivas. En una forma simple, el método consiste en elegir un valor inicial x0 (semilla), a partir del cual se genera una sucesión de iteraciones x1, x2, x3, ..., hasta que éstas converjan a la solución.
Si una ecuación puede ponerse en la forma f(x) = x, podemos, en principio, empezar con un punto x0 y calcular x1 sustituyendo en la ecuación el valor de x0, el valor obtenido será el nuevo valor a sustituir en la ecuación, y así sucesivamente hasta encontrar un valor de convergencia. Matemáticamente xn+1 = f(xn) para n ≥ 1, y la secuencia {xn} con n ≥ 1 convergerá a la solución x.
Tratemos de resolver la siguiente ecuación x2 - 2x + 1 = 0, cuya solución sabemos que es uno (1), para ello podemos hacer el siguiente despeje: x = √2x - 1. Supongamos que nuestra semilla es x0 = 3, lo que significa que x1 = 2.23607, calculamos x2 reemplazando el valor anterior en la ecuación y obtenemos x2 = 1.86337, en este momento hemos realizado sólo dos iteraciones, si continúas iterando notarás que la convergencia es lenta, lo que justifica el uso de otros métodos que veremos en el siguiente capítulo.
En la escena interactiva de la siguiente página podrás encontrar el número de iteraciones necesarias para hallar la solución en la que, para facilitar el proceso, sólo hemos considerado dos cifras decimales. Observa que la columna xn inicia con el valor semilla, en la columna xn+1 aparecen los cálculos realizados en la ecuación, los cuales se convierten en una nueva semilla, repitiendo (iterando) el proceso hasta que hallamos la solución.
En el siguiente interactivo se presenta el método iterativo para hallar la solución de la ecuación dada. Usa el control para generar las iteraciones, si dejas presionado el ratón éstas se generarán más rápido.
En el último ejemplo de la escena interactiva anterior, observamos que la convergencia a la solución se realizaba con pocas iteraciones, esto depende del tipo de ecuación y del método iterativo utilizado. En cada ejemplo observamos una convergencia a un punto, el cual se suele llamar “punto fijo atractivo”. Los métodos abiertos utilizan una ecuación similar a la que hemos usado en al apartado anterior para predecir la raíz, la cual puede desarollarse como una iteración simple de punto fijo (también llamada iteración de un punto o sustitución sucesiva o método de punto fijo). En este capítulo analizaremos los métodos de punto fijo, de Newton y el de la Secante.
Este método lo explicaremos a través de la unidad didáctica interactiva del proyecto Un_100Métodos de punto fijodiseñada por José R. Galo Sánchez, la cual inicia con un método para calcular la raiz cuadrada de un número.
Método de Herón para calcular la raíz cuadrada
Herón de Alejandría (126-51 a.C.) afirmó que si y es una aproximación de la raíz cuadrada de un número positivo a entonces:
es una aproximación mejor. En base a ello, partiendo de una aproximación inicial y0
podemos obtener de manera recurrente una sucesión de valores
que convergerán a la raíz cuadrada de a.
En la siguiente escena interactiva usa los controles para explorar el método de Herón.
Haz clic para ampliar la escena
Formulación general del método iterativo
Convergencia y divergencia
Resolviendo ecuaciones
Actividad con GeoGebra
Practica con la siguiente escena creada por Leonardo Álvarez Velásquez
Haz clic para ampliar la escena
Programación del método de punto fijo en wxMaxima
El siguiente algoritmo permite calcular la raiz de una función por el método del punto fijo. En wxMaxima puedes cambiar el punto inicial, el número de iteraciones o la función a iterar.
Una ampliación sobre el funcionamiento del algoritmo lo encuentras en el libro de José Ramírez Labrador:
Si tienes instalado wxMaxima en tu ordenador, haz clic en la imagen para descargar el método del punto fijo (lo abres con wxMaxima y lo ejecutas con Control+R):
El método de Newton se describe en su libro Method of Fluxions, el cual fue explicado por J. Raphson en 1690, por lo que se suele llamar el método de Newton-Raphson. Es un método cuya convergencia es mucho mejor que la del punto fijo.
Este método lo explicaremos a través de la unidad didáctica interactiva del proyecto Un_100Resolución numérica de ecuacionesdiseñada por José R. Galo Sánchez, en la cual se describe otros tres métodos que usaremos en este libro.
Considérese una ecuación no lineal de la forma f(x) = 0, donde f es continua y derivable en un intervalo [a, b] con derivada no nula.
Definimos un método iterativo en el que partiendo de un valor inicial x0 construimos una sucesión (xn), donde xn es el punto de intersección de la recta tangente a f(x) en (xn+1, f(xn+1)) con el eje de abscisas. Es decir,
El método de Newton es siempre convergente a una raíz siempre que el valor inicial sea lo suficientemente próximo a esa raíz, pero la convergencia es dependiente de ese valor inicial. Por ejemplo, compruebe en la escena interactiva que para f(x) = x2 - 2 si consideramos x0 = 0.5 convergerá a √2 y si consideramos x0 = -0.5 convergerá a -√2.
La dificultad de este método radica en la necesidad de calcular los valores de la derivada primera de la función. Para evitar ello hay variantes del método de Newton que obvian ese cálculo, por ejemplo, el método de la Secante y el de “Regula Falsi” o de la falsa posición que combina el de bisección y el de la secante.
No obstante, en programas de cálculo simbólico o de algebra computacional (CAS) como GeoGebra o Maxima, la derivada de la función no es un problema, como veremos a continuación.
En la escena de GeoGebra de la página siguiente hemos usado la misma función de la escena anterior, desplaza el segmento azul arrastrando uno de sus extremos. Puedes observar que a medida que el valor incial esta cerca de una de las dos raíces, el número de iteraciones se reduce. La escala de la gráfica se puede modificar con la rueda del ratón (mouse)".
Ejercicios
1. Obtener la solución única de x3 + 4x2 - 10 = 0 mediante el método de Newton. Compara los resultados obtenidos interactuando con la escena de Descartes.
2. Resuelve las ecuaciones planteadas en el apartado 3.3. Puedes hacerlo con Descartes, GeoGebra o Maxima
3. Usa una calculadora para resolver, paso a paso, la ecuación dada en el ejercicio 1.
Actividad con GeoGebra
Practica con la siguiente escena creada por Juan Pablo Serrano
Haz clic para ampliar la escena
Programación del método de Newton en wxMaxima
A continuación se presenta el código en wxMaxima para el método de Newton.
/* Definimos en la variable g la función a resolver */
g:x^2-2;
/* Definimos en la variable gd la derivada de la función */
gd:diff(g,x);
/* Para empezar, eliminamos la variable newton de la lista de variables */
kill(newton);
/* Creamos la función de iteración (newton(pn)) con x = pn */
newton(pn):=ev(x-g/gd,x=pn);
/* La primera iteración en pn = 0.23 */
pn:.2;
/* Repetimos el proceso desde 1 hasta 10 iteraciones */
for i:1 thru 10 do (print(i,float(pn)),pn:newton(pn));
/* Dibujamos la función (Paso opcional)*/
plot2d([x^2-2],[x,-2,2]);
Recuerda de ejecutar el programa con la combinación de las teclas control + R. En la siguiente página se muestran los resultados, observa que en la octava iteración se obtiene la solución.
Puedes digitar el código, copiarlo de esta página o hacer clic en la imagen para descargar el archivo.
Algunas conclusiones:
El método es altamente eficiente, pues encuentra la raíz en muy pocas iteraciones.
Puede presentar problemas en la derivada so tiende a cero, es muy compleja o no se conoce.
Cuando el algoritmo no converge, es necesario elegir otro punto inicial.
Si la derivada se aproxima a cero el método trabaja demasiado lento.
En el método de Newton, para obviar la dificultad de calcular la derivada de la función en cada punto se considera una aproximación
Con lo que el método iterativo quedaría expresado como
Para poder aplicar el método son necesarias dos aproximaciones iniciales que permitan iniciar el proceso. Hay diversas alternativas como puede ser considerar una aproximación inicial y obtener la segunda aplicando el método de Newton. Aquí consideraremos un intervalo inicial y sus extremos serán esas dos primeras aproximaciones.
El nombre del método es debido a que gráficamente se está sustituyendo la recta tangente del método de Newton por la recta secante.
El método de la Secante puede formularse de manera independiente del método de Newton y como mejora del método de la bisección donde en lugar del punto medio del intervalo se selecciona un valor proporcional a los valores de la función en los extremos del intervalo, y de aquí que el método se denomine también “de las partes proporcionales”.
El método de la secante como variación del método de Newton busca evitar el cálculo de la derivada de la función, aproximando la pendiente a la recta secante que une los puntos (x1, f(x1)) y (x2, f(x2)) a la recta tangente en el punto de intersección de la función con el eje x.
En la escena de GeoGebra de la página siguiente, aproxima los puntos x1 y x2 a la intersección y observa cómo la solución converge. Desplaza el deslizador para que observes paso a paso la aproximación de la secante a la tangente.
Ejercicios
1. Obtener la solución única de x3 + 4x2 - 10 = 0 mediante el método de la Secante. Compara los resultados obtenidos interactuando con la escena de Descartes.
2. Resuelve las ecuaciones planteadas en el apartado 3.3. Puedes hacerlo con Descartes, GeoGebra o Maxima
3. Determina la raíz real mínima de f(x) =−11−22x+17x2 −2.5x3
Actividad con GeoGebra
Practica con la siguiente escena creada por Kelly Vanessa Peña Rodriguez
Haz clic para ampliar la escena
Programación del método de la Secante en wxMaxima
A continuación se presenta el código en wxMaxima para el método de la Secante.
/* Creamos la función de iteración (secante(arg)) */
secante(arg):=block([a:arg[1],b:arg[2],f:arg[3],xsec], xsec:(a*ev(f,x=b)-b*ev(f,x=a))/(ev(f,x=b)-ev(f,x=a)), [b,xsec,f] );
/* La primera iteración en a = 1, b = 2 y f = x^2 - 2 */
ini:[1,2,x^2-2];
/* Repetimos el proceso desde 1 hasta 10 iteraciones */
for i:1 thru 10 do (print(i,float(ini),float(ini:secante(ini))));
/* Dibujamos la función (Paso opcional)*/
plot2d([x^2-2],[x,-2,2]);
En el código hemos empleado la estructura tipo bloque, que permite evaluar varias expresiones y devolver el último resultado. Por ejemplo, la estructura block([a,b],a:2,b:3,a+b); devolvería el valor de 5.
Recuerda de ejecutar el programa con la combinación de las teclas control + R. En la siguiente página se muestran los resultados para dos funciones diferentes, observa que la primera salida es el bloque donde aparece la expresión de la pendiente. Luego aparecen pares de bloque así: [a, b, f(x)] [b, f(b), f(x)].
Puedes digitar el código, copiarlo de esta página o hacer clic en la imagen para descargar el archivo.
Estos son dos resultados del método de la Secante ejecutado con wxMaxima
Haz clic para ampliar la imagen
Haz clic para ampliar la imagen
Los métodos cerrados están basados en el teorema de Bolzano y la convergencia está garantizada bajo las condiciones del teorema. Los métodos abiertos, anteriormente explicados, no nos garantizan la convergencia, por lo que deberemos definir un número máximo de iteraciones y elegir en el proceso iterativo un buen punto inicial. Los métodos cerrados utilizan intervalos dentro de los que se debe encontrar la raíz de la ecuación, es decir, en ese intervalo la función cambia de signo. El intervalo se determina por medio de la gráfica de la ecuación o del método de búsqueda incremental. En es capítulo trabajaremos con el método de la Bisección y el de Regula Falsi.
Si una función f(x) es continua en un intervalo cerrado [a,b] y f(a) y f(b) son de distinto signo, existe por lo menos un punto entre a y b para el cual f(c)=0.
También conocido como método de la Bipartición o de la Dicotomía. Para este método presentaremos la programación del código en las herramientas de autor GeoGebra y Descartes, que serán una base conceptual para programar los demás métodos. Igualmente, si ya descargaste este libro a tu ordenador, es posible explorar y analizar los códigos de programación de los métodos anteriores, pues estos se encuentran almacenados en la carpeta interactivos.
Considérese una ecuación no lineal de la forma f(x) = 0, donde f es continua en un intervalo [a, b] y tal que f(a) tiene signo contrario a f(b), es decir que f(a)·f(b) < 0. Por el Teorema de Bolzano existirá al menos un punto de este intervalo en el que f(x) se anule.
Nota: El que exista “al menos” un punto en el que se anule f(x) no quiere decir que sólo haya uno. Contando cada raíz de f(x) tantas veces como sea su multiplicidad, si f(a)·f(b) < 0, habrá en general un número impar de raíces y si fuese positivo o no hay ninguna raíz o habrá un número par de ellas.
Una primera aproximación de este punto puede ser el punto medio:
p1 = (a + b)/2
Si f(p1) = 0 ya se tendría calculada una raíz. Pero en general se tendrá que f(p1) ≠ 0 Pero, al ser la función continua, si f(a)·f(p1) < 0 se puede afirmar que en el intervalo [a, p1] habrá al menos una solución de la ecuación. Y si f(a)·f(p1) > 0 se verificará que f(p1)· f(b) < 0 lo que nos indicaría que en el intervalo [p1, b] existirá al menos una raíz. Por tanto, se habrá definido así un nuevo intervalo [a1, b1] en el que existirá una solución. En él puede aplicarse nuevamente el proceso anterior.
En las dos páginas siguientes, presentamos dos escenas, una en Descartes y otra en GeoGebra para que practiques con este método, luego presentamos ejemplos de códigos de programación para Descartes, GeoGebra y Maxima.
Actividad con Descartes
Escena creada por José R, Galo, cambia funciones y compara con la escena de GeoGebra.
Haz clic para ampliar la escena
Actividad con GeoGebra
Escena creada por K. G Sreekumar. Mueve los puntos del intervalo [a, b]
Haz clic para ampliar la escena
Programación del Método de la Bisección con Descartes
En el siguiente vídeo podrás observar cómo se programa una escena de la Bisección con Descartes. Sugerimos verlo en forma ampliada y en el navegador Chrome.
Haz clic para ampliar la escena
Programación del Método de la Bisección con GeoGebra
En el siguiente vídeo podrás observar cómo se programa una escena de la Bisección con GeoGebra. Sugerimos verlo en forma ampliada y en el navegador Chrome.
Haz clic para ampliar la escena
Programación del método de la Bisección en wxMaxima
A continuación se presenta el código en wxMaxima para el método de la Bisección.
/* Definimos el número de decimales a mostrar */
decimales:4;
prec:10^decimales;
/* Definimos la función f(x) y el intervalo [a, b] */
f(x):=cos(x)-x;
a:0.0;
b:2.0;
/* Usamos un bucle tipo for para las iteraciones */
for i:1 thru 15 do
(
c:(a+b)/2, /* calculamos el punto medio */
if f(a)*f(c)>0 /* ¿Son del mismo signo en [a,c]? */
; ; then a:c /* elegimos [c,b] */
; ; else b:c, /* elegimos [a,c] */
print(i,float(round(a*prec)/prec),float(round(b*prec)/prec)) /* escribimos los resultados con cuatro decimales */
)$
En el código hemos usado el comando round(), el cual trunca los decimales. Recuerda ejecutar el programa con la combinación de las teclas control + R. Puedes digitar el código, copiarlo de esta página o hacer clic en la imagen para descargar el archivo. Recuerda que puedes incluir la gráfica con una expresión como plot2d(f(x),[x,0,2]);
Este método es una combinación del método de bisección y del método de la secante.
Partiendo de la situación del método de la bisección, es decir, una ecuación no lineal de la forma f(x) = 0, donde f es continua en un intervalo [a, b] y tal que f(a) tiene signo contrario a f(b), es decir que f(a)·f(b) < 0. Se considera el punto x1 punto de corte con el eje de abscisas de la recta secante que pasa por (a, f(a)), (b, f(b)), es decir al punto
Si f(x1)·f(a) < 0 en el intervalo (a, x1) existirá una solución, y si f(x1)·f(a) > 0 se puede afirmar lo mismo en (x1, b) , habiéndose alcanzado la solución si f(x1) = 0 o bien disponiéndose de un nuevo intervalo en el que aplicar de nuevo el proceso.
En las dos páginas siguientes, presentamos dos escenas, una en Descartes y otra en GeoGebra para que practiques con este método, te queda como tarea programar el método en Maxima.
Actividad con Descartes
Escena creada por José R, Galo, cambia funciones y compara con la escena de GeoGebra.
Haz clic para ampliar la escena
Actividad con GeoGebra
Escena creada por Andreas Lindner. Mueve los puntos del intervalo [a, b]
Haz clic para ampliar la escena
Una ecuación lineal, que denotaremos como E1, con n variables o incógnitas x1,x2,...,xn es de la forma
E : a1x1 + a2x2 + ... + anxn = b.
Tanto los coeficientes (a1,a2,...,an ) como el término independiente b son números reales. La solución de la ecuación lineal es un conjunto de valores para las variables o incógnitas que satisfacen la ecuación. Por otra parte, los sistemas de ecuaciones lineales que surgen al modelar problemas de diferentes áreas del conocimiento, en especial las disciplinas ingenieriles, son un conjunto de m ecuaciones lineales E1,E2,...,Em que se pueden representar así:
E1 : a11x1 + a12x2 + a13x3 + ... + a1nxn = b1
E2 : a21x1 + a22x2 + a23x3 + ... + a2nxn = b2
E3 : a31x1 + a32x2 + a33x3 + ... + a3nxn = b3
Em : am1x1 + am2x2 + am3x3 + ... + amnxn = bm
A este conjunto de ecuaciones se le llama sistema lineal de m x n. El sistema lineal se puede escribir de la forma Ax = b, donde A es la matriz de coeficientes, b es el vector de términos independientes y x = (x1,x2,...,xn), es la solución.
En la introducción observamos que el sistema lineal de ecuaciones incorpora una matriz de coeficientes, razón por la cual es importante recordar algunos conceptos trabajados en un curso de álgebra lineal relacionados con el álgebra de matrices o, si se prefiere, el álgebra matricial. Inicialemente, recordemos que una matriz es un arreglo o colección de elementos dispuestos en forma rectangular en filas y columnas. Estos elementos, generalmente, son números reales.
Una buena opción para repasar las operaciones más simples con matrices es a través del vídeo de Bill Shillito, publicado, inicialmente, en TED-Ed:
Haz clic para ampliar el vídeo
El sistema lineal, como vimos antes, se puede escribir de la forma Ax = b. En el siguiente interactivo puedes observar la matriz representativa del sistema.
Una matriz, como hemos visto, es una tabla rectangular de datos ordenados en filas y columnas. Todos los elementos de una matriz de orden mxn se denotan de la forma aij, el valor de i representa la fila y el valor de j la columna. Demuestra que has entendido esta notación con el siguiente ejercicio:
Autores: |
Héctor, José y Juan |
||
Edición : |
Yo |
||
Librería turn.js: |
Emmanuel García |
||
Herramienta de edición: |
DescartesJS |
||
Fuente: |
Amaranth |