Los objetivos de esta práctica son los siguientes:
Una hoja de cálculo es una herramienta de gran utilidad en la resolución de problemas en ingeniería dado que, además de permitir manejar una gran cantidad de datos y realizar operaciones complejas de forma interactiva, proporciona una potente herramienta de representación gráfica de datos, fácil de utilizar.
De hecho, hay una gran cantidad de problemas que pueden ser resueltos y analizados con una simple hoja de cálculo de una manera rápida y eficaz, sin tener que recurrir al desarrollo de aplicaciones específicas o al uso de otras aplicaciones de cálculo comerciales más potentes, pero más costosas y complejas de utilizar.
Nos centraremos en los siguientes puntos, aunque para profundizar en ellos se recomienda consultar la documentación oficial de Excel y la bibliografía recomendada:
Hay muchos problemas matemáticos donde no se conoce un método analítico para calcular una solución exacta o bien el método para obtener la solución es tan costoso que no resulta una opción válida para obtener un resultado con un tiempo de respuesta bajo. En dichos casos, una alternativa es utilizar un método numérico que aproxime la solución.
Como caso de estudio consideraremos la curva catenaria. Desde el punto de vista físico, una catenaria describe la forma que adopta un cable suspendido por sus extremos y sometido exclusivamente a la acción de su propio peso.
La catenaria invertida, obtenida al reflejar la curva respecto de un eje horizontal, presenta una propiedad estructural especialmente relevante en arquitectura: bajo cargas gravitatorias uniformes, el esfuerzo interno es predominantemente de compresión, lo que la convierte en una forma óptima para el diseño de arcos y bóvedas.
Figura 1: Ejemplos de catenarias en arquitectura. Fuente: apuntesdearquitecturadigital.blogspot.com.
Un ejemplo de su aplicación es la obra del arquitecto Antonio Gaudí, quien empleó modelos físicos de catenarias invertidas para el diseño de la Sagrada Familia en Barcelona, tal como se ilustra en la Figura 1.
Podéis utilizar la web WikiArquitectura para explorar información sobre edificios, arquitectos y obras de distintos lugares del mundo. En el contexto de esta práctica, puede ser especialmente útil para localizar ejemplos arquitectónicos en los que aparezcan arcos, bóvedas o formas relacionadas con la curva catenaria, y así relacionar el modelo matemático con aplicaciones reales en arquitectura.
También podéis encontrar más información sobre las curvas catenarias en el siguiente vídeo:
La curva que describe un cable suspendido de dos puntos a la misma altura y cuyo punto mínimo es el punto \((0,a)\) se puede escribir como:
\[ y = a \cosh\left(\frac{x}{a}\right) = a \frac{e^{x/a} + e^{-x/a}}{2} \]
donde \(a > 0\) es un parámetro real que controla la forma de la curva y la tensión del cable. Valores mayores de \(a\) producen una curva más ancha y menos tensa, mientras que valores menores de \(a\) producen una curva más estrecha y más tensa.
En esta práctica vamos a resolver la ecuación \(y = b\), para un número real \(b\). Para ello, consideraremos la función:
\[ f(x) = a \cosh\left(\frac{x}{a}\right) - b \]
y buscaremos las soluciones de la ecuación \(f(x) = 0\).
Podéis interactuar con la curva catenaria a continuación, modificando el valor de la constante \(a\) para ver cómo afecta a la forma de la curva. También podéis modificar el valor de \(b\) para ver cómo afecta a la posición de la línea horizontal y a las soluciones de la ecuación \(f(x) = 0\).
Los pasos a seguir para representar gráficamente la función \(f\) y obtener una aproximación de la solución a la ecuación \(f(x) = 0\) son los siguientes:
Libro en blanco.B2 y C2 escribiremos los valores de \(a\) y \(b\). Por ejemplo, \(a = 2\) y \(b = 5\). Asimismo, podemos utilizar las columnas B1 y C1 para añadir texto que permita explicar el significado de las celdas de abajo, escribiendo a y b.Como la función \(f\) es continua, un cambio de signo implica que entre dichos valores existe un valor intermedio donde la función toma el valor \(0\).
Por ejemplo, la gráfica muestra que el valor de \(x\) donde \(f(x) = 0\) está en \([2, 4]\), y además \(f(2) < 0\) y \(f(4) > 0\). Por tanto, los valores de \(x\) irán en el rango \([2, 4]\), con un incremento de \(0,1\) entre cada valor.
D2:E22. No basta con crear la tabla, es obligatorio utilizar correctamente referencias absolutas y relativas.2, en la celda D2. Después, marcamos las celdas a rellenar, D2:D22, y utilizamos la opción Inicio > Rellenar > Series, indicando el incremento de valor deseado.E2 la fórmula para calcular \(f(x)\) a partir del valor de \(x\) en la celda D2. Excel incluye la función COSH para calcular un coseno hiperbólico.E2 en las celdas E3:E22.Error de actualización
Excel ajusta automáticamente la fórmula, pero el resultado no es correcto: \(x\) se ha actualizado correctamente, pero las referencias a los valores de \(a\) y \(b\) también.
E2 combinando el uso de referencias absolutas y relativas. Para crear referencias absolutas, de modo que no cambien automáticamente al copiarse la celda, se añade un carácter $ entre la letra y el número, por ejemplo $B$2. También podéis usar el atajo de teclado con F4 o Fn+F4.E2 a las celdas E3:E22.D2:E22 e insertamos un gráfico de tipo XY Dispersión. Haciendo click en cada eje podemos cambiar el rango de valores mostrado, como muestra la Figura 4.Figura 4: Actualización de ejes en el gráfico.
Figura 5: Gráfico de tipo XY Dispersión.
.xlsx, por ejemplo, practica4.xlsx.En lugar de repetir el proceso a mano, vamos a automatizarlo. Comenzaremos con un intervalo e iremos reduciéndolo por el método de bisección hasta obtener una solución que nos parezca suficientemente buena.
El método de bisección es un método numérico para encontrar soluciones de funciones continuas. El método se basa en el teorema del valor intermedio: si una función cambia de signo en un intervalo, entonces debe tener al menos una solución en dicho intervalo.
G1:J1 escribiremos los nombres Xmin, Xmax, Xmedio y f(x).G2 y H2 escribiremos los extremos del intervalo inicial, tales que \(f(G2)\) y \(f(H2)\) tengan distinto signo: \(f(3.1) < 0\) y \(f(3.2) > 0\).I2 escribimos la fórmula para calcular el punto medio del intervalo, es decir, la media de G2 y H2.J2 calculamos el resultado de evaluar la función \(f\) en el punto indicado en la celda I2.G3 y H3, definimos un nuevo extremo para el intervalo. Si f(xMedio) es negativo, seleccionamos el intervalo [xMedio, xMax] en la siguiente iteración. Si es positivo, utilizamos [xMin, xMedio]. Usa la función =SI para resolver esta composición condicional.I2 y J2 en I3 y J3, respectivamente.Figura 7: Resultados obtenidos al aplicar el método de bisección. A la derecha, en \(f(x)\), se puede observar que no se ha alcanzado el valor cero, pero el error es inferior a \(10^{-6}\).
practica4.xlsx.Por último, vamos a crear una macro que permita calcular nuestra función \(f\). Una macro no es más que una función que nos permitirá escribir una fórmula para evaluar la función en un punto dado por una celda.
Nuestra función recibirá 3 parámetros de entrada: los valores de \(x\), \(a\) y \(b\). Fíjate en la Figura 8.
Figura 8: Ejemplo de uso de la macro EvaluarF.
E2 escribe la fórmula =EvaluarF(D2; B2; C2).Error de función no definida
Por ahora, Excel no encuentra la función llamada EvaluarF. En su lugar, intenta utilizar la función SUMA y especifica un rango de celdas. Las funciones deben comenzar con el carácter =.
EvaluarF no está definida.
EvaluarF. Para ello, utilizamos la opción del menú Archivo > Opciones > Personalizar cinta de opciones y activamos Desarrollador o Programador.Figura 10: Activación de las opciones de Programador.
Desarrollador > Visual Basic aparecerá una nueva ventana. Después de utilizar la opción Insertar > Módulo, copia y pega el código siguiente.Programación en Visual Basic
Al igual que en Java, nuestra función en Visual Basic debe utilizar operaciones como la suma (+), la resta (-), la multiplicación (*) y la división (/). Recuerda además que los paréntesis se utilizan para indicar el orden de las operaciones.
De nuevo, la curva catenaria se define como \(f(x) = a \frac{e^{x/a} + e^{-x/a}}{2} - b\).
Figura 11: Ejemplo de definición de la función EvaluarF en Visual Basic.
.xlsm. Por ejemplo, guárdalo con el nombre practica4_macro.xlsm.E2 la macro EvaluarF. Haz lo mismo para las celdas E3:E22. Tened cuidado nuevamente con las referencias absolutas.EvaluarF aplicada en la hoja de cálculo.
Solo debe realizar la entrega un miembro del grupo. Sube a Moodle un fichero comprimido practica4.zip que contenga los siguientes archivos:
practica4.xlsxpractica4_macro.xlsmInformatica (30717) - Estudios en Arquitectura (UNIZAR)