Читать книгу Métodos numéricos en Excel y Matlab - Rolando Barrera Zapata - Страница 5

Оглавление

1. Introducción a los métodos numéricos

Antes de entrar en detalle en los diferentes métodos numéricos y las herramientas computacionales que se abordan en este texto, es importante repasar o contextualizar diversos términos cuyo significado o connotación se usa de manera implícita en casi todos los capítulos. En lugar de presentar por separado cada una de las definiciones, se exponen diferentes situaciones en las que expresiones como solución analítica o exacta, respuesta exacta, error de redondeo, error significativo, tolerancia, error relativo, error absoluto, porcentaje de error (%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 se citan como ejemplos, con el objeto de verificar los resultados y permitir mejor asimilación de los conceptos que se pretende ilustrar.

1.1 Errores y tolerancia

Suponga que necesita determinar el valor de x que satisface la ecuación 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:


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


Ahora suponga que es necesario expresar como un número fraccionario antes de sustituirlo en la ecuación 1.1. Por si no lo recordaba, 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.


La diferencia entre la cifra real (con infinitas cifras decimales) y la que se utilice para representar (por ejemplo 1.41, 1.414, 1.4142, 1.41421, etc.) se conoce como error de redondeo. De hecho, incluso al utilizar la expresión en una calculadora o un equipo de cómputo, este se limita o redondea a la cantidad de cifras que pueda almacenar según la capacidad de cómputo del equipo o programa 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). La medida común para expresar ese “límite permitido”, dentro del cual se pueden aceptar desviaciones en los resultados, se conoce como tolerancia, la cual 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 = en la ecuación 1.1 usando dos (ecuación 1.3), tres (ecuación 1.4) o cuatro (ecuación 1.5) 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.


Puede notarse que para ninguna de las tres situaciones (ecuaciones 1.3, 1.4 y 1.5) la respuesta es = 0, que es lo esperado según la ecuación 1.1. Sin embargo, a medida que se aumenta el número de cifras decimales para expresar , el resultado de la operación se hace más cercano a 0 (al menos dentro de las cifras decimales utilizadas en las respuestas).

Por ejemplo, de acuerdo con la ecuación 1.3, afirmar que = 1.41 (lo cual es cierto al redondear) implica aceptar que el valor –0.0357 = 0 (según las ecuaciones 1.1 y 1.3), lo cual, en un lenguaje estrictamente matemático, es incorrecto. Ahora, en un contexto hipotético donde se afirme que la temperatura ambiente de un lugar a una hora específica es 25 °C todo el año, pero un día en particular disminuyó 0.0357 °C, registrando 24.9643 °C, y considerando además aspectos como que la temperatura se mide con termómetros de mercurio que disponen para ello de una escala de 0 a 100 °C, es perfectamente válido afirmar que la temperatura todo el año fue de 25 °C e ignorar 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, aceptar que en ese contexto –0.0357 ≈ 0.

Lo anterior sirve para aseverar que en muchas ocasiones la decisión sobre qué tantas cifras decimales o cifras significativas utilizar para expresar una cantidad gira en torno a la naturaleza de los datos del fenómeno o situación que se desea representar. Por ejemplo, si un dato representa una temperatura medida en grados Celsius (°C), es normal utilizar solo dos cifras decimales, ya que la mayoría de los equipos de medición y control para esa variable (al menos los termómetros y termocuplas comunes) limitan hasta allí la posibilidad de lecturas confiables. En otro contexto, si el dato 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 definir 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 para el problema se define 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 otro lado, 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) satisfacen el criterio dado por esa tolerancia.

En otras palabras, dependiendo de la cantidad de cifras decimales a las que se redondee el resultado de las ecuaciones 1.3, 1.4 y 1.5, se puede asumir que son = 0 o se puede afirmar que son ≠ 0.

Otro criterio utilizado comúnmente para corroborar si al asignar diferentes valores a una variable (en el caso del ejemplo, usando diferente cantidad de cifras decimales) se modifica significativamente el resultado es el 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 definidos para tal variabilidad.

Por su parte, cuando se compara el valor asignado a la variable con su valor real o esperado, se le conoce como error absoluto; si este se expresa de manera porcentual (ecuación 1.6) se le llama comúnmente porcentaje de error (%error).


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 (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 . La diferencia radica en que a medida en 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 , pero menos preciso que 1.4142, o 1.4142 es más preciso que 1.414 para describir , aunque ambos valores son exactos.

1.2 Algoritmos e iteraciones

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 de 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 x y se evaluará cada uno en la ecuación 1.1 hasta obtenerse 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 que se describen en la tabla 1.1, donde se puede observar que, para llegar a la solución, inicialmente se ejecutaron los pasos 1 al 4 del algoritmo y luego se repitió del paso 2 al 4 en tres ocasiones. Cada una de esas repeticiones en los pasos del algoritmo se llama iteración o etapa de cálculo.

Tabla 1.1 Ejemplo de un algoritmo para agilizar el tanteo y error en busca de una solución para la ecuación 1.1

Paso AcciónEjemplo de ejecución
1Asigne arbitrariamente un valor inicial a la variable xPara efectos ilustrativos suponga x = 2
2Evalúe la función (ecuación 1.1) en el valor asignado a la variable
3Compare el resultado del paso 2 con el valor esperado para la función (dentro de una tolerancia permitida τ)Para efectos ilustrativos suponga τ = 2 x 10–1 = 0.20 ± τ = [0 – 0.2, 0 + 0.2]
4Si el resultado en el paso 3 es F(x) > (0 + τ), asigne un nuevo valor a x que sea menor que el utilizado en la etapa anterior y repita a partir del paso 2.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 resultado6 > (0 + 0.2); por lo tanto, el nuevo x debe ser un valor < 2. Para efectos ilustrativos suponga x = 1
Repita 2Evalúe la función en el valor asignado a la variable
Repita 3Compare el resultado con el valor esperado para la función (dentro de la tolerancia permitida)0 ± τ = [0 – 0.2, 0 + 0.2]
Repita 4Si F(x) > (0 + τ), asigne un nuevo valor a x que sea menor que el utilizado en la etapa anterior y repita a partir del paso 2.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–3 < (0 – 0.2); por lo tanto, el nuevo x debe ser un valor > 1. Para efectos ilustrativos suponga x = 1.5
Repita 2Evalúe la función en el valor asignado a la variable
Repita 3Compare el resultado del valor esperado para la función (dentro de la tolerancia permitida)0 ± τ = [0 – 0.2, 0 + 0.2]
Repita 4Si F(x) > (0 + τ), asigne un nuevo valor a x que sea menor que el utilizado en la etapa anterior y repita a partir del paso 2.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 resultado0.75 > (0 + 0.2); por lo tanto, el nuevo x debe ser un valor < 1.5. Para efectos ilustrativos suponga x = 1.4
Repita 2Evalúe la función en el valor asignado a la variable
Repita 3Compare el resultado con el valor esperado para la función (dentro de la tolerancia permitida)0 ± τ = [0 – 0.2, 0 + 0.2]
Repita 4Si F(x) > (0 + τ), asigne un nuevo valor a x que sea menor que el utilizado en la etapa anterior y repita a partir del paso 2.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–0.12 [0 – 0.2, 0 + 0.2]; por lo tanto, el resultado x = 1.4 es válido dentro de la tolerancia definida y será una solución al ejercicio

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 %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 de cálculoxF(x)¿Cumple tolerancia?Error relativo%error absoluto
026No43%
11–3No129%
21.50.75No0.57%
31.4–0.120.10%

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 con el mismo algoritmo pudieron asignarse valores diferentes, ocasionando al final 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 el capítulo 2 para la solución de ecuaciones no lineales en una variable (como la ecuación 1.1), los algoritmos respectivos incluyen de manera clara el procedimiento para asignar el valor a la variable x en cada iteración.

De acuerdo con 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 en cada iteración. Cuando ello ocurre, se puede afirmar que el procedimiento, el método o la estrategia utilizados convergen a la solución numérica. 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 consigue más rápido (en menor cantidad de iteraciones) se dice que es más estable que 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.

1.3 Dominio de interés y discretización

Considere una variable x que representa una magnitud física (por ejemplo, una distancia) y que según un problema o modelo matemático específico se encuentra acotada para un intervalo definido o dominio de interés (por ejemplo [1 ≤ x ≤ 10]). En un lenguaje matemático estricto, específicamente en el cálculo infinitesimal, la variable x puede tomar infinitos valores, pese a estar restringida dentro de un dominio de interés.

Igualmente, si existe una función y que dependa de la variable x, es decir, que se pueda expresar como y = F(x), esta también puede tomar infinitos valores, cada vez que se evalúe en un x diferente. Cuando matemáticamente se puede calcular y para cualquier valor de x dentro de su dominio, sin que se presenten interrupciones, saltos ni indeterminaciones en los valores que puede tomar y, se dice que la función es continua en todo el intervalo.

En el campo de los métodos numéricos, y para muchas situaciones en el ámbito de la ingeniería, no es necesario conocer o calcular todos los valores posibles que pueda tomar la variable y (que de hecho son infinitos), sino que se puede tomar, utilizar o asumir una tendencia o una representación de la función a partir de un número finito de valores.

Para ello se discretiza el dominio de la variable x seleccionando un número finito de puntos. Al evaluar la función y en cada uno de ellos, se podrá observar que mientras más puntos se evalúen, habrá mayor certeza de que la representación aproximada (a partir de puntos finitos) coincide con la función continua que se obtendría con un número infinito de puntos. No obstante, puede haber situaciones para las cuales sea posible obtener una muy buena representación de la función a partir de la evaluación en unos pocos puntos. Por ejemplo, si la función tiene un comportamiento lineal, dos puntos serían suficientes para representar el comportamiento de la función a lo largo de todo el dominio de interés.

Por otro lado, independiente de la naturaleza, forma o trayectoria de la función, si se toman dos puntos consecutivos para x dentro de su dominio y la distancia que los separa es pequeña, el tramo de la función evaluada en esos dos puntos puede aproximarse a un comportamiento lineal.

A manera de ejemplo, en la figura 1.1 se muestran algunas aproximaciones a la función tomando diferente cantidad de puntos dentro del intervalo [–1 ≤ x ≤ 1].

En el cálculo infinitesimal, el gráfico de la función dentro de todo su intervalo corresponde a una semicircunferencia de radio = 1. En las matemáticas discretas, se debe asignar una cantidad finita de valores a la variable x dentro del intervalo dado. Mientras mayor cantidad de puntos se evalúen, habrá una mejor representación de la función original a partir de la suposición de tramos rectos entre cada dos puntos consecutivos de la función.


Figura 1.1 Representación gráfica de la función utilizando diferente cantidad de puntos para la variable x y suponiendo comportamiento lineal entre cada dos puntos consecutivos de la función: a) utilizando 3 puntos; b) utilizando 5 puntos; c) utilizando 9 puntos; d) utilizando 201 puntos

Ejercicios

Ejercicio 1.1 Responda las siguientes preguntas en el contexto de los métodos numéricos.

1 ¿Qué es una “solución analítica”?

2 Explique con sus palabras la diferencia entre una respuesta aproximada y una respuesta exacta a un problema matemático.

3 ¿Cuál es la diferencia entre error de redondeo y error de truncamiento?

4 ¿Que es tolerancia?

5 ¿Cuál es la diferencia entre error relativo y error absoluto?

6 Explique la diferencia entre exactitud y precisión.

7 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.

1 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.

2 ¿Cuántas cifras decimales considera necesarias para expresar con suficiente precisión la función propuesta en el literal anterior y por qué?

3 ¿Qué tolerancia definiría para la función anterior y por qué?

4 Si hace un conteo manual o exacto de la cantidad de botones y lo estima usando el algoritmo y la función propuestas, ¿cuál es el %error?

Ejercicio 1.3 ¿Cuántos puntos considera que serían necesarios o suficientes para representar con una precisión aceptable las siguientes funciones?


Métodos numéricos en Excel y Matlab

Подняться наверх