Métodos numéricos en Excel y Matlab. Rolando Barrera Zapata
Чтение книги онлайн.
Читать онлайн книгу Métodos numéricos en Excel y Matlab - Rolando Barrera Zapata страница 3
En otras palabras, 1.41 es un valor exacto para describir
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ón | 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 variable | |
3 | Compare 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] |
4 | Si 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) | 6 > (0 + 0.2); por lo tanto, el nuevo x debe ser un valor < 2. Para efectos ilustrativos suponga x = 1 |
Repita 2 | Evalúe la función en el valor asignado a la variable | |
Repita 3 | Compare el resultado con el valor esperado para la función (dentro de la tolerancia permitida) | 0 ± τ = [0 – 0.2, 0 + 0.2] |
Repita 4 | Si 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) | –3 < (0 – 0.2); por lo tanto, el nuevo x debe ser un valor > 1. Para efectos ilustrativos suponga x = 1.5 |
Repita 2 | Evalúe la función en el valor asignado a la variable | |
Repita 3 | Compare el resultado del valor esperado para la función (dentro de la tolerancia permitida) | 0 ± τ = [0 – 0.2, 0 + 0.2] |
Repita 4 | Si 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.75 > (0 + 0.2); por lo tanto, el nuevo x debe ser un valor < 1.5. Para efectos ilustrativos suponga x = 1.4 |
Repita 2 | Evalúe la función en el valor asignado a la variable | |
Repita 3 | Compare el resultado con el valor esperado para la función (dentro de la tolerancia permitida) | 0 ± τ = [0 – 0.2, 0 + 0.2] |
Repita 4 | Si 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.12 |
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álculo | x | F(x) | ¿Cumple tolerancia? | Error relativo | %error absoluto |
0 | 2 | 6 | No | 43% | |
1 | 1 | –3 | No | 1 | 29% |
2 | 1.5 | 0.75 | No | 0.5 | 7% |
3 | 1.4 | –0.12 | Sí | 0.1 | 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