Está en la página 1de 12

Métodos numéricos y herramientas computacionales

Lecturas y notas de clase para el curso Matemáticas Especiales en Ingeniería Química

Rolando Barrera Zapata


Luis Alberto Díaz Montes

Grupo CERES, Departamento de ingeniería química, Facultad de ingeniería, Universidad


de Antioquia UdeA, Calle 70 No. 52-21, Medellín, Colombia
Prólogo
Este libro se presenta como material de apoyo y consulta para el curso matemáticas
especiales en ingeniería química (código 2505750) del programa de ingeniería química de
la Universidad de Antioquia, el cual se ofrece en el sexto semestre de la carrera y orienta
sus contenidos de modo tal que el estudiante no solo conozca y aprenda a usar
razonablemente métodos numéricos para diferentes aplicaciones o problemas, sino que
además adquiera o refuerce habilidades específicas que le permitan analizar e interpretar
datos, identificar, formular y resolver problemas de ingeniería, usar técnicas y herramientas
computacionales en la práctica de la ingeniería, entre otros.

Un método numérico puede definirse como un algoritmo, es decir, una secuencia de


operaciones o cálculos ejecutados en un orden específico, para aproximar la solución de un
problema matemático. Tal algoritmo tiene la particularidad que utiliza operaciones
aritméticas simples y comparaciones lógicas para resolver casi cualquier tipo de problema,
independiente de su complejidad matemática. Ese detalle hace de los métodos numéricos
una herramienta importante en prácticamente todos los campos de la ingeniería, donde la
complejidad de problemas o ecuaciones comúnmente limita la aplicabilidad de soluciones
analíticas y donde las soluciones aproximadas suelen ser un recurso valioso para una
amplia gama de situaciones.

Otro detalle importante con los métodos numéricos corresponde al hecho que en muchas
ocasiones para resolver un problema complejo (o simple) utilizando únicamente
operaciones aritméticas como sumas, restas, divisiones y multiplicaciones, puede ser
necesaria una elevada cantidad de cálculos (y por consiguiente de tiempo), que
comúnmente deben ejecutarse de manera iterativa, es decir, utilizando los resultados
parciales o intermedios obtenidos a partir de ciertas operaciones aritméticas en una etapa de
cálculo para resolver los cálculos siguientes a partir de las mismas operaciones. Por esta
razón la aplicabilidad de los métodos numéricos va generalmente ligada al uso de
herramientas computacionales (paquetes de software o programas de computación
comerciales o de desarrollo propio) que hagan eficiente y razonable el esfuerzo y tiempo
dedicado a la solución de un problema en particular.
En ese aspecto, la evolución que en las últimas décadas ha tenido la computación con el
desarrollo de equipos portátiles y procesadores cada vez más potentes ha favorecido el uso
y aplicación de métodos numéricos en diversos campos de la ingeniería, como por ejemplo
en la simulación de procesos, donde son comunes los simuladores comerciales que ayudan
y facilitan las labores de diseño, control y análisis de variables, entre otras. No obstante, no
siempre una herramienta o programa de computación resulta útil o eficiente para resolver
cualquier tipo de problema y es por ello que es necesario que el ingeniero conozca aspectos
fundamentales de los métodos numéricos, de modo que si este falla o lleva a una respuesta
que resulte ilógica en el contexto del problema, esté en capacidad de proponer rutas de
solución alternas con otros métodos o estrategias que eventualmente permitan llegar a la
solución.

Para el presente texto se seleccionaron situaciones o problemas representativos en


ingeniería que se abordan de la siguiente manera: en el capítulo 1 se presentan definiciones
y conceptos en general, en el capítulo 2 la solución de ecuaciones no lineales en una
variable, en el capítulo 3 la solución de sistemas de ecuaciones lineales y no lineales en
varias variables, en el capítulo 4 la regresión e interpolación de datos, en el capítulo 5 el
cálculo de derivadas, en el capítulo 6 el cálculo de integrales, en el capítulo 7 la solución de
ecuaciones y sistemas de ecuaciones diferenciales ordinarias y en el capítulo 8 la solución
de problemas de optimización en una y varias variables. Si bien para muchas de las
situaciones o problemas abordados en el texto existen técnicas analíticas de solución, estas
no siempre son fáciles de implementar, haciendo de los métodos numéricos una opción
alterna para solucionar o aproximar las respectivas soluciones.

A través de los diferentes capítulos del texto se ilustran de manera general los principios,
funcionamiento, ventajas y desventajas de algunos métodos numéricos. Adicionalmente, de
manera diferenciadora con relación a otros textos relacionados con métodos numéricos, se
presenta de manera alternativa cómo implementar los métodos o solucionar los problemas y
situaciones de manera relativamente sencilla en ambientes computacionales como Excel y
Matlab (sin llegar necesariamente a detalles de programación), que corresponden a dos de
los paquetes o programas más comúnmente utilizados en investigación, industria y
academia. Excel se caracteriza por su interfaz amigable, su sencillez de operación y su
disponibilidad globalmente masificada. Por su parte Matlab representa una de las
herramientas de computación más utilizada en casi todos los campos de la ingeniería y pese
a que sus licencias no siempre están disponibles por fuera del ámbito académico, estas se
suplen con el uso de software libre como Octave y Scilab, cuya interfaz, sintaxis y
aplicabilidad es similar y compatible con Matlab para un gran número de situaciones.
Capítulo 1. Introducción
Antes de entrar en detalle con los diferentes métodos numéricos y herramientas
computacionales que se abordan en este texto, es importante repasar y/o contextualizar
diversas expresiones o términos cuyo significado o connotación se usa de manera implícita
a lo largo de casi todos los capítulos. En lugar de presentar de manera separada cada una de
las definiciones, se ilustran diferentes situaciones donde los términos o expresiones como:
solución analítica o exacta, respuesta exacta, error de redondeo, error significativo,
tolerancia, error relativo, error absoluto, %error, exactitud, precisión, tanteo y error,
aleatoriedad, algoritmo, iteración, convergencia y estabilidad, entre otros, aparecen en
contexto. Se recomienda realizar los cálculos u operaciones que citan como ejemplos con el
objeto de verificar los resultados y permitir una mejor asimilación de cada uno de los
conceptos que se pretende ilustrar.

Suponga que necesita determinar el valor de x que satisface la ecuación 1.1:

3𝑥 2 − 6 = 0 (1.1)

La solución analítica o exacta al problema se logra aplicando métodos, fórmulas o


procedimientos matemáticos convencionales, en este caso despejando la variable paso a
paso de la siguiente manera:

6
3𝑥 2 = 6 → 𝑥2 = → 𝑥2 = 2 → 𝑥 = ±√2
3

De este modo, se obtiene que el valor de x = ±√2 corresponde a la respuesta exacta (para
simplificar en adelante se tomará solo su parte positiva), pues al sustituir la x por el valor de
√2 en la ecuación 1.1, el lado izquierdo de la expresión es exactamente igual a 0 y se
cumple la igualdad.

2
3(√2) − 6 = 0 → 3(2) − 6 = 0 → 6−6 = 0 → 0=0
Ahora suponga que es necesario expresar √2 como un número fraccionario antes de
sustituirlo en la ecuación 1.1. Por si no lo recordaba, √2 es un número irracional (ecuación
1.2), así que para llevarlo a la ecuación 1.1 necesariamente debe redondearse a un número
finito de cifras decimales.

√2  1.4142135623730950488016887242097 … (1.2)

La diferencia entre la cifra real y la que se utilice para representar √2 (por ejemplo 1.41,
1.414, 1.4142, 1.414211, etc.) se conoce como error de redondeo. De hecho, incluso al
utilizar la expresión √2 en una calculadora o un equipo de cómputo, éste se limita o
redondea a la cantidad de cifras que pueda almacenar de acuerdo a la capacidad de cómputo
del equipo o software utilizado, o en otras palabras, de manera voluntaria (si usted decide o
asume cuántas cifras utilizar) o involuntaria (si utiliza toda la capacidad – aunque finita –
de su calculadora o equipo de cómputo) se introduce un error de redondeo en los cálculos.
En algunas ocasiones se podría tener un error significativo (que afecte o desvíe los
resultados más allá de un límite permitido) o no. Una medida común para expresar ese
“límite permitido” dentro del cual se puede aceptar desviaciones en los resultados se
conoce como tolerancia, la cual (en el ámbito de los métodos numéricos) se debe definir a
menos que el contexto del problema en particular permita inferirla. Para explicar ese
concepto, observe lo que ocurre al sustituir x = √2 en la ecuación 1.1 usando dos, tres o
cuatro cifras decimales en el valor de la variable (para efectos de comparación se expresa el
resultado con 4 cifras decimales en todos los casos):

3(1.41)2 − 6 = −0.0357 (1.3)


3(1.414)2 − 6 = −0.0018 (1.4)
3(1.4142)2 − 6 = −0.0001 (1.5)

Note que en ninguno de los tres casos la respuesta es = 0 (que es lo esperado según la
ecuación 1.1), aunque a medida que se aumenta el número de cifras decimales para
expresar √2, el resultado de la operación cada vez se hace más cercano a 0 (al menos
dentro de las cifras decimales utilizadas en las respuestas). De acuerdo a la ecuación 1.3
(por ejemplo), afirmar que √2 = 1.41 implica aceptar que -0.0357 = 0 (ecuaciones 1.1 y
1.3), lo cual en un lenguaje estrictamente matemático es absolutamente incorrecto. Ahora,
en un contexto donde se afirme por ejemplo que la temperatura ambiente de un lugar a un
ahora específica es 25°C todo el año, pero un día en particular disminuyó 0.0357°C
registrando 24.9643°C. Considerando además que la temperatura se mide o se registra a
través de termómetros de mercurio que disponen de una escala de 0 a 100 °C para la
medición, es perfectamente válido afirmar que la temperatura todo el año fue de 25°C
ignorando la pequeña variación que se registró, es decir, asumir que la variación de 0.0357
es equivalente a ninguna variación, o en otras palabras, se puede aceptar que en ese
contexto -0.0357  0.
Lo anterior sirve para describir como en muchas ocasiones la decisión sobre qué tantas
cifras decimales utilizar (o con cuántas cifras significativas expresar una cantidad),
generalmente gira en torno a la naturaleza de los datos del fenómeno o situación que se
pretende resolver. Por ejemplo, si la variable representa una temperatura medida en grados
Celsius (°C), es normal utilizar solo dos cifras decimales, ya que la mayoría de equipos de
medición para esa variable (al menos los termómetros y termocuplas comunes) limitan
hasta allí la posibilidad de lecturas confiables. En otro contexto, si la variable representa
una concentración medida en mol por litro (mol/l), es bastante común utilizar 4 cifras
decimales. Dado que para el ejemplo de la ecuación 1.1 no se provee información alguna
sobre la naturaleza del problema en cuestión, es necesario asignar algún criterio o condición
que se deba cumplir para verificar que la respuesta es correcta dentro del contexto del
problema.
En el caso de las ecuaciones 1.3, 1.4 y 1.5, si se define para el problema una tolerancia de 1
x 10-4, implicaría que solo el valor x = 1.4142 es correcto, pues es el único para el que, al
evaluar la función, la diferencia (en valor absoluto) entre el resultado obtenido (-0.0001) y
el resultado esperado (0) es menor o igual a 1 x 10-4. Por el contrario, para una tolerancia
de 1 x 10-1, cualquiera de los valores x = 1.41, x = 1.414 o x = 1.4142 sería correcto, ya que
los tres resultados correspondientes al evaluar la función (-0.0357, -0.0018 y -0.0001)
“caerían” dentro de esa tolerancia.
Otro criterio comúnmente utilizado para corroborar si entre dos o más valores asignados a
una variable (en el caso del ejemplo usando diferente cantidad de cifras decimales) tendrá o
no una incidencia significativa sobre el resultado corresponde al error relativo. Este
consiste en determinar la diferencia (como valor absoluto o en forma porcentual) entre dos
valores diferentes asignados a la variable y comparar si tal diferencia se encuentra dentro de
unos límites previamente asignados o definidos para tal variabilidad. Por su parte, cuando
se compara el valor asignado a la variable con relación a su valor real o esperado, se le
conoce como error absoluto, si éste se expresa de manera porcentual (ecuación 1.6) se le
llama comúnmente %error

𝑣𝑎𝑙𝑜𝑟 𝑟𝑒𝑎𝑙−𝑣𝑎𝑙𝑜𝑟 𝑎𝑠𝑖𝑔𝑛𝑎𝑑𝑜


%𝑒𝑟𝑟𝑜𝑟 = | | 𝑥100 (1.6)
𝑣𝑎𝑙𝑜𝑟 𝑟𝑒𝑎𝑙

Por fuera de un contexto fenomenológico o sin una definición del máximo error relativo,
error absoluto o tolerancia permitida para resolver la ecuación 1.1, cualquier cantidad de
cifras usada para √2 (por ejemplo 1.41, 1.414, 1.4142, etc.) es correcta, pues todos
coinciden con el valor de referencia o valor real para esa cantidad y por lo tanto se puede
afirmar que cualquiera de esos valores describe con exactitud el valor de √2. La diferencia
radica en que a medida que se aumentan las cifras decimales, la cantidad se describe con
mayor precisión, pues una eventual variación alrededor del valor asignado tendrá menor
incidencia en los resultados (por ejemplo al evaluarlo en la Ecuación 1.1). En otras
palabras, 1.41 es un valor exacto para describir √2, pero menos preciso que 1.4142, o
1.4142 es más preciso que 1.414 para describir √2, aunque ambos valores son exactos.

Para continuar ilustrando otros conceptos, se usará otra estrategia de solución (diferente a la
analítica) para resolver el problema de encontrar el valor de x que satisface la ecuación 1.1.
Partiendo del supuesto que aún no se conocen métodos numéricos para resolverlo, se
utilizará tanteo y error para encontrar la solución, es decir, se asignarán diferentes valores
a la variable x y se evaluará cada uno en la ecuación 1.1 hasta que se dé con un valor de x
que satisfaga la condición F(x) = 0 (dentro de una tolerancia definida).
Si la asignación de valores a la variable x se hace de manera aleatoria, es decir, asignando
valores sin seguir patrones o tendencias, la probabilidad de acertar el resultado es muy
limitada, pues será cuestión de suerte encontrar la solución. Además la probabilidad de
encontrar la solución estará condicionada por la tolerancia definida: para grandes
tolerancias (o mayor error permitido), seguramente se llegará a la respuesta con menor
cantidad de cálculos (menor tiempo y esfuerzo) pero esta será poco precisa. Para tolerancias
más pequeñas (o menor error permitido), probablemente se requiera mayor cantidad de
cálculos (mayor tiempo y esfuerzo) pero se tendrá mayor precisión.

Para aumentar la probabilidad de llegar al resultado sin depender de la suerte para lograrlo
(independiente de la tolerancia o error permitido que se defina), puede utilizarse un
algoritmo de solución, es decir, una serie o secuencia lógica de pasos que den un “orden” a
los cálculos mientras se busca la solución del problema. Por ejemplo, en lugar de asignar
valores aleatorios a la variable por tanteo y error, puede intentarse implementar los pasos o
etapas que se describen en la Tabla 1.1.
Tabla 1.1. Ejemplo de algoritmo para “agilizar” el tanteo y error en busca de una solución
para la ecuación 1.1
Paso Algoritmo Ejemplo de ejecución
1 Asigne arbitrariamente un valor inicial a la variable x Para efectos ilustrativos suponga x = 2.
2 Evalúe la función (ecuación 1.1) en el valor asignado a la 𝐹(𝑥) = 𝐹(2) = 3(2)2 − 6 = 6
variable
3 Compare el resultado del Paso 2 con el valor esperado para la Para efectos ilustrativos suponga  = 2 x 10-1
función (dentro de una tolerancia permitida ) = 0.2
0   = [0 – 0.2, 0 + 0.2]
4 Si el resultado en el Paso 3 es F(x) > (0 + ), asigne un nuevo 6 > (0 + 0.2); por lo tanto el nuevo x debe ser
valor a x que sea menor que el utilizado en la etapa anterior y un valor < 2, Para efectos ilustrativos
repita a partir del Paso 2. suponga x = 1
Si el resultado es F(x) < (0- ), asigne un nuevo valor a x
que sea mayor que el utilizado en la etapa anterior y repita a
partir del Paso 2.
Si el resultado es F(x)  [0 - , 0 + ], finalice el ejercicio y
reporte el resultado.
Repite 2 Evalúe la función en el valor asignado a la variable 𝐹(𝑥) = 𝐹(1) = 3(1)2 − 6 = −3
Repite 3 Compare el resultado el valor esperado para la función 0   = [0 – 0.2, 0 + 0.2]
(dentro de la tolerancia permitida)
Repite 4 Si F(x) > (0 + ), asigne un nuevo valor a x que sea menor -3 < (0 - 0.2); por lo tanto el nuevo x debe
que el utilizado en la etapa anterior y repita a partir del Paso ser un valor > 1, Para efectos ilustrativos
2. suponga x = 1.5
Si el resultado es F(x) < (0- ), asigne un nuevo valor a x
que sea mayor que el utilizado en la etapa anterior y repita a
partir del Paso 2.
Si el resultado es F(x)  [0 - , 0 + ], finalice el ejercicio y
reporte el resultado.
Repite 2 Evalúe la función en el valor asignado a la variable 𝐹(𝑥) = 𝐹(1.5) = 3(1.5)2 − 6 = 0.75
Repite 3 Compare el resultado el valor esperado para la función 0   = [0 – 0.2, 0 + 0.2]
(dentro de la tolerancia permitida)
Repite 4 Si F(x) > (0 + ), asigne un nuevo valor a x que sea menor 0.75 > (0 + 0.2); por lo tanto el nuevo x debe
que el utilizado en la etapa anterior y repita a partir del Paso ser un valor < 1.5, Para efectos ilustrativos
2. suponga x = 1.4
Si el resultado es F(x) < (0- ), asigne un nuevo valor a x
que sea mayor que el utilizado en la etapa anterior y repita a
partir del Paso 2.
Si el resultado es F(x)  [0 - , 0 + ], finalice el ejercicio y
reporte el resultado.
Repite 2 Evalúe la función en el valor asignado a la variable 𝐹(𝑥) = 𝐹(1.4) = 3(1.4)2 − 6 = −0.12

Repite 3 Compare el resultado el valor esperado para la función 0   = [0 – 0.2, 0 + 0.2]


(dentro de la tolerancia permitida)
Repite 4 Si F(x) > (0 + ), asigne un nuevo valor a x que sea menor -0.12  [0 – 0.2, 0 + 0.2]; por lo tanto el
que el utilizado en la etapa anterior y repita a partir del Paso resultado x = 1.4 es válido dentro de la
2. tolerancia definida y será una solución al
Si el resultado es F(x) < (0- ), asigne un nuevo valor a x ejercicio.
que sea mayor que el utilizado en la etapa anterior y repita a
partir del Paso 2.
Si el resultado es F(x)  [0 - , 0 + ], finalice el ejercicio y
reporte el resultado.

Observe que inicialmente se ejecutaron los pasos 1 al 4 del algoritmo, luego se repitió del
paso 2 al 4 en tres ocasiones, hasta que se llegó a la solución. Cada una de esas
repeticiones en los pasos del algoritmo se llama iteración o etapa de cálculo.
Para facilitar el análisis del comportamiento o progreso del algoritmo de la tabla 1.1, en la
tabla 1.2 se registran los resultados de la función al evaluarla en cada iteración.
Adicionalmente se registra si cumple o no el resultado dentro de la tolerancia definida y se
calculan el error relativo (diferencia entre dos valores consecutivos asignados a la variable
x) y el % de error absoluto (ecuación 1.6) suponiendo como valor real el que se alcanza en
la tercera iteración (x = 1.4).

Tabla 1.2. Evolución o comportamiento del algoritmo de la tabla 1.1


Iteración o etapa x F(x) Cumple Error % error
de cálculo tolerancia? relativo absoluto
0 2 6 No 1 43%
1 1 -3 No 0.5 29%
2 1.5 0.75 No 0.1 7%
3 1.4 -0.12 Sí 0%
Como se muestra en las tablas 1.1 y 1.2, para este ejemplo se llega en la tercera iteración a
un resultado dentro de la tolerancia definida ( = 0.2). Si se definen tolerancias más
pequeñas (recuerde que en un lenguaje estricto el resultado para F(x) debería ser = 0 pero
con la tolerancia asignada F(x)= -0.12), necesariamente se requeriría mayor precisión en el
valor asignado a la variable (que en este caso es x = 1.4) y sería necesario continuar
realizando iteraciones adicionales hasta llegar al resultado con la precisión (o dentro de la
tolerancia) requerida.
Nótese que en la tabla 1.1 los valores asignados a la variable en el Paso 1 (x = 2), en el Paso
4 (x = 1) y en cada una de las repeticiones del Paso 4 (x = 1.5 y x = 1.4) se asignaron a
propósito para llegar al resultado mostrado, pero siguiendo el mismo algoritmo pudieron
asignarse valores diferentes, que pueden llevar a requerir más o menos iteraciones para
llegar a un resultado válido dentro de la tolerancia, o no llegar a un resultado válido incluso
después de un muy alto número de iteraciones. En los métodos numéricos que se abordan
en los capítulos posteriores, los algoritmos respectivos incluyen de manera clara y explícita
el procedimiento o manera de asignar el valor a la variable x en cada iteración.

De acuerdo a la tabla 1.1, en cada iteración el resultado se va acercando al valor deseado, lo


cual se evidencia con la disminución del % error absoluto en cada iteración. Cuando ello
ocurre, se puede afirmar que el procedimiento, método o estrategia utilizada converge a la
solución. Cuando no ocurre, es decir cuando al aumentar el número de iteraciones no se
logra una aproximación al resultado real, se dice que el método o procedimiento no
converge. Entre diferentes métodos, algoritmos o estrategias que convergen a la solución,
aquel que lo consiga más rápido (en menor cantidad de iteraciones), se dice que es más
estable que el o los otros con los cuales se está comparando.

Hay situaciones en las cuales al incrementar el número de iteraciones el error relativo se


hace muy pequeño y tiende a cero, pero aun así, el error absoluto tiende a ser constante
(pero diferente de cero), es decir, aunque se aumente el número de iteraciones o cálculos,
no se logra mejorar la precisión del resultado. En esos casos, la diferencia entre el resultado
obtenido y el resultado real o esperado se conoce como error del método. En algunos
textos también se menciona un error de truncamiento, que hace alusión al caso cuando la
formulación matemática que describe el problema no representa fielmente el fenómeno
físico que se desea solucionar.

Ejercicios propuestos

Ejercicio 1. 1. A cada una de las siguientes preguntas, responda en el contexto de los


métodos numéricos.
a) Defina qué es una “solución analítica”
b) Explique con sus palabras la diferencia entre una respuesta aproximada y una
respuesta exacta a un problema matemático
c) Cuál es la diferencia entre error de redondeo y error de truncamiento?
d) Que es tolerancia?
e) Cuál es la diferencia entre error relativo y error absoluto?
f) Explique la diferencia entre exactitud y precisión
g) Defina en sus palabras la diferencia entre convergencia y estabilidad

Ejercicio 1.2. Resuelva y escriba sus respuestas de la manera más explícita posible
a) Proponga un algoritmo para determinar la cantidad total de botones que lleva
alguno de los asistentes a la clase en sus prendas de vestir. Luego proponga una
función para estimar la cantidad total de botones en el salón dependiendo de la
cantidad de asistentes.
b) ¿Cuántas cifras decimales considera necesarias para expresar con suficiente
precisión la función propuesta en el literal anterior y por qué?
c) ¿Qué tolerancia definiría para la función anterior y por qué?
d) Si hace un conteo manual o exacto de la cantidad de botones y los estima usando
el algoritmo y la función propuestas, cuál es el % error absoluto?