<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
		<id>https://mat.caminos.upm.es/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MiguelUrena</id>
		<title>MateWiki - Contribuciones del usuario [es]</title>
		<link rel="self" type="application/atom+xml" href="https://mat.caminos.upm.es/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MiguelUrena"/>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/wiki/Especial:Contribuciones/MiguelUrena"/>
		<updated>2026-05-01T01:04:13Z</updated>
		<subtitle>Contribuciones del usuario</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Calidad_de_las_zonas_verdes_y_carriles_bici_en_7_ciudades_espa%C3%B1olas&amp;diff=73077</id>
		<title>Calidad de las zonas verdes y carriles bici en 7 ciudades españolas</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Calidad_de_las_zonas_verdes_y_carriles_bici_en_7_ciudades_espa%C3%B1olas&amp;diff=73077"/>
				<updated>2024-05-27T17:23:43Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoSIG | Calidad de las zonas verdes y carriles bici en 7 ciudades españolas | [[:Categoría:SIGAIC_23/24|Curso 23/24]] | Iker Leguizamón Salamanca&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Nadia Morón Pereira }}&lt;br /&gt;
&lt;br /&gt;
==Resumen== &lt;br /&gt;
&lt;br /&gt;
En este trabajo se ha creado una metodología para poder evaluar la calidad de las zonas verdes de una ciudad con un mayor grado de detalle que los criterios &lt;br /&gt;
empleados por la Agenda Urbana Española. Se analizan las 7 ciudades declaradas climáticamente neutras para 2030: Madrid, Barcelona, Vitoria, Valladolid, Valencia, Sevilla y Zaragoza. Se analiza la calidad de la zona en función de su área y la distancia de influencia a la población cercana &lt;br /&gt;
para establecer &amp;quot;niveles de servicio&amp;quot;. Además, se calculan los datos de longitud de carril bici segregado totales y por 1000 habitantes en cada una de las ciudades. &lt;br /&gt;
Las conclusiones son que todas las ciudades tienen una cobertura de la población de muy alta calidad en lo que respecta a las zonas verdes. Para la cantidad de carriles bici segregados hay diferencias mayores con el mejor dato para Vitoria 0.61 km / 1000 hab y el peor en Barcelona 0.07 km /1000 hab.&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
El objetivo de este proyecto es analizar las zonas verdes y los carriles bici en las ciudades&lt;br /&gt;
de Madrid, Vitoria, Sevilla, Valladolid, Zaragoza y Barcelona en relación con su población.&lt;br /&gt;
Un reconocido urbanista danés, Jan Gehl, introdujo una regla simple, conocida como la&lt;br /&gt;
regla 3-30-300, que nos ayuda a diseñar los espacios urbanos más habitables y sostenibles.&lt;br /&gt;
Esta regla consiste en que cada persona debería ver al menos 3 árboles desde su casa,&lt;br /&gt;
tener 30 % de cobertura vegetal en su barrio y estar a 300 metros de un parque decente.&lt;br /&gt;
Además, se sugiere que las ciudades tengan 50 metros cuadrados de superficie vegetal por&lt;br /&gt;
habitante.&lt;br /&gt;
Este proyecto tiene como objetivo verificar si estas grandes ciudades cumplen con los&lt;br /&gt;
criterios necesarios para ser consideradas ciudades verdes, un concepto que proporciona&lt;br /&gt;
beneficios para la salud física y mental, así como protección climática.&lt;br /&gt;
&lt;br /&gt;
===Objetivos de desarrollo sostenible=== &lt;br /&gt;
&lt;br /&gt;
El 25 de septiembre de 2015, los líderes mundiales adoptaron un conjunto de objetivos&lt;br /&gt;
globales para erradicar la pobreza, proteger el planeta y asegurar la prosperidad para todos&lt;br /&gt;
como parte de una nueva agenda de desarrollo sostenible. Cada objetivo tiene metas&lt;br /&gt;
específicas que deben alcanzarse en los próximos 15 años.&lt;br /&gt;
La Agenda plantea 17 objetivos con 169 metas de carácter integrado e indivisible que&lt;br /&gt;
abarcan las esferas económica, social y ambiental. Estos son conocidos como los objetivos&lt;br /&gt;
de desarrollo sostenible.&lt;br /&gt;
En palabras de los países firmantes del acuerdo: «Estamos resueltos a poner fin a la&lt;br /&gt;
pobreza y el hambre en todo el mundo de aquí a 2030, a combatir las desigualdades dentro&lt;br /&gt;
de los países y entre ellos, a construir sociedades pacíficas, justas e inclusivas, a proteger&lt;br /&gt;
los derechos humanos y promover la igualdad entre los géneros y el empoderamiento de las&lt;br /&gt;
mujeres y las niñas, y a garantizar una protección duradera del planeta y sus recursos&lt;br /&gt;
naturales”. Según la ONU, los Objetivos de desarrollo sostenible son el plan maestro para&lt;br /&gt;
conseguir un futuro sostenible para todos. Se interrelacionan entre sí e incorporan los&lt;br /&gt;
desafíos globales a los que nos enfrentamos día a día, como la pobreza, la desigualdad, el&lt;br /&gt;
clima, la degradación ambiental, la prosperidad, la paz y la justicia.&lt;br /&gt;
&lt;br /&gt;
==Metodología==&lt;br /&gt;
&lt;br /&gt;
En primer lugar, hemos partido del mapa de municipios de toda España de donde hemos&lt;br /&gt;
extraído los municipios de cada una de las ciudades estudiadas.&lt;br /&gt;
A continuación, usando el complemento de QuickOSM, hemos buscado las zonas verdes&lt;br /&gt;
introduciendo valores a Clave y Valor que podíamos encontrar en OpenStreetMaps (OSM).&lt;br /&gt;
Es importante que en el buscador seleccionemos “Or” y para la sección espacial de consulta&lt;br /&gt;
seleccionaremos la capa que creamos en el anterior paso.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:fig_1.png|400x300px|miniaturadeimagen|centro|Overpass turbo request para descarga de datos]]&lt;br /&gt;
&lt;br /&gt;
===Criterios de la Agenda Urbana española=== &lt;br /&gt;
La Agenda Urbana Española establece un indicador para evaluar si la población tiene accesibilidad suficiente a las zonas verdes. &lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 1000 m² el área de influencia es 300 metros&lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 5000 m² el área de influencia es 500 metros&lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 10000 m² el área de influencia es 900 metros&lt;br /&gt;
&lt;br /&gt;
===Criterios utilizados para la valoración de las zonas verdes===&lt;br /&gt;
Cada zona verde recibe una calificación en función de su superficie y del tipo de zona verde. Parque y bosque reciben mejor calificación que el &lt;br /&gt;
resto de categorías. A la categoría jardín se le suma 1 punto y al resto de categorías 2 puntos empeorando la calificación. &lt;br /&gt;
&lt;br /&gt;
-Ancho mínimo de la zona verde: 8 metros.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Superficie mínima de la zona verde: 500 m².&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Unificación de superficies: Las superficies que se encuentren a menos de 5 metros entre ellas serán consideradas como una única zona verde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Sistema de valoración: Los elementos se han valorado de 1 a 5, siendo 5 la peor nota. Las calificaciones se dan según el área. 1 para 100000 m², 2 para 10000 m², 3 para 5000 m², 4 para 1000 m² y 5 para 500 m². Las áreas exigidas para calificación están basadas en los criterios seguidos en los indicadores de la Agenda Urbana Española. &lt;br /&gt;
&lt;br /&gt;
===Áreas de influencia=== &lt;br /&gt;
Se establece una matriz para darle a cada punto del municipio una calificación o nivel de servicio siendo A la mejor y E la peor. Los criterios de la Agenda Urbana Española se cumplen con la calificación B y A. Los escalones de distancia considerados son &lt;br /&gt;
300, 500, 900 y 1250 metros, de nuevo siguiendo los criterios de la Agenda Urbana Española. La distancia 1250 metros sería el límite de influencia a 15 minutos andando. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot; | !! colspan=&amp;quot;4&amp;quot; | Distancia&lt;br /&gt;
|-&lt;br /&gt;
! 300m !! 500m !! 900m !! 1250m&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;5&amp;quot; | Calificación de la Zona Verde&lt;br /&gt;
| 1 || A || A || A || C&lt;br /&gt;
|-&lt;br /&gt;
| 2 || A || A || B || D&lt;br /&gt;
|-&lt;br /&gt;
| 3 || A || B || C || E&lt;br /&gt;
|-&lt;br /&gt;
| 4 || B || C || D || E&lt;br /&gt;
|-&lt;br /&gt;
| 5 || C || D || E || E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Se establecen también un criterio de calidad mínima. Para densidades de población superiores a 10000 hab/km2 en nivel de servicio exigido es A, para el resto B. &lt;br /&gt;
Los datos poblacionales se extraen de la capa de población por cuadrados de 1x1 km elaborada por Eurostat con datos del año 2021. &lt;br /&gt;
&lt;br /&gt;
===Carriles bici=== &lt;br /&gt;
Otro de los valores que ayudan determinar si una ciudad es sostenible&lt;br /&gt;
son los carriles bici, ya que permiten a los ciudadanos movilizarse por la ciudad en medios&lt;br /&gt;
no motorizado. Antes de realizar el análisis de la calidad de dichas redes de transporte,&lt;br /&gt;
haremos un primer análisis de las ciudades mostrando la distribución de las redes dentro&lt;br /&gt;
del municipio.&lt;br /&gt;
Lo que se ha hecho es buscar las bases cartográficas en la Página Web de cada&lt;br /&gt;
ayuntamiento y pasarlas al QGIS. En las bases de datos que clasificaban los diferentes&lt;br /&gt;
tipos de carril bici hemos añadido una leyenda que indica qué tipo de carril bici es el que&lt;br /&gt;
hay.&lt;br /&gt;
&lt;br /&gt;
==Resultados== &lt;br /&gt;
&lt;br /&gt;
===Zonas Verdes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Zaragoza.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Zaragoza]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Vitoria.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Vitoria]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Valladolid.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Valladolid]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Valencia.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Valencia]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Sevilla.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Sevilla]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Madrid.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Madrid]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Barcelona.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Barcelona]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Ciudad !! Población con nivel de servicio adecuado (%) !! Nivel de servicio medio !! Calificación global de la ciudad &lt;br /&gt;
|-&lt;br /&gt;
| Valladolid|| 100 % || A (1.01) || A (1.00)&lt;br /&gt;
|-&lt;br /&gt;
| Madrid || 98.6 % || A (1.02) || A (1.04)&lt;br /&gt;
|-&lt;br /&gt;
| Vitoria|| 100 % || A (1.01) || A (1.01)&lt;br /&gt;
|-&lt;br /&gt;
| Zaragoza|| 98.93 % || A (1.10) || A (1.07)&lt;br /&gt;
|-&lt;br /&gt;
| Barcelona|| 98.6 % || A (1.01) || A (1.04)&lt;br /&gt;
|-&lt;br /&gt;
| Sevilla|| 100 % || A (1.02) || A (1.01)&lt;br /&gt;
|-&lt;br /&gt;
| Valencia|| 99.99 % || A (1.05) || A (1.03)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Carriles bici=== &lt;br /&gt;
&lt;br /&gt;
Los datos de Valencia no están disponibles públicamente por lo que no se puede analizar esta ciudad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_Zaragoza.png|400x300px|miniaturadeimagen|centro|Carriles bici en Zaragoza]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_Vitoria.png|400x300px|miniaturadeimagen|centro|Carriles bici en Vitoria]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_valladolid.png|400x300px|miniaturadeimagen|centro|Carriles bici en Valladolid]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_Sevilla.png|400x300px|miniaturadeimagen|centro|Carriles bici en Sevilla]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_Madrid.png|400x300px|miniaturadeimagen|centro|Carriles bici en Madrid]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_Barcelona.png|400x300px|miniaturadeimagen|centro|Carriles bici en Barcelona]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Ciudad !! Longitud (km) !! Longitud por habitante&lt;br /&gt;
|-&lt;br /&gt;
| Zaragoza || 191 || 0,28 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Madrid || 427 || 0,13 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Valencia || 221 || 0,28 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Barcelona || 111 || 0,07 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Sevilla || 186 || 0,27 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Vitoria || 153 || 0,61 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Valladolid || 105 || 0,35 km/1000hab&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Conclusiones==&lt;br /&gt;
Todas las ciudades tienen una cobertura de la población de muy alta calidad en lo que respecta a las zonas verdes obteniendo la máxima calificación A. &lt;br /&gt;
Para la cantidad de carriles bici segregados hay diferencias mayores con el mejor dato para Vitoria 0.61 km / 1000 hab y el peor en Barcelona 0.07 km /1000 hab.&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Sistemas de Información Geográfica Aplicados a la Ingeniería Civil]]&lt;br /&gt;
[[Categoría:SIGAIC_23/24]]&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Calidad_de_las_zonas_verdes_y_carriles_bici_en_7_ciudades_espa%C3%B1olas&amp;diff=72953</id>
		<title>Calidad de las zonas verdes y carriles bici en 7 ciudades españolas</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Calidad_de_las_zonas_verdes_y_carriles_bici_en_7_ciudades_espa%C3%B1olas&amp;diff=72953"/>
				<updated>2024-05-27T12:15:01Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoSIG | Calidad de las zonas verdes y carriles bici en 7 ciudades españolas | [[:Categoría:SIGAIC_23/24|Curso 23/24]] | Iker Leguizamón Salamanca&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Nadia Morón Pereira }}&lt;br /&gt;
&lt;br /&gt;
==Resumen== &lt;br /&gt;
&lt;br /&gt;
En este trabajo se ha creado una metodología para poder evaluar la calidad de las zonas verdes de una ciudad con un mayor grado de detalle que los criterios &lt;br /&gt;
empleados por la Agenda Urbana Española. Se analizan las 7 ciudades declaradas climáticamente neutras para 2030: Madrid, Barcelona, Vitoria, Valladolid, Valencia, Sevilla y Zaragoza. Se analiza la calidad de la zona en función de su área y la distancia de influencia a la población cercana &lt;br /&gt;
para establecer &amp;quot;niveles de servicio&amp;quot;. Además, se calculan los datos de longitud de carril bici segregado totales y por 1000 habitantes en cada una de las ciudades. &lt;br /&gt;
Las conclusiones son que todas las ciudades tienen una cobertura de la población de muy alta calidad en lo que respecta a las zonas verdes. Para la cantidad de carriles bici segregados hay diferencias mayores con el mejor dato para Vitoria 0.61 km / 1000 hab y el peor en Barcelona 0.07 km /1000 hab.&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
El objetivo de este proyecto es analizar las zonas verdes y los carriles bici en las ciudades&lt;br /&gt;
de Madrid, Vitoria, Sevilla, Valladolid, Zaragoza y Barcelona en relación con su población.&lt;br /&gt;
Un reconocido urbanista danés, Jan Gehl, introdujo una regla simple, conocida como la&lt;br /&gt;
regla 3-30-300, que nos ayuda a diseñar los espacios urbanos más habitables y sostenibles.&lt;br /&gt;
Esta regla consiste en que cada persona debería ver al menos 3 árboles desde su casa,&lt;br /&gt;
tener 30 % de cobertura vegetal en su barrio y estar a 300 metros de un parque decente.&lt;br /&gt;
Además, se sugiere que las ciudades tengan 50 metros cuadrados de superficie vegetal por&lt;br /&gt;
habitante.&lt;br /&gt;
Este proyecto tiene como objetivo verificar si estas grandes ciudades cumplen con los&lt;br /&gt;
criterios necesarios para ser consideradas ciudades verdes, un concepto que proporciona&lt;br /&gt;
beneficios para la salud física y mental, así como protección climática.&lt;br /&gt;
&lt;br /&gt;
===Objetivos de desarrollo sostenible=== &lt;br /&gt;
&lt;br /&gt;
El 25 de septiembre de 2015, los líderes mundiales adoptaron un conjunto de objetivos&lt;br /&gt;
globales para erradicar la pobreza, proteger el planeta y asegurar la prosperidad para todos&lt;br /&gt;
como parte de una nueva agenda de desarrollo sostenible. Cada objetivo tiene metas&lt;br /&gt;
específicas que deben alcanzarse en los próximos 15 años.&lt;br /&gt;
La Agenda plantea 17 objetivos con 169 metas de carácter integrado e indivisible que&lt;br /&gt;
abarcan las esferas económica, social y ambiental. Estos son conocidos como los objetivos&lt;br /&gt;
de desarrollo sostenible.&lt;br /&gt;
En palabras de los países firmantes del acuerdo: «Estamos resueltos a poner fin a la&lt;br /&gt;
pobreza y el hambre en todo el mundo de aquí a 2030, a combatir las desigualdades dentro&lt;br /&gt;
de los países y entre ellos, a construir sociedades pacíficas, justas e inclusivas, a proteger&lt;br /&gt;
los derechos humanos y promover la igualdad entre los géneros y el empoderamiento de las&lt;br /&gt;
mujeres y las niñas, y a garantizar una protección duradera del planeta y sus recursos&lt;br /&gt;
naturales”. Según la ONU, los Objetivos de desarrollo sostenible son el plan maestro para&lt;br /&gt;
conseguir un futuro sostenible para todos. Se interrelacionan entre sí e incorporan los&lt;br /&gt;
desafíos globales a los que nos enfrentamos día a día, como la pobreza, la desigualdad, el&lt;br /&gt;
clima, la degradación ambiental, la prosperidad, la paz y la justicia.&lt;br /&gt;
&lt;br /&gt;
==Metodología==&lt;br /&gt;
&lt;br /&gt;
En primer lugar, hemos partido del mapa de municipios de toda España de donde hemos&lt;br /&gt;
extraído los municipios de cada una de las ciudades estudiadas.&lt;br /&gt;
A continuación, usando el complemento de QuickOSM, hemos buscado las zonas verdes&lt;br /&gt;
introduciendo valores a Clave y Valor que podíamos encontrar en OpenStreetMaps (OSM).&lt;br /&gt;
Es importante que en el buscador seleccionemos “Or” y para la sección espacial de consulta&lt;br /&gt;
seleccionaremos la capa que creamos en el anterior paso.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:fig_1.png|400x300px|miniaturadeimagen|centro|Overpass turbo request para descarga de datos]]&lt;br /&gt;
&lt;br /&gt;
===Criterios de la Agenda Urbana española=== &lt;br /&gt;
La Agenda Urbana Española establece un indicador para evaluar si la población tiene accesibilidad suficiente a las zonas verdes. &lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 1000 m² el área de influencia es 300 metros&lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 5000 m² el área de influencia es 500 metros&lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 10000 m² el área de influencia es 900 metros&lt;br /&gt;
&lt;br /&gt;
===Criterios utilizados para la valoración de las zonas verdes===&lt;br /&gt;
Cada zona verde recibe una calificación en función de su superficie y del tipo de zona verde. Parque y bosque reciben mejor calificación que el &lt;br /&gt;
resto de categorías. A la categoría jardín se le suma 1 punto y al resto de categorías 2 puntos empeorando la calificación. &lt;br /&gt;
&lt;br /&gt;
-Ancho mínimo de la zona verde: 8 metros.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Superficie mínima de la zona verde: 500 m².&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Unificación de superficies: Las superficies que se encuentren a menos de 5 metros entre ellas serán consideradas como una única zona verde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Sistema de valoración: Los elementos se han valorado de 1 a 5, siendo 5 la peor nota. Las calificaciones se dan según el área. 1 para 100000 m², 2 para 10000 m², 3 para 5000 m², 4 para 1000 m² y 5 para 500 m². Las áreas exigidas para calificación están basadas en los criterios seguidos en los indicadores de la Agenda Urbana Española. &lt;br /&gt;
&lt;br /&gt;
===Áreas de influencia=== &lt;br /&gt;
Se establece una matriz para darle a cada punto del municipio una calificación o nivel de servicio siendo A la mejor y E la peor. Los criterios de la Agenda Urbana Española se cumplen con la calificación B y A. Los escalones de distancia considerados son &lt;br /&gt;
300, 500, 900 y 1250 metros, de nuevo siguiendo los criterios de la Agenda Urbana Española. La distancia 1250 metros sería el límite de influencia a 15 minutos andando. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot; | !! colspan=&amp;quot;4&amp;quot; | Distancia&lt;br /&gt;
|-&lt;br /&gt;
! 300m !! 500m !! 900m !! 1250m&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;5&amp;quot; | Calificación de la Zona Verde&lt;br /&gt;
| 1 || A || A || A || C&lt;br /&gt;
|-&lt;br /&gt;
| 2 || A || A || B || D&lt;br /&gt;
|-&lt;br /&gt;
| 3 || A || B || C || E&lt;br /&gt;
|-&lt;br /&gt;
| 4 || B || C || D || E&lt;br /&gt;
|-&lt;br /&gt;
| 5 || C || D || E || E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Se establecen también un criterio de calidad mínima. Para densidades de población superiores a 10000 hab/km2 en nivel de servicio exigido es A, para el resto B. &lt;br /&gt;
Los datos poblacionales se extraen de la capa de población por cuadrados de 1x1 km elaborada por Eurostat con datos del año 2021. &lt;br /&gt;
&lt;br /&gt;
===Carriles bici=== &lt;br /&gt;
Otro de los valores que ayudan determinar si una ciudad es sostenible&lt;br /&gt;
son los carriles bici, ya que permiten a los ciudadanos movilizarse por la ciudad en medios&lt;br /&gt;
no motorizado. Antes de realizar el análisis de la calidad de dichas redes de transporte,&lt;br /&gt;
haremos un primer análisis de las ciudades mostrando la distribución de las redes dentro&lt;br /&gt;
del municipio.&lt;br /&gt;
Lo que se ha hecho es buscar las bases cartográficas en la Página Web de cada&lt;br /&gt;
ayuntamiento y pasarlas al QGIS. En las bases de datos que clasificaban los diferentes&lt;br /&gt;
tipos de carril bici hemos añadido una leyenda que indica qué tipo de carril bici es el que&lt;br /&gt;
hay.&lt;br /&gt;
&lt;br /&gt;
==Resultados== &lt;br /&gt;
&lt;br /&gt;
===Zonas Verdes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Zaragoza.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Zaragoza]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Vitoria.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Vitoria]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Valladolid.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Valladolid]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Valencia.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Valencia]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Sevilla.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Sevilla]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Madrid.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Madrid]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Barcelona.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Barcelona]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Ciudad !! Población con nivel de servicio adecuado (%) !! Nivel de servicio medio !! Calificación global de la ciudad &lt;br /&gt;
|-&lt;br /&gt;
| Valladolid|| 100 % || A (1.01) || A (1.00)&lt;br /&gt;
|-&lt;br /&gt;
| Madrid || 98.6 % || A (1.02) || A (1.04)&lt;br /&gt;
|-&lt;br /&gt;
| Vitoria|| 100 % || A (1.01) || A (1.01)&lt;br /&gt;
|-&lt;br /&gt;
| Zaragoza|| 98.93 % || A (1.10) || A (1.07)&lt;br /&gt;
|-&lt;br /&gt;
| Barcelona|| 98.6 % || A (1.01) || A (1.04)&lt;br /&gt;
|-&lt;br /&gt;
| Sevilla|| 100 % || A (1.02) || A (1.01)&lt;br /&gt;
|-&lt;br /&gt;
| Valencia|| 99.99 % || A (1.05) || A (1.03)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Carriles bici=== &lt;br /&gt;
&lt;br /&gt;
Los datos de Valencia no están disponibles públicamente por lo que no se puede analizar esta ciudad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_Zaragoza.png|400x300px|miniaturadeimagen|centro|Carriles bici en Zaragoza]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_Vitoria.png|400x300px|miniaturadeimagen|centro|Carriles bici en Vitoria]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_valladolid.png|400x300px|miniaturadeimagen|centro|Carriles bici en Valladolid]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_Sevilla.png|400x300px|miniaturadeimagen|centro|Carriles bici en Sevilla]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_Madrid.png|400x300px|miniaturadeimagen|centro|Carriles bici en Madrid]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_Barcelona.png|400x300px|miniaturadeimagen|centro|Carriles bici en Barcelona]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Ciudad !! Longitud (km) !! Longitud por habitante&lt;br /&gt;
|-&lt;br /&gt;
| Zaragoza || 191 || 0,28 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Madrid || 427 || 0,13 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Valencia || 221 || 0,28 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Barcelona || 111 || 0,07 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Sevilla || 186 || 0,27 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Vitoria || 153 || 0,61 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Valladolid || 105 || 0,35 km/1000hab&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Conclusiones==&lt;br /&gt;
Todas las ciudades tienen una cobertura de la población de muy alta calidad en lo que respecta a las zonas verdes obteniendo la máxima calificación A. &lt;br /&gt;
Para la cantidad de carriles bici segregados hay diferencias mayores con el mejor dato para Vitoria 0.61 km / 1000 hab y el peor en Barcelona 0.07 km /1000 hab.&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Calidad_de_las_zonas_verdes_y_carriles_bici_en_7_ciudades_espa%C3%B1olas&amp;diff=72951</id>
		<title>Calidad de las zonas verdes y carriles bici en 7 ciudades españolas</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Calidad_de_las_zonas_verdes_y_carriles_bici_en_7_ciudades_espa%C3%B1olas&amp;diff=72951"/>
				<updated>2024-05-27T12:07:47Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoSIG | Calidad de las zonas verdes y carriles bici en 7 ciudades españolas | [[:Categoría:SIGAIC_23/24|Curso 23/24]] | Iker Leguizamón Salamanca&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Nadia Morón Pereira }}&lt;br /&gt;
&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
El objetivo de este proyecto es analizar las zonas verdes y los carriles bici en las ciudades&lt;br /&gt;
de Madrid, Vitoria, Sevilla, Valladolid, Zaragoza y Barcelona en relación con su población.&lt;br /&gt;
Un reconocido urbanista danés, Jan Gehl, introdujo una regla simple, conocida como la&lt;br /&gt;
regla 3-30-300, que nos ayuda a diseñar los espacios urbanos más habitables y sostenibles.&lt;br /&gt;
Esta regla consiste en que cada persona debería ver al menos 3 árboles desde su casa,&lt;br /&gt;
tener 30 % de cobertura vegetal en su barrio y estar a 300 metros de un parque decente.&lt;br /&gt;
Además, se sugiere que las ciudades tengan 50 metros cuadrados de superficie vegetal por&lt;br /&gt;
habitante.&lt;br /&gt;
Este proyecto tiene como objetivo verificar si estas grandes ciudades cumplen con los&lt;br /&gt;
criterios necesarios para ser consideradas ciudades verdes, un concepto que proporciona&lt;br /&gt;
beneficios para la salud física y mental, así como protección climática.&lt;br /&gt;
&lt;br /&gt;
===Objetivos de desarrollo sostenible=== &lt;br /&gt;
&lt;br /&gt;
El 25 de septiembre de 2015, los líderes mundiales adoptaron un conjunto de objetivos&lt;br /&gt;
globales para erradicar la pobreza, proteger el planeta y asegurar la prosperidad para todos&lt;br /&gt;
como parte de una nueva agenda de desarrollo sostenible. Cada objetivo tiene metas&lt;br /&gt;
específicas que deben alcanzarse en los próximos 15 años.&lt;br /&gt;
La Agenda plantea 17 objetivos con 169 metas de carácter integrado e indivisible que&lt;br /&gt;
abarcan las esferas económica, social y ambiental. Estos son conocidos como los objetivos&lt;br /&gt;
de desarrollo sostenible.&lt;br /&gt;
En palabras de los países firmantes del acuerdo: «Estamos resueltos a poner fin a la&lt;br /&gt;
pobreza y el hambre en todo el mundo de aquí a 2030, a combatir las desigualdades dentro&lt;br /&gt;
de los países y entre ellos, a construir sociedades pacíficas, justas e inclusivas, a proteger&lt;br /&gt;
los derechos humanos y promover la igualdad entre los géneros y el empoderamiento de las&lt;br /&gt;
mujeres y las niñas, y a garantizar una protección duradera del planeta y sus recursos&lt;br /&gt;
naturales”. Según la ONU, los Objetivos de desarrollo sostenible son el plan maestro para&lt;br /&gt;
conseguir un futuro sostenible para todos. Se interrelacionan entre sí e incorporan los&lt;br /&gt;
desafíos globales a los que nos enfrentamos día a día, como la pobreza, la desigualdad, el&lt;br /&gt;
clima, la degradación ambiental, la prosperidad, la paz y la justicia.&lt;br /&gt;
&lt;br /&gt;
==Metodología==&lt;br /&gt;
&lt;br /&gt;
En primer lugar, hemos partido del mapa de municipios de toda España de donde hemos&lt;br /&gt;
extraído los municipios de cada una de las ciudades estudiadas.&lt;br /&gt;
A continuación, usando el complemento de QuickOSM, hemos buscado las zonas verdes&lt;br /&gt;
introduciendo valores a Clave y Valor que podíamos encontrar en OpenStreetMaps (OSM).&lt;br /&gt;
Es importante que en el buscador seleccionemos “Or” y para la sección espacial de consulta&lt;br /&gt;
seleccionaremos la capa que creamos en el anterior paso.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:fig_1.png|400x300px|miniaturadeimagen|centro|Overpass turbo request para descarga de datos]]&lt;br /&gt;
&lt;br /&gt;
===Criterios de la Agenda Urbana española=== &lt;br /&gt;
La Agenda Urbana Española establece un indicador para evaluar si la población tiene accesibilidad suficiente a las zonas verdes. &lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 1000 m² el área de influencia es 300 metros&lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 5000 m² el área de influencia es 500 metros&lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 10000 m² el área de influencia es 900 metros&lt;br /&gt;
&lt;br /&gt;
===Criterios utilizados para la valoración de las zonas verdes===&lt;br /&gt;
Cada zona verde recibe una calificación en función de su superficie y del tipo de zona verde. Parque y bosque reciben mejor calificación que el &lt;br /&gt;
resto de categorías. A la categoría jardín se le suma 1 punto y al resto de categorías 2 puntos empeorando la calificación. &lt;br /&gt;
&lt;br /&gt;
-Ancho mínimo de la zona verde: 8 metros.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Superficie mínima de la zona verde: 500 m².&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Unificación de superficies: Las superficies que se encuentren a menos de 5 metros entre ellas serán consideradas como una única zona verde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Sistema de valoración: Los elementos se han valorado de 1 a 5, siendo 5 la peor nota. Las calificaciones se dan según el área. 1 para 100000 m², 2 para 10000 m², 3 para 5000 m², 4 para 1000 m² y 5 para 500 m². Las áreas exigidas para calificación están basadas en los criterios seguidos en los indicadores de la Agenda Urbana Española. &lt;br /&gt;
&lt;br /&gt;
===Áreas de influencia=== &lt;br /&gt;
Se establece una matriz para darle a cada punto del municipio una calificación o nivel de servicio siendo A la mejor y E la peor. Los criterios de la Agenda Urbana Española se cumplen con la calificación B y A. Los escalones de distancia considerados son &lt;br /&gt;
300, 500, 900 y 1250 metros, de nuevo siguiendo los criterios de la Agenda Urbana Española. La distancia 1250 metros sería el límite de influencia a 15 minutos andando. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot; | !! colspan=&amp;quot;4&amp;quot; | Distancia&lt;br /&gt;
|-&lt;br /&gt;
! 300m !! 500m !! 900m !! 1250m&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;5&amp;quot; | Calificación de la Zona Verde&lt;br /&gt;
| 1 || A || A || A || C&lt;br /&gt;
|-&lt;br /&gt;
| 2 || A || A || B || D&lt;br /&gt;
|-&lt;br /&gt;
| 3 || A || B || C || E&lt;br /&gt;
|-&lt;br /&gt;
| 4 || B || C || D || E&lt;br /&gt;
|-&lt;br /&gt;
| 5 || C || D || E || E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Se establecen también un criterio de calidad mínima. Para densidades de población superiores a 10000 hab/km2 en nivel de servicio exigido es A, para el resto B. &lt;br /&gt;
Los datos poblacionales se extraen de la capa de población por cuadrados de 1x1 km elaborada por Eurostat con datos del año 2021. &lt;br /&gt;
&lt;br /&gt;
===Carriles bici=== &lt;br /&gt;
Otro de los valores que ayudan determinar si una ciudad es sostenible&lt;br /&gt;
son los carriles bici, ya que permiten a los ciudadanos movilizarse por la ciudad en medios&lt;br /&gt;
no motorizado. Antes de realizar el análisis de la calidad de dichas redes de transporte,&lt;br /&gt;
haremos un primer análisis de las ciudades mostrando la distribución de las redes dentro&lt;br /&gt;
del municipio.&lt;br /&gt;
Lo que se ha hecho es buscar las bases cartográficas en la Página Web de cada&lt;br /&gt;
ayuntamiento y pasarlas al QGIS. En las bases de datos que clasificaban los diferentes&lt;br /&gt;
tipos de carril bici hemos añadido una leyenda que indica qué tipo de carril bici es el que&lt;br /&gt;
hay.&lt;br /&gt;
&lt;br /&gt;
==Resultados== &lt;br /&gt;
&lt;br /&gt;
===Zonas Verdes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Zaragoza.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Zaragoza]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Vitoria.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Vitoria]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Valladolid.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Valladolid]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Valencia.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Valencia]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Sevilla.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Sevilla]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Madrid.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Madrid]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Barcelona.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Barcelona]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Ciudad !! Población con nivel de servicio adecuado (%) !! Nivel de servicio medio !! Calificación global de la ciudad &lt;br /&gt;
|-&lt;br /&gt;
| Valladolid|| 100 % || A (1.01) || A (1.00)&lt;br /&gt;
|-&lt;br /&gt;
| Madrid || 98.6 % || A (1.02) || A (1.04)&lt;br /&gt;
|-&lt;br /&gt;
| Vitoria|| 100 % || A (1.01) || A (1.01)&lt;br /&gt;
|-&lt;br /&gt;
| Zaragoza|| 98.93 % || A (1.10) || A (1.07)&lt;br /&gt;
|-&lt;br /&gt;
| Barcelona|| 98.6 % || A (1.01) || A (1.04)&lt;br /&gt;
|-&lt;br /&gt;
| Sevilla|| 100 % || A (1.02) || A (1.01)&lt;br /&gt;
|-&lt;br /&gt;
| Valencia|| 99.99 % || A (1.05) || A (1.03)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Carriles bici=== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_Zaragoza.png|400x300px|miniaturadeimagen|centro|Carriles bici en Zaragoza]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_Vitoria.png|400x300px|miniaturadeimagen|centro|Carriles bici en Vitoria]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_valladolid.png|400x300px|miniaturadeimagen|centro|Carriles bici en Valladolid]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_Sevilla.png|400x300px|miniaturadeimagen|centro|Carriles bici en Sevilla]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_Madrid.png|400x300px|miniaturadeimagen|centro|Carriles bici en Madrid]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_Barcelona.png|400x300px|miniaturadeimagen|centro|Carriles bici en Barcelona]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Ciudad !! Longitud (km) !! Longitud por habitante&lt;br /&gt;
|-&lt;br /&gt;
| Zaragoza || 191 || 0,28 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Madrid || 427 || 0,13 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Valencia || 221 || 0,28 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Barcelona || 111 || 0,07 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Sevilla || 186 || 0,27 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Vitoria || 153 || 0,61 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Valladolid || 105 || 0,35 km/1000hab&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Calidad_de_las_zonas_verdes_y_carriles_bici_en_7_ciudades_espa%C3%B1olas&amp;diff=72950</id>
		<title>Calidad de las zonas verdes y carriles bici en 7 ciudades españolas</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Calidad_de_las_zonas_verdes_y_carriles_bici_en_7_ciudades_espa%C3%B1olas&amp;diff=72950"/>
				<updated>2024-05-27T12:06:51Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoSIG | Calidad de las zonas verdes y carriles bici en 7 ciudades españolas | [[:Categoría:Sistemas de Información Geográfica Aplicados a la Ingeniería Civil|Sistemas de Información Geográfica Aplicados a la Ingeniería Civil]]|[[:Categoría:SIGAIC_23/24|2023-2024]] | Iker Leguizamón Salamanca&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Nadia Morón Pereira }}&lt;br /&gt;
&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
El objetivo de este proyecto es analizar las zonas verdes y los carriles bici en las ciudades&lt;br /&gt;
de Madrid, Vitoria, Sevilla, Valladolid, Zaragoza y Barcelona en relación con su población.&lt;br /&gt;
Un reconocido urbanista danés, Jan Gehl, introdujo una regla simple, conocida como la&lt;br /&gt;
regla 3-30-300, que nos ayuda a diseñar los espacios urbanos más habitables y sostenibles.&lt;br /&gt;
Esta regla consiste en que cada persona debería ver al menos 3 árboles desde su casa,&lt;br /&gt;
tener 30 % de cobertura vegetal en su barrio y estar a 300 metros de un parque decente.&lt;br /&gt;
Además, se sugiere que las ciudades tengan 50 metros cuadrados de superficie vegetal por&lt;br /&gt;
habitante.&lt;br /&gt;
Este proyecto tiene como objetivo verificar si estas grandes ciudades cumplen con los&lt;br /&gt;
criterios necesarios para ser consideradas ciudades verdes, un concepto que proporciona&lt;br /&gt;
beneficios para la salud física y mental, así como protección climática.&lt;br /&gt;
&lt;br /&gt;
===Objetivos de desarrollo sostenible=== &lt;br /&gt;
&lt;br /&gt;
El 25 de septiembre de 2015, los líderes mundiales adoptaron un conjunto de objetivos&lt;br /&gt;
globales para erradicar la pobreza, proteger el planeta y asegurar la prosperidad para todos&lt;br /&gt;
como parte de una nueva agenda de desarrollo sostenible. Cada objetivo tiene metas&lt;br /&gt;
específicas que deben alcanzarse en los próximos 15 años.&lt;br /&gt;
La Agenda plantea 17 objetivos con 169 metas de carácter integrado e indivisible que&lt;br /&gt;
abarcan las esferas económica, social y ambiental. Estos son conocidos como los objetivos&lt;br /&gt;
de desarrollo sostenible.&lt;br /&gt;
En palabras de los países firmantes del acuerdo: «Estamos resueltos a poner fin a la&lt;br /&gt;
pobreza y el hambre en todo el mundo de aquí a 2030, a combatir las desigualdades dentro&lt;br /&gt;
de los países y entre ellos, a construir sociedades pacíficas, justas e inclusivas, a proteger&lt;br /&gt;
los derechos humanos y promover la igualdad entre los géneros y el empoderamiento de las&lt;br /&gt;
mujeres y las niñas, y a garantizar una protección duradera del planeta y sus recursos&lt;br /&gt;
naturales”. Según la ONU, los Objetivos de desarrollo sostenible son el plan maestro para&lt;br /&gt;
conseguir un futuro sostenible para todos. Se interrelacionan entre sí e incorporan los&lt;br /&gt;
desafíos globales a los que nos enfrentamos día a día, como la pobreza, la desigualdad, el&lt;br /&gt;
clima, la degradación ambiental, la prosperidad, la paz y la justicia.&lt;br /&gt;
&lt;br /&gt;
==Metodología==&lt;br /&gt;
&lt;br /&gt;
En primer lugar, hemos partido del mapa de municipios de toda España de donde hemos&lt;br /&gt;
extraído los municipios de cada una de las ciudades estudiadas.&lt;br /&gt;
A continuación, usando el complemento de QuickOSM, hemos buscado las zonas verdes&lt;br /&gt;
introduciendo valores a Clave y Valor que podíamos encontrar en OpenStreetMaps (OSM).&lt;br /&gt;
Es importante que en el buscador seleccionemos “Or” y para la sección espacial de consulta&lt;br /&gt;
seleccionaremos la capa que creamos en el anterior paso.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:fig_1.png|400x300px|miniaturadeimagen|centro|Overpass turbo request para descarga de datos]]&lt;br /&gt;
&lt;br /&gt;
===Criterios de la Agenda Urbana española=== &lt;br /&gt;
La Agenda Urbana Española establece un indicador para evaluar si la población tiene accesibilidad suficiente a las zonas verdes. &lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 1000 m² el área de influencia es 300 metros&lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 5000 m² el área de influencia es 500 metros&lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 10000 m² el área de influencia es 900 metros&lt;br /&gt;
&lt;br /&gt;
===Criterios utilizados para la valoración de las zonas verdes===&lt;br /&gt;
Cada zona verde recibe una calificación en función de su superficie y del tipo de zona verde. Parque y bosque reciben mejor calificación que el &lt;br /&gt;
resto de categorías. A la categoría jardín se le suma 1 punto y al resto de categorías 2 puntos empeorando la calificación. &lt;br /&gt;
&lt;br /&gt;
-Ancho mínimo de la zona verde: 8 metros.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Superficie mínima de la zona verde: 500 m².&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Unificación de superficies: Las superficies que se encuentren a menos de 5 metros entre ellas serán consideradas como una única zona verde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Sistema de valoración: Los elementos se han valorado de 1 a 5, siendo 5 la peor nota. Las calificaciones se dan según el área. 1 para 100000 m², 2 para 10000 m², 3 para 5000 m², 4 para 1000 m² y 5 para 500 m². Las áreas exigidas para calificación están basadas en los criterios seguidos en los indicadores de la Agenda Urbana Española. &lt;br /&gt;
&lt;br /&gt;
===Áreas de influencia=== &lt;br /&gt;
Se establece una matriz para darle a cada punto del municipio una calificación o nivel de servicio siendo A la mejor y E la peor. Los criterios de la Agenda Urbana Española se cumplen con la calificación B y A. Los escalones de distancia considerados son &lt;br /&gt;
300, 500, 900 y 1250 metros, de nuevo siguiendo los criterios de la Agenda Urbana Española. La distancia 1250 metros sería el límite de influencia a 15 minutos andando. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot; | !! colspan=&amp;quot;4&amp;quot; | Distancia&lt;br /&gt;
|-&lt;br /&gt;
! 300m !! 500m !! 900m !! 1250m&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;5&amp;quot; | Calificación de la Zona Verde&lt;br /&gt;
| 1 || A || A || A || C&lt;br /&gt;
|-&lt;br /&gt;
| 2 || A || A || B || D&lt;br /&gt;
|-&lt;br /&gt;
| 3 || A || B || C || E&lt;br /&gt;
|-&lt;br /&gt;
| 4 || B || C || D || E&lt;br /&gt;
|-&lt;br /&gt;
| 5 || C || D || E || E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Se establecen también un criterio de calidad mínima. Para densidades de población superiores a 10000 hab/km2 en nivel de servicio exigido es A, para el resto B. &lt;br /&gt;
Los datos poblacionales se extraen de la capa de población por cuadrados de 1x1 km elaborada por Eurostat con datos del año 2021. &lt;br /&gt;
&lt;br /&gt;
===Carriles bici=== &lt;br /&gt;
Otro de los valores que ayudan determinar si una ciudad es sostenible&lt;br /&gt;
son los carriles bici, ya que permiten a los ciudadanos movilizarse por la ciudad en medios&lt;br /&gt;
no motorizado. Antes de realizar el análisis de la calidad de dichas redes de transporte,&lt;br /&gt;
haremos un primer análisis de las ciudades mostrando la distribución de las redes dentro&lt;br /&gt;
del municipio.&lt;br /&gt;
Lo que se ha hecho es buscar las bases cartográficas en la Página Web de cada&lt;br /&gt;
ayuntamiento y pasarlas al QGIS. En las bases de datos que clasificaban los diferentes&lt;br /&gt;
tipos de carril bici hemos añadido una leyenda que indica qué tipo de carril bici es el que&lt;br /&gt;
hay.&lt;br /&gt;
&lt;br /&gt;
==Resultados== &lt;br /&gt;
&lt;br /&gt;
===Zonas Verdes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Zaragoza.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Zaragoza]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Vitoria.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Vitoria]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Valladolid.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Valladolid]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Valencia.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Valencia]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Sevilla.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Sevilla]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Madrid.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Madrid]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Barcelona.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Barcelona]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Ciudad !! Población con nivel de servicio adecuado (%) !! Nivel de servicio medio !! Calificación global de la ciudad &lt;br /&gt;
|-&lt;br /&gt;
| Valladolid|| 100 % || A (1.01) || A (1.00)&lt;br /&gt;
|-&lt;br /&gt;
| Madrid || 98.6 % || A (1.02) || A (1.04)&lt;br /&gt;
|-&lt;br /&gt;
| Vitoria|| 100 % || A (1.01) || A (1.01)&lt;br /&gt;
|-&lt;br /&gt;
| Zaragoza|| 98.93 % || A (1.10) || A (1.07)&lt;br /&gt;
|-&lt;br /&gt;
| Barcelona|| 98.6 % || A (1.01) || A (1.04)&lt;br /&gt;
|-&lt;br /&gt;
| Sevilla|| 100 % || A (1.02) || A (1.01)&lt;br /&gt;
|-&lt;br /&gt;
| Valencia|| 99.99 % || A (1.05) || A (1.03)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Carriles bici=== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_Zaragoza.png|400x300px|miniaturadeimagen|centro|Carriles bici en Zaragoza]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_Vitoria.png|400x300px|miniaturadeimagen|centro|Carriles bici en Vitoria]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_valladolid.png|400x300px|miniaturadeimagen|centro|Carriles bici en Valladolid]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_Sevilla.png|400x300px|miniaturadeimagen|centro|Carriles bici en Sevilla]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_Madrid.png|400x300px|miniaturadeimagen|centro|Carriles bici en Madrid]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_Barcelona.png|400x300px|miniaturadeimagen|centro|Carriles bici en Barcelona]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Ciudad !! Longitud (km) !! Longitud por habitante&lt;br /&gt;
|-&lt;br /&gt;
| Zaragoza || 191 || 0,28 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Madrid || 427 || 0,13 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Valencia || 221 || 0,28 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Barcelona || 111 || 0,07 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Sevilla || 186 || 0,27 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Vitoria || 153 || 0,61 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Valladolid || 105 || 0,35 km/1000hab&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Calidad_de_las_zonas_verdes_y_carriles_bici_en_7_ciudades_espa%C3%B1olas&amp;diff=72949</id>
		<title>Calidad de las zonas verdes y carriles bici en 7 ciudades españolas</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Calidad_de_las_zonas_verdes_y_carriles_bici_en_7_ciudades_espa%C3%B1olas&amp;diff=72949"/>
				<updated>2024-05-27T12:01:49Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Calidad de las zonas verdes y carriles bici en 7 ciudades españolas | [[:Categoría:Sistemas de Información Geográfica Aplicados a la Ingeniería Civil|Sistemas de Información Geográfica Aplicados a la Ingeniería Civil]]|[[:Categoría:SIGAIC_23/24|2023-2024]] | Iker Leguizamón Salamanca&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Nadia Morón Pereira }}&lt;br /&gt;
&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
El objetivo de este proyecto es analizar las zonas verdes y los carriles bici en las ciudades&lt;br /&gt;
de Madrid, Vitoria, Sevilla, Valladolid, Zaragoza y Barcelona en relación con su población.&lt;br /&gt;
Un reconocido urbanista danés, Jan Gehl, introdujo una regla simple, conocida como la&lt;br /&gt;
regla 3-30-300, que nos ayuda a diseñar los espacios urbanos más habitables y sostenibles.&lt;br /&gt;
Esta regla consiste en que cada persona debería ver al menos 3 árboles desde su casa,&lt;br /&gt;
tener 30 % de cobertura vegetal en su barrio y estar a 300 metros de un parque decente.&lt;br /&gt;
Además, se sugiere que las ciudades tengan 50 metros cuadrados de superficie vegetal por&lt;br /&gt;
habitante.&lt;br /&gt;
Este proyecto tiene como objetivo verificar si estas grandes ciudades cumplen con los&lt;br /&gt;
criterios necesarios para ser consideradas ciudades verdes, un concepto que proporciona&lt;br /&gt;
beneficios para la salud física y mental, así como protección climática.&lt;br /&gt;
&lt;br /&gt;
===Objetivos de desarrollo sostenible=== &lt;br /&gt;
&lt;br /&gt;
El 25 de septiembre de 2015, los líderes mundiales adoptaron un conjunto de objetivos&lt;br /&gt;
globales para erradicar la pobreza, proteger el planeta y asegurar la prosperidad para todos&lt;br /&gt;
como parte de una nueva agenda de desarrollo sostenible. Cada objetivo tiene metas&lt;br /&gt;
específicas que deben alcanzarse en los próximos 15 años.&lt;br /&gt;
La Agenda plantea 17 objetivos con 169 metas de carácter integrado e indivisible que&lt;br /&gt;
abarcan las esferas económica, social y ambiental. Estos son conocidos como los objetivos&lt;br /&gt;
de desarrollo sostenible.&lt;br /&gt;
En palabras de los países firmantes del acuerdo: «Estamos resueltos a poner fin a la&lt;br /&gt;
pobreza y el hambre en todo el mundo de aquí a 2030, a combatir las desigualdades dentro&lt;br /&gt;
de los países y entre ellos, a construir sociedades pacíficas, justas e inclusivas, a proteger&lt;br /&gt;
los derechos humanos y promover la igualdad entre los géneros y el empoderamiento de las&lt;br /&gt;
mujeres y las niñas, y a garantizar una protección duradera del planeta y sus recursos&lt;br /&gt;
naturales”. Según la ONU, los Objetivos de desarrollo sostenible son el plan maestro para&lt;br /&gt;
conseguir un futuro sostenible para todos. Se interrelacionan entre sí e incorporan los&lt;br /&gt;
desafíos globales a los que nos enfrentamos día a día, como la pobreza, la desigualdad, el&lt;br /&gt;
clima, la degradación ambiental, la prosperidad, la paz y la justicia.&lt;br /&gt;
&lt;br /&gt;
==Metodología==&lt;br /&gt;
&lt;br /&gt;
En primer lugar, hemos partido del mapa de municipios de toda España de donde hemos&lt;br /&gt;
extraído los municipios de cada una de las ciudades estudiadas.&lt;br /&gt;
A continuación, usando el complemento de QuickOSM, hemos buscado las zonas verdes&lt;br /&gt;
introduciendo valores a Clave y Valor que podíamos encontrar en OpenStreetMaps (OSM).&lt;br /&gt;
Es importante que en el buscador seleccionemos “Or” y para la sección espacial de consulta&lt;br /&gt;
seleccionaremos la capa que creamos en el anterior paso.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:fig_1.png|400x300px|miniaturadeimagen|centro|Overpass turbo request para descarga de datos]]&lt;br /&gt;
&lt;br /&gt;
===Criterios de la Agenda Urbana española=== &lt;br /&gt;
La Agenda Urbana Española establece un indicador para evaluar si la población tiene accesibilidad suficiente a las zonas verdes. &lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 1000 m² el área de influencia es 300 metros&lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 5000 m² el área de influencia es 500 metros&lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 10000 m² el área de influencia es 900 metros&lt;br /&gt;
&lt;br /&gt;
===Criterios utilizados para la valoración de las zonas verdes===&lt;br /&gt;
Cada zona verde recibe una calificación en función de su superficie y del tipo de zona verde. Parque y bosque reciben mejor calificación que el &lt;br /&gt;
resto de categorías. A la categoría jardín se le suma 1 punto y al resto de categorías 2 puntos empeorando la calificación. &lt;br /&gt;
&lt;br /&gt;
-Ancho mínimo de la zona verde: 8 metros.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Superficie mínima de la zona verde: 500 m².&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Unificación de superficies: Las superficies que se encuentren a menos de 5 metros entre ellas serán consideradas como una única zona verde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Sistema de valoración: Los elementos se han valorado de 1 a 5, siendo 5 la peor nota. Las calificaciones se dan según el área. 1 para 100000 m², 2 para 10000 m², 3 para 5000 m², 4 para 1000 m² y 5 para 500 m². Las áreas exigidas para calificación están basadas en los criterios seguidos en los indicadores de la Agenda Urbana Española. &lt;br /&gt;
&lt;br /&gt;
===Áreas de influencia=== &lt;br /&gt;
Se establece una matriz para darle a cada punto del municipio una calificación o nivel de servicio siendo A la mejor y E la peor. Los criterios de la Agenda Urbana Española se cumplen con la calificación B y A. Los escalones de distancia considerados son &lt;br /&gt;
300, 500, 900 y 1250 metros, de nuevo siguiendo los criterios de la Agenda Urbana Española. La distancia 1250 metros sería el límite de influencia a 15 minutos andando. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot; | !! colspan=&amp;quot;4&amp;quot; | Distancia&lt;br /&gt;
|-&lt;br /&gt;
! 300m !! 500m !! 900m !! 1250m&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;5&amp;quot; | Calificación de la Zona Verde&lt;br /&gt;
| 1 || A || A || A || C&lt;br /&gt;
|-&lt;br /&gt;
| 2 || A || A || B || D&lt;br /&gt;
|-&lt;br /&gt;
| 3 || A || B || C || E&lt;br /&gt;
|-&lt;br /&gt;
| 4 || B || C || D || E&lt;br /&gt;
|-&lt;br /&gt;
| 5 || C || D || E || E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Se establecen también un criterio de calidad mínima. Para densidades de población superiores a 10000 hab/km2 en nivel de servicio exigido es A, para el resto B. &lt;br /&gt;
Los datos poblacionales se extraen de la capa de población por cuadrados de 1x1 km elaborada por Eurostat con datos del año 2021. &lt;br /&gt;
&lt;br /&gt;
===Carriles bici=== &lt;br /&gt;
Otro de los valores que ayudan determinar si una ciudad es sostenible&lt;br /&gt;
son los carriles bici, ya que permiten a los ciudadanos movilizarse por la ciudad en medios&lt;br /&gt;
no motorizado. Antes de realizar el análisis de la calidad de dichas redes de transporte,&lt;br /&gt;
haremos un primer análisis de las ciudades mostrando la distribución de las redes dentro&lt;br /&gt;
del municipio.&lt;br /&gt;
Lo que se ha hecho es buscar las bases cartográficas en la Página Web de cada&lt;br /&gt;
ayuntamiento y pasarlas al QGIS. En las bases de datos que clasificaban los diferentes&lt;br /&gt;
tipos de carril bici hemos añadido una leyenda que indica qué tipo de carril bici es el que&lt;br /&gt;
hay.&lt;br /&gt;
&lt;br /&gt;
==Resultados== &lt;br /&gt;
&lt;br /&gt;
===Zonas Verdes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Zaragoza.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Zaragoza]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Vitoria.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Vitoria]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Valladolid.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Valladolid]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Valencia.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Valencia]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Sevilla.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Sevilla]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Madrid.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Madrid]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Barcelona.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Barcelona]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Ciudad !! Población con nivel de servicio adecuado (%) !! Nivel de servicio medio !! Calificación global de la ciudad &lt;br /&gt;
|-&lt;br /&gt;
| Valladolid|| 100 % || A (1.01) || A (1.00)&lt;br /&gt;
|-&lt;br /&gt;
| Madrid || 98.6 % || A (1.02) || A (1.04)&lt;br /&gt;
|-&lt;br /&gt;
| Vitoria|| 100 % || A (1.01) || A (1.01)&lt;br /&gt;
|-&lt;br /&gt;
| Zaragoza|| 98.93 % || A (1.10) || A (1.07)&lt;br /&gt;
|-&lt;br /&gt;
| Barcelona|| 98.6 % || A (1.01) || A (1.04)&lt;br /&gt;
|-&lt;br /&gt;
| Sevilla|| 100 % || A (1.02) || A (1.01)&lt;br /&gt;
|-&lt;br /&gt;
| Valencia|| 99.99 % || A (1.05) || A (1.03)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Carriles bici=== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_Zaragoza.png|400x300px|miniaturadeimagen|centro|Carriles bici en Zaragoza]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_Vitoria.png|400x300px|miniaturadeimagen|centro|Carriles bici en Vitoria]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_valladolid.png|400x300px|miniaturadeimagen|centro|Carriles bici en Valladolid]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_Sevilla.png|400x300px|miniaturadeimagen|centro|Carriles bici en Sevilla]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_Madrid.png|400x300px|miniaturadeimagen|centro|Carriles bici en Madrid]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:bici_Barcelona.png|400x300px|miniaturadeimagen|centro|Carriles bici en Barcelona]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Ciudad !! Longitud (km) !! Longitud por habitante&lt;br /&gt;
|-&lt;br /&gt;
| Zaragoza || 191 || 0,28 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Madrid || 427 || 0,13 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Valencia || 221 || 0,28 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Barcelona || 111 || 0,07 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Sevilla || 186 || 0,27 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Vitoria || 153 || 0,61 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Valladolid || 105 || 0,35 km/1000hab&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Bici_Barcelona.png&amp;diff=72945</id>
		<title>Archivo:Bici Barcelona.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Bici_Barcelona.png&amp;diff=72945"/>
				<updated>2024-05-27T11:04:32Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Bici_Madrid.png&amp;diff=72944</id>
		<title>Archivo:Bici Madrid.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Bici_Madrid.png&amp;diff=72944"/>
				<updated>2024-05-27T11:04:08Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Bici_Sevilla.png&amp;diff=72943</id>
		<title>Archivo:Bici Sevilla.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Bici_Sevilla.png&amp;diff=72943"/>
				<updated>2024-05-27T11:03:52Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Bici_valladolid.png&amp;diff=72942</id>
		<title>Archivo:Bici valladolid.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Bici_valladolid.png&amp;diff=72942"/>
				<updated>2024-05-27T11:03:40Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Bici_Vitoria.png&amp;diff=72941</id>
		<title>Archivo:Bici Vitoria.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Bici_Vitoria.png&amp;diff=72941"/>
				<updated>2024-05-27T11:03:28Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Bici_Zaragoza.png&amp;diff=72940</id>
		<title>Archivo:Bici Zaragoza.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Bici_Zaragoza.png&amp;diff=72940"/>
				<updated>2024-05-27T11:03:12Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Calidad_de_las_zonas_verdes_y_carriles_bici_en_7_ciudades_espa%C3%B1olas&amp;diff=72938</id>
		<title>Calidad de las zonas verdes y carriles bici en 7 ciudades españolas</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Calidad_de_las_zonas_verdes_y_carriles_bici_en_7_ciudades_espa%C3%B1olas&amp;diff=72938"/>
				<updated>2024-05-27T10:55:14Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Calidad de las zonas verdes y carriles bici en 7 ciudades españolas | [[:Categoría:Sistemas de Información Geográfica Aplicados a la Ingeniería Civil|Sistemas de Información Geográfica Aplicados a la Ingeniería Civil]]|[[:Categoría:SIGAIC_23/24|2023-2024]] | Iker Leguizamón Salamanca&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Nadia Morón Pereira }}&lt;br /&gt;
&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
El objetivo de este proyecto es analizar las zonas verdes y los carriles bici en las ciudades&lt;br /&gt;
de Madrid, Vitoria, Sevilla, Valladolid, Zaragoza y Barcelona en relación con su población.&lt;br /&gt;
Un reconocido urbanista danés, Jan Gehl, introdujo una regla simple, conocida como la&lt;br /&gt;
regla 3-30-300, que nos ayuda a diseñar los espacios urbanos más habitables y sostenibles.&lt;br /&gt;
Esta regla consiste en que cada persona debería ver al menos 3 árboles desde su casa,&lt;br /&gt;
tener 30 % de cobertura vegetal en su barrio y estar a 300 metros de un parque decente.&lt;br /&gt;
Además, se sugiere que las ciudades tengan 50 metros cuadrados de superficie vegetal por&lt;br /&gt;
habitante.&lt;br /&gt;
Este proyecto tiene como objetivo verificar si estas grandes ciudades cumplen con los&lt;br /&gt;
criterios necesarios para ser consideradas ciudades verdes, un concepto que proporciona&lt;br /&gt;
beneficios para la salud física y mental, así como protección climática.&lt;br /&gt;
&lt;br /&gt;
===Objetivos de desarrollo sostenible=== &lt;br /&gt;
&lt;br /&gt;
El 25 de septiembre de 2015, los líderes mundiales adoptaron un conjunto de objetivos&lt;br /&gt;
globales para erradicar la pobreza, proteger el planeta y asegurar la prosperidad para todos&lt;br /&gt;
como parte de una nueva agenda de desarrollo sostenible. Cada objetivo tiene metas&lt;br /&gt;
específicas que deben alcanzarse en los próximos 15 años.&lt;br /&gt;
La Agenda plantea 17 objetivos con 169 metas de carácter integrado e indivisible que&lt;br /&gt;
abarcan las esferas económica, social y ambiental. Estos son conocidos como los objetivos&lt;br /&gt;
de desarrollo sostenible.&lt;br /&gt;
En palabras de los países firmantes del acuerdo: «Estamos resueltos a poner fin a la&lt;br /&gt;
pobreza y el hambre en todo el mundo de aquí a 2030, a combatir las desigualdades dentro&lt;br /&gt;
de los países y entre ellos, a construir sociedades pacíficas, justas e inclusivas, a proteger&lt;br /&gt;
los derechos humanos y promover la igualdad entre los géneros y el empoderamiento de las&lt;br /&gt;
mujeres y las niñas, y a garantizar una protección duradera del planeta y sus recursos&lt;br /&gt;
naturales”. Según la ONU, los Objetivos de desarrollo sostenible son el plan maestro para&lt;br /&gt;
conseguir un futuro sostenible para todos. Se interrelacionan entre sí e incorporan los&lt;br /&gt;
desafíos globales a los que nos enfrentamos día a día, como la pobreza, la desigualdad, el&lt;br /&gt;
clima, la degradación ambiental, la prosperidad, la paz y la justicia.&lt;br /&gt;
&lt;br /&gt;
==Metodología==&lt;br /&gt;
&lt;br /&gt;
En primer lugar, hemos partido del mapa de municipios de toda España de donde hemos&lt;br /&gt;
extraído los municipios de cada una de las ciudades estudiadas.&lt;br /&gt;
A continuación, usando el complemento de QuickOSM, hemos buscado las zonas verdes&lt;br /&gt;
introduciendo valores a Clave y Valor que podíamos encontrar en OpenStreetMaps (OSM).&lt;br /&gt;
Es importante que en el buscador seleccionemos “Or” y para la sección espacial de consulta&lt;br /&gt;
seleccionaremos la capa que creamos en el anterior paso.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:fig_1.png|400x300px|miniaturadeimagen|centro|Overpass turbo request para descarga de datos]]&lt;br /&gt;
&lt;br /&gt;
===Criterios de la Agenda Urbana española=== &lt;br /&gt;
La Agenda Urbana Española establece un indicador para evaluar si la población tiene accesibilidad suficiente a las zonas verdes. &lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 1000 m² el área de influencia es 300 metros&lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 5000 m² el área de influencia es 500 metros&lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 10000 m² el área de influencia es 900 metros&lt;br /&gt;
&lt;br /&gt;
===Criterios utilizados para la valoración de las zonas verdes===&lt;br /&gt;
Cada zona verde recibe una calificación en función de su superficie y del tipo de zona verde. Parque y bosque reciben mejor calificación que el &lt;br /&gt;
resto de categorías. A la categoría jardín se le suma 1 punto y al resto de categorías 2 puntos empeorando la calificación. &lt;br /&gt;
&lt;br /&gt;
-Ancho mínimo de la zona verde: 8 metros.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Superficie mínima de la zona verde: 500 m².&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Unificación de superficies: Las superficies que se encuentren a menos de 5 metros entre ellas serán consideradas como una única zona verde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Sistema de valoración: Los elementos se han valorado de 1 a 5, siendo 5 la peor nota. Las calificaciones se dan según el área. 1 para 100000 m², 2 para 10000 m², 3 para 5000 m², 4 para 1000 m² y 5 para 500 m². Las áreas exigidas para calificación están basadas en los criterios seguidos en los indicadores de la Agenda Urbana Española. &lt;br /&gt;
&lt;br /&gt;
===Áreas de influencia=== &lt;br /&gt;
Se establece una matriz para darle a cada punto del municipio una calificación o nivel de servicio siendo A la mejor y E la peor. Los criterios de la Agenda Urbana Española se cumplen con la calificación B y A. Los escalones de distancia considerados son &lt;br /&gt;
300, 500, 900 y 1250 metros, de nuevo siguiendo los criterios de la Agenda Urbana Española. La distancia 1250 metros sería el límite de influencia a 15 minutos andando. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot; | !! colspan=&amp;quot;4&amp;quot; | Distancia&lt;br /&gt;
|-&lt;br /&gt;
! 300m !! 500m !! 900m !! 1250m&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;5&amp;quot; | Calificación de la Zona Verde&lt;br /&gt;
| 1 || A || A || A || C&lt;br /&gt;
|-&lt;br /&gt;
| 2 || A || A || B || D&lt;br /&gt;
|-&lt;br /&gt;
| 3 || A || B || C || E&lt;br /&gt;
|-&lt;br /&gt;
| 4 || B || C || D || E&lt;br /&gt;
|-&lt;br /&gt;
| 5 || C || D || E || E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Se establecen también un criterio de calidad mínima. Para densidades de población superiores a 10000 hab/km2 en nivel de servicio exigido es A, para el resto B. &lt;br /&gt;
Los datos poblacionales se extraen de la capa de población por cuadrados de 1x1 km elaborada por Eurostat con datos del año 2021. &lt;br /&gt;
&lt;br /&gt;
===Carriles bici=== &lt;br /&gt;
Otro de los valores que ayudan determinar si una ciudad es sostenible&lt;br /&gt;
son los carriles bici, ya que permiten a los ciudadanos movilizarse por la ciudad en medios&lt;br /&gt;
no motorizado. Antes de realizar el análisis de la calidad de dichas redes de transporte,&lt;br /&gt;
haremos un primer análisis de las ciudades mostrando la distribución de las redes dentro&lt;br /&gt;
del municipio.&lt;br /&gt;
Lo que se ha hecho es buscar las bases cartográficas en la Página Web de cada&lt;br /&gt;
ayuntamiento y pasarlas al QGIS. En las bases de datos que clasificaban los diferentes&lt;br /&gt;
tipos de carril bici hemos añadido una leyenda que indica qué tipo de carril bici es el que&lt;br /&gt;
hay.&lt;br /&gt;
&lt;br /&gt;
==Resultados== &lt;br /&gt;
&lt;br /&gt;
===Zonas Verdes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Zaragoza.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Zaragoza]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Vitoria.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Vitoria]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Valladolid.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Valladolid]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Valencia.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Valencia]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Sevilla.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Sevilla]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Madrid.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Madrid]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:LS_Barcelona.png|400x300px|miniaturadeimagen|centro|Nivel de servicio de las zonas verdes de Barcelona]]&lt;br /&gt;
&lt;br /&gt;
===Carriles bici=== &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Ciudad !! Longitud (km) !! Longitud por habitante&lt;br /&gt;
|-&lt;br /&gt;
| Zaragoza || 191 || 0,28 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Madrid || 427 || 0,13 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Valencia || 221 || 0,28 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Barcelona || 111 || 0,07 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Sevilla || 186 || 0,27 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Vitoria || 153 || 0,61 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Valladolid || 105 || 0,35 km/1000hab&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:LS_Barcelona.png&amp;diff=72936</id>
		<title>Archivo:LS Barcelona.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:LS_Barcelona.png&amp;diff=72936"/>
				<updated>2024-05-27T10:49:38Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:LS_Madrid.png&amp;diff=72935</id>
		<title>Archivo:LS Madrid.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:LS_Madrid.png&amp;diff=72935"/>
				<updated>2024-05-27T10:49:24Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:LS_Sevilla.png&amp;diff=72934</id>
		<title>Archivo:LS Sevilla.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:LS_Sevilla.png&amp;diff=72934"/>
				<updated>2024-05-27T10:49:07Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:LS_Valencia.png&amp;diff=72933</id>
		<title>Archivo:LS Valencia.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:LS_Valencia.png&amp;diff=72933"/>
				<updated>2024-05-27T10:48:53Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:LS_Valladolid.png&amp;diff=72931</id>
		<title>Archivo:LS Valladolid.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:LS_Valladolid.png&amp;diff=72931"/>
				<updated>2024-05-27T10:48:28Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:LS_Vitoria.png&amp;diff=72930</id>
		<title>Archivo:LS Vitoria.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:LS_Vitoria.png&amp;diff=72930"/>
				<updated>2024-05-27T10:47:50Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:LS_Zaragoza.png&amp;diff=72929</id>
		<title>Archivo:LS Zaragoza.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:LS_Zaragoza.png&amp;diff=72929"/>
				<updated>2024-05-27T10:47:37Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Fig_1.png&amp;diff=72928</id>
		<title>Archivo:Fig 1.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Fig_1.png&amp;diff=72928"/>
				<updated>2024-05-27T10:47:17Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Calidad_de_las_zonas_verdes_y_carriles_bici_en_7_ciudades_espa%C3%B1olas&amp;diff=72927</id>
		<title>Calidad de las zonas verdes y carriles bici en 7 ciudades españolas</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Calidad_de_las_zonas_verdes_y_carriles_bici_en_7_ciudades_espa%C3%B1olas&amp;diff=72927"/>
				<updated>2024-05-27T10:46:31Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: /* Carriles bici */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Calidad de las zonas verdes y carriles bici en 7 ciudades españolas | [[:Categoría:Sistemas de Información Geográfica Aplicados a la Ingeniería Civil|Sistemas de Información Geográfica Aplicados a la Ingeniería Civil]]|[[:Categoría:SIGAIC_23/24|2023-2024]] | Iker Leguizamón Salamanca&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Nadia Morón Pereira }}&lt;br /&gt;
&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
El objetivo de este proyecto es analizar las zonas verdes y los carriles bici en las ciudades&lt;br /&gt;
de Madrid, Vitoria, Sevilla, Valladolid, Zaragoza y Barcelona en relación con su población.&lt;br /&gt;
Un reconocido urbanista danés, Jan Gehl, introdujo una regla simple, conocida como la&lt;br /&gt;
regla 3-30-300, que nos ayuda a diseñar los espacios urbanos más habitables y sostenibles.&lt;br /&gt;
Esta regla consiste en que cada persona debería ver al menos 3 árboles desde su casa,&lt;br /&gt;
tener 30 % de cobertura vegetal en su barrio y estar a 300 metros de un parque decente.&lt;br /&gt;
Además, se sugiere que las ciudades tengan 50 metros cuadrados de superficie vegetal por&lt;br /&gt;
habitante.&lt;br /&gt;
Este proyecto tiene como objetivo verificar si estas grandes ciudades cumplen con los&lt;br /&gt;
criterios necesarios para ser consideradas ciudades verdes, un concepto que proporciona&lt;br /&gt;
beneficios para la salud física y mental, así como protección climática.&lt;br /&gt;
&lt;br /&gt;
===Objetivos de desarrollo sostenible=== &lt;br /&gt;
&lt;br /&gt;
El 25 de septiembre de 2015, los líderes mundiales adoptaron un conjunto de objetivos&lt;br /&gt;
globales para erradicar la pobreza, proteger el planeta y asegurar la prosperidad para todos&lt;br /&gt;
como parte de una nueva agenda de desarrollo sostenible. Cada objetivo tiene metas&lt;br /&gt;
específicas que deben alcanzarse en los próximos 15 años.&lt;br /&gt;
La Agenda plantea 17 objetivos con 169 metas de carácter integrado e indivisible que&lt;br /&gt;
abarcan las esferas económica, social y ambiental. Estos son conocidos como los objetivos&lt;br /&gt;
de desarrollo sostenible.&lt;br /&gt;
En palabras de los países firmantes del acuerdo: «Estamos resueltos a poner fin a la&lt;br /&gt;
pobreza y el hambre en todo el mundo de aquí a 2030, a combatir las desigualdades dentro&lt;br /&gt;
de los países y entre ellos, a construir sociedades pacíficas, justas e inclusivas, a proteger&lt;br /&gt;
los derechos humanos y promover la igualdad entre los géneros y el empoderamiento de las&lt;br /&gt;
mujeres y las niñas, y a garantizar una protección duradera del planeta y sus recursos&lt;br /&gt;
naturales”. Según la ONU, los Objetivos de desarrollo sostenible son el plan maestro para&lt;br /&gt;
conseguir un futuro sostenible para todos. Se interrelacionan entre sí e incorporan los&lt;br /&gt;
desafíos globales a los que nos enfrentamos día a día, como la pobreza, la desigualdad, el&lt;br /&gt;
clima, la degradación ambiental, la prosperidad, la paz y la justicia.&lt;br /&gt;
&lt;br /&gt;
==Metodología==&lt;br /&gt;
&lt;br /&gt;
En primer lugar, hemos partido del mapa de municipios de toda España de donde hemos&lt;br /&gt;
extraído los municipios de cada una de las ciudades estudiadas.&lt;br /&gt;
A continuación, usando el complemento de QuickOSM, hemos buscado las zonas verdes&lt;br /&gt;
introduciendo valores a Clave y Valor que podíamos encontrar en OpenStreetMaps (OSM).&lt;br /&gt;
Es importante que en el buscador seleccionemos “Or” y para la sección espacial de consulta&lt;br /&gt;
seleccionaremos la capa que creamos en el anterior paso.&lt;br /&gt;
&lt;br /&gt;
===Criterios de la Agenda Urbana española=== &lt;br /&gt;
La Agenda Urbana Española establece un indicador para evaluar si la población tiene accesibilidad suficiente a las zonas verdes. &lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 1000 m² el área de influencia es 300 metros&lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 5000 m² el área de influencia es 500 metros&lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 10000 m² el área de influencia es 900 metros&lt;br /&gt;
&lt;br /&gt;
===Criterios utilizados para la valoración de las zonas verdes===&lt;br /&gt;
Cada zona verde recibe una calificación en función de su superficie y del tipo de zona verde. Parque y bosque reciben mejor calificación que el &lt;br /&gt;
resto de categorías. A la categoría jardín se le suma 1 punto y al resto de categorías 2 puntos empeorando la calificación. &lt;br /&gt;
&lt;br /&gt;
-Ancho mínimo de la zona verde: 8 metros.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Superficie mínima de la zona verde: 500 m².&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Unificación de superficies: Las superficies que se encuentren a menos de 5 metros entre ellas serán consideradas como una única zona verde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Sistema de valoración: Los elementos se han valorado de 1 a 5, siendo 5 la peor nota. Las calificaciones se dan según el área. 1 para 100000 m², 2 para 10000 m², 3 para 5000 m², 4 para 1000 m² y 5 para 500 m². Las áreas exigidas para calificación están basadas en los criterios seguidos en los indicadores de la Agenda Urbana Española. &lt;br /&gt;
&lt;br /&gt;
===Áreas de influencia=== &lt;br /&gt;
Se establece una matriz para darle a cada punto del municipio una calificación o nivel de servicio siendo A la mejor y E la peor. Los criterios de la Agenda Urbana Española se cumplen con la calificación B y A. Los escalones de distancia considerados son &lt;br /&gt;
300, 500, 900 y 1250 metros, de nuevo siguiendo los criterios de la Agenda Urbana Española. La distancia 1250 metros sería el límite de influencia a 15 minutos andando. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot; | !! colspan=&amp;quot;4&amp;quot; | Distancia&lt;br /&gt;
|-&lt;br /&gt;
! 300m !! 500m !! 900m !! 1250m&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;5&amp;quot; | Calificación de la Zona Verde&lt;br /&gt;
| 1 || A || A || A || C&lt;br /&gt;
|-&lt;br /&gt;
| 2 || A || A || B || D&lt;br /&gt;
|-&lt;br /&gt;
| 3 || A || B || C || E&lt;br /&gt;
|-&lt;br /&gt;
| 4 || B || C || D || E&lt;br /&gt;
|-&lt;br /&gt;
| 5 || C || D || E || E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Se establecen también un criterio de calidad mínima. Para densidades de población superiores a 10000 hab/km2 en nivel de servicio exigido es A, para el resto B. &lt;br /&gt;
Los datos poblacionales se extraen de la capa de población por cuadrados de 1x1 km elaborada por Eurostat con datos del año 2021. &lt;br /&gt;
&lt;br /&gt;
===Carriles bici=== &lt;br /&gt;
Otro de los valores que ayudan determinar si una ciudad es sostenible&lt;br /&gt;
son los carriles bici, ya que permiten a los ciudadanos movilizarse por la ciudad en medios&lt;br /&gt;
no motorizado. Antes de realizar el análisis de la calidad de dichas redes de transporte,&lt;br /&gt;
haremos un primer análisis de las ciudades mostrando la distribución de las redes dentro&lt;br /&gt;
del municipio.&lt;br /&gt;
Lo que se ha hecho es buscar las bases cartográficas en la Página Web de cada&lt;br /&gt;
ayuntamiento y pasarlas al QGIS. En las bases de datos que clasificaban los diferentes&lt;br /&gt;
tipos de carril bici hemos añadido una leyenda que indica qué tipo de carril bici es el que&lt;br /&gt;
hay.&lt;br /&gt;
&lt;br /&gt;
==Resultados== &lt;br /&gt;
&lt;br /&gt;
===Zonas Verdes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Carriles bici=== &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Ciudad !! Longitud (km) !! Longitud por habitante&lt;br /&gt;
|-&lt;br /&gt;
| Zaragoza || 191 || 0,28 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Madrid || 427 || 0,13 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Valencia || 221 || 0,28 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Barcelona || 111 || 0,07 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Sevilla || 186 || 0,27 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Vitoria || 153 || 0,61 km/1000hab&lt;br /&gt;
|-&lt;br /&gt;
| Valladolid || 105 || 0,35 km/1000hab&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Calidad_de_las_zonas_verdes_y_carriles_bici_en_7_ciudades_espa%C3%B1olas&amp;diff=72926</id>
		<title>Calidad de las zonas verdes y carriles bici en 7 ciudades españolas</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Calidad_de_las_zonas_verdes_y_carriles_bici_en_7_ciudades_espa%C3%B1olas&amp;diff=72926"/>
				<updated>2024-05-27T10:39:03Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: /* Carriles bici */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Calidad de las zonas verdes y carriles bici en 7 ciudades españolas | [[:Categoría:Sistemas de Información Geográfica Aplicados a la Ingeniería Civil|Sistemas de Información Geográfica Aplicados a la Ingeniería Civil]]|[[:Categoría:SIGAIC_23/24|2023-2024]] | Iker Leguizamón Salamanca&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Nadia Morón Pereira }}&lt;br /&gt;
&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
El objetivo de este proyecto es analizar las zonas verdes y los carriles bici en las ciudades&lt;br /&gt;
de Madrid, Vitoria, Sevilla, Valladolid, Zaragoza y Barcelona en relación con su población.&lt;br /&gt;
Un reconocido urbanista danés, Jan Gehl, introdujo una regla simple, conocida como la&lt;br /&gt;
regla 3-30-300, que nos ayuda a diseñar los espacios urbanos más habitables y sostenibles.&lt;br /&gt;
Esta regla consiste en que cada persona debería ver al menos 3 árboles desde su casa,&lt;br /&gt;
tener 30 % de cobertura vegetal en su barrio y estar a 300 metros de un parque decente.&lt;br /&gt;
Además, se sugiere que las ciudades tengan 50 metros cuadrados de superficie vegetal por&lt;br /&gt;
habitante.&lt;br /&gt;
Este proyecto tiene como objetivo verificar si estas grandes ciudades cumplen con los&lt;br /&gt;
criterios necesarios para ser consideradas ciudades verdes, un concepto que proporciona&lt;br /&gt;
beneficios para la salud física y mental, así como protección climática.&lt;br /&gt;
&lt;br /&gt;
===Objetivos de desarrollo sostenible=== &lt;br /&gt;
&lt;br /&gt;
El 25 de septiembre de 2015, los líderes mundiales adoptaron un conjunto de objetivos&lt;br /&gt;
globales para erradicar la pobreza, proteger el planeta y asegurar la prosperidad para todos&lt;br /&gt;
como parte de una nueva agenda de desarrollo sostenible. Cada objetivo tiene metas&lt;br /&gt;
específicas que deben alcanzarse en los próximos 15 años.&lt;br /&gt;
La Agenda plantea 17 objetivos con 169 metas de carácter integrado e indivisible que&lt;br /&gt;
abarcan las esferas económica, social y ambiental. Estos son conocidos como los objetivos&lt;br /&gt;
de desarrollo sostenible.&lt;br /&gt;
En palabras de los países firmantes del acuerdo: «Estamos resueltos a poner fin a la&lt;br /&gt;
pobreza y el hambre en todo el mundo de aquí a 2030, a combatir las desigualdades dentro&lt;br /&gt;
de los países y entre ellos, a construir sociedades pacíficas, justas e inclusivas, a proteger&lt;br /&gt;
los derechos humanos y promover la igualdad entre los géneros y el empoderamiento de las&lt;br /&gt;
mujeres y las niñas, y a garantizar una protección duradera del planeta y sus recursos&lt;br /&gt;
naturales”. Según la ONU, los Objetivos de desarrollo sostenible son el plan maestro para&lt;br /&gt;
conseguir un futuro sostenible para todos. Se interrelacionan entre sí e incorporan los&lt;br /&gt;
desafíos globales a los que nos enfrentamos día a día, como la pobreza, la desigualdad, el&lt;br /&gt;
clima, la degradación ambiental, la prosperidad, la paz y la justicia.&lt;br /&gt;
&lt;br /&gt;
==Metodología==&lt;br /&gt;
&lt;br /&gt;
En primer lugar, hemos partido del mapa de municipios de toda España de donde hemos&lt;br /&gt;
extraído los municipios de cada una de las ciudades estudiadas.&lt;br /&gt;
A continuación, usando el complemento de QuickOSM, hemos buscado las zonas verdes&lt;br /&gt;
introduciendo valores a Clave y Valor que podíamos encontrar en OpenStreetMaps (OSM).&lt;br /&gt;
Es importante que en el buscador seleccionemos “Or” y para la sección espacial de consulta&lt;br /&gt;
seleccionaremos la capa que creamos en el anterior paso.&lt;br /&gt;
&lt;br /&gt;
===Criterios de la Agenda Urbana española=== &lt;br /&gt;
La Agenda Urbana Española establece un indicador para evaluar si la población tiene accesibilidad suficiente a las zonas verdes. &lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 1000 m² el área de influencia es 300 metros&lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 5000 m² el área de influencia es 500 metros&lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 10000 m² el área de influencia es 900 metros&lt;br /&gt;
&lt;br /&gt;
===Criterios utilizados para la valoración de las zonas verdes===&lt;br /&gt;
Cada zona verde recibe una calificación en función de su superficie y del tipo de zona verde. Parque y bosque reciben mejor calificación que el &lt;br /&gt;
resto de categorías. A la categoría jardín se le suma 1 punto y al resto de categorías 2 puntos empeorando la calificación. &lt;br /&gt;
&lt;br /&gt;
-Ancho mínimo de la zona verde: 8 metros.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Superficie mínima de la zona verde: 500 m².&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Unificación de superficies: Las superficies que se encuentren a menos de 5 metros entre ellas serán consideradas como una única zona verde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Sistema de valoración: Los elementos se han valorado de 1 a 5, siendo 5 la peor nota. Las calificaciones se dan según el área. 1 para 100000 m², 2 para 10000 m², 3 para 5000 m², 4 para 1000 m² y 5 para 500 m². Las áreas exigidas para calificación están basadas en los criterios seguidos en los indicadores de la Agenda Urbana Española. &lt;br /&gt;
&lt;br /&gt;
===Áreas de influencia=== &lt;br /&gt;
Se establece una matriz para darle a cada punto del municipio una calificación o nivel de servicio siendo A la mejor y E la peor. Los criterios de la Agenda Urbana Española se cumplen con la calificación B y A. Los escalones de distancia considerados son &lt;br /&gt;
300, 500, 900 y 1250 metros, de nuevo siguiendo los criterios de la Agenda Urbana Española. La distancia 1250 metros sería el límite de influencia a 15 minutos andando. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot; | !! colspan=&amp;quot;4&amp;quot; | Distancia&lt;br /&gt;
|-&lt;br /&gt;
! 300m !! 500m !! 900m !! 1250m&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;5&amp;quot; | Calificación de la Zona Verde&lt;br /&gt;
| 1 || A || A || A || C&lt;br /&gt;
|-&lt;br /&gt;
| 2 || A || A || B || D&lt;br /&gt;
|-&lt;br /&gt;
| 3 || A || B || C || E&lt;br /&gt;
|-&lt;br /&gt;
| 4 || B || C || D || E&lt;br /&gt;
|-&lt;br /&gt;
| 5 || C || D || E || E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Se establecen también un criterio de calidad mínima. Para densidades de población superiores a 10000 hab/km2 en nivel de servicio exigido es A, para el resto B. &lt;br /&gt;
Los datos poblacionales se extraen de la capa de población por cuadrados de 1x1 km elaborada por Eurostat con datos del año 2021. &lt;br /&gt;
&lt;br /&gt;
===Carriles bici=== &lt;br /&gt;
Otro de los valores que ayudan determinar si una ciudad es sostenible&lt;br /&gt;
son los carriles bici, ya que permiten a los ciudadanos movilizarse por la ciudad en medios&lt;br /&gt;
no motorizado. Antes de realizar el análisis de la calidad de dichas redes de transporte,&lt;br /&gt;
haremos un primer análisis de las ciudades mostrando la distribución de las redes dentro&lt;br /&gt;
del municipio.&lt;br /&gt;
Lo que se ha hecho es buscar las bases cartográficas en la Página Web de cada&lt;br /&gt;
ayuntamiento y pasarlas al QGIS. En las bases de datos que clasificaban los diferentes&lt;br /&gt;
tipos de carril bici hemos añadido una leyenda que indica qué tipo de carril bici es el que&lt;br /&gt;
hay.&lt;br /&gt;
&lt;br /&gt;
==Resultados== &lt;br /&gt;
&lt;br /&gt;
===Zonas Verdes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Carriles bici=== &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Ciudad !! Longitud (km)&lt;br /&gt;
|-&lt;br /&gt;
| Zaragoza || 190&lt;br /&gt;
|-&lt;br /&gt;
| Madrid || 427&lt;br /&gt;
|-&lt;br /&gt;
| Valencia || 221&lt;br /&gt;
|-&lt;br /&gt;
| Barcelona || 111&lt;br /&gt;
|-&lt;br /&gt;
| Sevilla || 186&lt;br /&gt;
|-&lt;br /&gt;
| Vitoria || 153&lt;br /&gt;
|-&lt;br /&gt;
| Valladolid || 105&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Calidad_de_las_zonas_verdes_y_carriles_bici_en_7_ciudades_espa%C3%B1olas&amp;diff=72925</id>
		<title>Calidad de las zonas verdes y carriles bici en 7 ciudades españolas</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Calidad_de_las_zonas_verdes_y_carriles_bici_en_7_ciudades_espa%C3%B1olas&amp;diff=72925"/>
				<updated>2024-05-27T10:38:17Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Calidad de las zonas verdes y carriles bici en 7 ciudades españolas | [[:Categoría:Sistemas de Información Geográfica Aplicados a la Ingeniería Civil|Sistemas de Información Geográfica Aplicados a la Ingeniería Civil]]|[[:Categoría:SIGAIC_23/24|2023-2024]] | Iker Leguizamón Salamanca&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Nadia Morón Pereira }}&lt;br /&gt;
&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
El objetivo de este proyecto es analizar las zonas verdes y los carriles bici en las ciudades&lt;br /&gt;
de Madrid, Vitoria, Sevilla, Valladolid, Zaragoza y Barcelona en relación con su población.&lt;br /&gt;
Un reconocido urbanista danés, Jan Gehl, introdujo una regla simple, conocida como la&lt;br /&gt;
regla 3-30-300, que nos ayuda a diseñar los espacios urbanos más habitables y sostenibles.&lt;br /&gt;
Esta regla consiste en que cada persona debería ver al menos 3 árboles desde su casa,&lt;br /&gt;
tener 30 % de cobertura vegetal en su barrio y estar a 300 metros de un parque decente.&lt;br /&gt;
Además, se sugiere que las ciudades tengan 50 metros cuadrados de superficie vegetal por&lt;br /&gt;
habitante.&lt;br /&gt;
Este proyecto tiene como objetivo verificar si estas grandes ciudades cumplen con los&lt;br /&gt;
criterios necesarios para ser consideradas ciudades verdes, un concepto que proporciona&lt;br /&gt;
beneficios para la salud física y mental, así como protección climática.&lt;br /&gt;
&lt;br /&gt;
===Objetivos de desarrollo sostenible=== &lt;br /&gt;
&lt;br /&gt;
El 25 de septiembre de 2015, los líderes mundiales adoptaron un conjunto de objetivos&lt;br /&gt;
globales para erradicar la pobreza, proteger el planeta y asegurar la prosperidad para todos&lt;br /&gt;
como parte de una nueva agenda de desarrollo sostenible. Cada objetivo tiene metas&lt;br /&gt;
específicas que deben alcanzarse en los próximos 15 años.&lt;br /&gt;
La Agenda plantea 17 objetivos con 169 metas de carácter integrado e indivisible que&lt;br /&gt;
abarcan las esferas económica, social y ambiental. Estos son conocidos como los objetivos&lt;br /&gt;
de desarrollo sostenible.&lt;br /&gt;
En palabras de los países firmantes del acuerdo: «Estamos resueltos a poner fin a la&lt;br /&gt;
pobreza y el hambre en todo el mundo de aquí a 2030, a combatir las desigualdades dentro&lt;br /&gt;
de los países y entre ellos, a construir sociedades pacíficas, justas e inclusivas, a proteger&lt;br /&gt;
los derechos humanos y promover la igualdad entre los géneros y el empoderamiento de las&lt;br /&gt;
mujeres y las niñas, y a garantizar una protección duradera del planeta y sus recursos&lt;br /&gt;
naturales”. Según la ONU, los Objetivos de desarrollo sostenible son el plan maestro para&lt;br /&gt;
conseguir un futuro sostenible para todos. Se interrelacionan entre sí e incorporan los&lt;br /&gt;
desafíos globales a los que nos enfrentamos día a día, como la pobreza, la desigualdad, el&lt;br /&gt;
clima, la degradación ambiental, la prosperidad, la paz y la justicia.&lt;br /&gt;
&lt;br /&gt;
==Metodología==&lt;br /&gt;
&lt;br /&gt;
En primer lugar, hemos partido del mapa de municipios de toda España de donde hemos&lt;br /&gt;
extraído los municipios de cada una de las ciudades estudiadas.&lt;br /&gt;
A continuación, usando el complemento de QuickOSM, hemos buscado las zonas verdes&lt;br /&gt;
introduciendo valores a Clave y Valor que podíamos encontrar en OpenStreetMaps (OSM).&lt;br /&gt;
Es importante que en el buscador seleccionemos “Or” y para la sección espacial de consulta&lt;br /&gt;
seleccionaremos la capa que creamos en el anterior paso.&lt;br /&gt;
&lt;br /&gt;
===Criterios de la Agenda Urbana española=== &lt;br /&gt;
La Agenda Urbana Española establece un indicador para evaluar si la población tiene accesibilidad suficiente a las zonas verdes. &lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 1000 m² el área de influencia es 300 metros&lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 5000 m² el área de influencia es 500 metros&lt;br /&gt;
&lt;br /&gt;
- Para zonas verdes hasta 10000 m² el área de influencia es 900 metros&lt;br /&gt;
&lt;br /&gt;
===Criterios utilizados para la valoración de las zonas verdes===&lt;br /&gt;
Cada zona verde recibe una calificación en función de su superficie y del tipo de zona verde. Parque y bosque reciben mejor calificación que el &lt;br /&gt;
resto de categorías. A la categoría jardín se le suma 1 punto y al resto de categorías 2 puntos empeorando la calificación. &lt;br /&gt;
&lt;br /&gt;
-Ancho mínimo de la zona verde: 8 metros.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Superficie mínima de la zona verde: 500 m².&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Unificación de superficies: Las superficies que se encuentren a menos de 5 metros entre ellas serán consideradas como una única zona verde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Sistema de valoración: Los elementos se han valorado de 1 a 5, siendo 5 la peor nota. Las calificaciones se dan según el área. 1 para 100000 m², 2 para 10000 m², 3 para 5000 m², 4 para 1000 m² y 5 para 500 m². Las áreas exigidas para calificación están basadas en los criterios seguidos en los indicadores de la Agenda Urbana Española. &lt;br /&gt;
&lt;br /&gt;
===Áreas de influencia=== &lt;br /&gt;
Se establece una matriz para darle a cada punto del municipio una calificación o nivel de servicio siendo A la mejor y E la peor. Los criterios de la Agenda Urbana Española se cumplen con la calificación B y A. Los escalones de distancia considerados son &lt;br /&gt;
300, 500, 900 y 1250 metros, de nuevo siguiendo los criterios de la Agenda Urbana Española. La distancia 1250 metros sería el límite de influencia a 15 minutos andando. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot; | !! colspan=&amp;quot;4&amp;quot; | Distancia&lt;br /&gt;
|-&lt;br /&gt;
! 300m !! 500m !! 900m !! 1250m&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;5&amp;quot; | Calificación de la Zona Verde&lt;br /&gt;
| 1 || A || A || A || C&lt;br /&gt;
|-&lt;br /&gt;
| 2 || A || A || B || D&lt;br /&gt;
|-&lt;br /&gt;
| 3 || A || B || C || E&lt;br /&gt;
|-&lt;br /&gt;
| 4 || B || C || D || E&lt;br /&gt;
|-&lt;br /&gt;
| 5 || C || D || E || E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Se establecen también un criterio de calidad mínima. Para densidades de población superiores a 10000 hab/km2 en nivel de servicio exigido es A, para el resto B. &lt;br /&gt;
Los datos poblacionales se extraen de la capa de población por cuadrados de 1x1 km elaborada por Eurostat con datos del año 2021. &lt;br /&gt;
&lt;br /&gt;
===Carriles bici=== &lt;br /&gt;
Otro de los valores que ayudan determinar si una ciudad es sostenible&lt;br /&gt;
son los carriles bici, ya que permiten a los ciudadanos movilizarse por la ciudad en medios&lt;br /&gt;
no motorizado. Antes de realizar el análisis de la calidad de dichas redes de transporte,&lt;br /&gt;
haremos un primer análisis de las ciudades mostrando la distribución de las redes dentro&lt;br /&gt;
del municipio.&lt;br /&gt;
Lo que se ha hecho es buscar las bases cartográficas en la Página Web de cada&lt;br /&gt;
ayuntamiento y pasarlas al QGIS. En las bases de datos que clasificaban los diferentes&lt;br /&gt;
tipos de carril bici hemos añadido una leyenda que indica qué tipo de carril bici es el que&lt;br /&gt;
hay.&lt;br /&gt;
&lt;br /&gt;
==Resultados== &lt;br /&gt;
&lt;br /&gt;
===Zonas Verdes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Carriles bici=== &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Ciudad Longitud (km)&lt;br /&gt;
! Ciudad !! Longitud (km)&lt;br /&gt;
|-&lt;br /&gt;
| Zaragoza || 190&lt;br /&gt;
|-&lt;br /&gt;
| Madrid || 4267&lt;br /&gt;
|-&lt;br /&gt;
| Valencia || 221&lt;br /&gt;
|-&lt;br /&gt;
| Barcelona || 111&lt;br /&gt;
|-&lt;br /&gt;
| Sevilla || 186&lt;br /&gt;
|-&lt;br /&gt;
| Vitoria || 153&lt;br /&gt;
|-&lt;br /&gt;
| Valladolid || 105&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Calidad_de_las_zonas_verdes_y_carriles_bici_en_7_ciudades_espa%C3%B1olas&amp;diff=72898</id>
		<title>Calidad de las zonas verdes y carriles bici en 7 ciudades españolas</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Calidad_de_las_zonas_verdes_y_carriles_bici_en_7_ciudades_espa%C3%B1olas&amp;diff=72898"/>
				<updated>2024-05-27T10:04:18Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: /* Criterios utilizados para la valoración de las zonas verdes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Calidad de las zonas verdes y carriles bici en 7 ciudades españolas | [[:Categoría:Sistemas de Información Geográfica Aplicados a la Ingeniería Civil|Sistemas de Información Geográfica Aplicados a la Ingeniería Civil]]|[[:Categoría:SIGAIC_23/24|2023-2024]] | Iker Leguizamón Salamanca&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Nadia Morón Pereira }}&lt;br /&gt;
&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
El objetivo de este proyecto es analizar las zonas verdes y los carriles bici en las ciudades&lt;br /&gt;
de Madrid, Vitoria, Sevilla, Valladolid, Zaragoza y Barcelona en relación con su población.&lt;br /&gt;
Un reconocido urbanista danés, Jan Gehl, introdujo una regla simple, conocida como la&lt;br /&gt;
regla 3-30-300, que nos ayuda a diseñar los espacios urbanos más habitables y sostenibles.&lt;br /&gt;
Esta regla consiste en que cada persona debería ver al menos 3 árboles desde su casa,&lt;br /&gt;
tener 30 % de cobertura vegetal en su barrio y estar a 300 metros de un parque decente.&lt;br /&gt;
Además, se sugiere que las ciudades tengan 50 metros cuadrados de superficie vegetal por&lt;br /&gt;
habitante.&lt;br /&gt;
Este proyecto tiene como objetivo verificar si estas grandes ciudades cumplen con los&lt;br /&gt;
criterios necesarios para ser consideradas ciudades verdes, un concepto que proporciona&lt;br /&gt;
beneficios para la salud física y mental, así como protección climática.&lt;br /&gt;
&lt;br /&gt;
===Objetivos de desarrollo sostenible=== &lt;br /&gt;
&lt;br /&gt;
El 25 de septiembre de 2015, los líderes mundiales adoptaron un conjunto de objetivos&lt;br /&gt;
globales para erradicar la pobreza, proteger el planeta y asegurar la prosperidad para todos&lt;br /&gt;
como parte de una nueva agenda de desarrollo sostenible. Cada objetivo tiene metas&lt;br /&gt;
específicas que deben alcanzarse en los próximos 15 años.&lt;br /&gt;
La Agenda plantea 17 objetivos con 169 metas de carácter integrado e indivisible que&lt;br /&gt;
abarcan las esferas económica, social y ambiental. Estos son conocidos como los objetivos&lt;br /&gt;
de desarrollo sostenible.&lt;br /&gt;
En palabras de los países firmantes del acuerdo: «Estamos resueltos a poner fin a la&lt;br /&gt;
pobreza y el hambre en todo el mundo de aquí a 2030, a combatir las desigualdades dentro&lt;br /&gt;
de los países y entre ellos, a construir sociedades pacíficas, justas e inclusivas, a proteger&lt;br /&gt;
los derechos humanos y promover la igualdad entre los géneros y el empoderamiento de las&lt;br /&gt;
mujeres y las niñas, y a garantizar una protección duradera del planeta y sus recursos&lt;br /&gt;
naturales”. Según la ONU, los Objetivos de desarrollo sostenible son el plan maestro para&lt;br /&gt;
conseguir un futuro sostenible para todos. Se interrelacionan entre sí e incorporan los&lt;br /&gt;
desafíos globales a los que nos enfrentamos día a día, como la pobreza, la desigualdad, el&lt;br /&gt;
clima, la degradación ambiental, la prosperidad, la paz y la justicia.&lt;br /&gt;
&lt;br /&gt;
==Metodología==&lt;br /&gt;
&lt;br /&gt;
En primer lugar, hemos partido del mapa de municipios de toda España de donde hemos&lt;br /&gt;
extraído los municipios de cada una de las ciudades estudiadas.&lt;br /&gt;
A continuación, usando el complemento de QuickOSM, hemos buscado las zonas verdes&lt;br /&gt;
introduciendo valores a Clave y Valor que podíamos encontrar en OpenStreetMaps (OSM).&lt;br /&gt;
Es importante que en el buscador seleccionemos “Or” y para la sección espacial de consulta&lt;br /&gt;
seleccionaremos la capa que creamos en el anterior paso.&lt;br /&gt;
&lt;br /&gt;
===Criterios utilizados para la valoración de las zonas verdes===&lt;br /&gt;
&lt;br /&gt;
-Ancho mínimo de la zona verde: 8 metros.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Superficie mínima de la zona verde: 500 m².&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Unificación de superficies: Las superficies que se encuentren a menos de 5 metros entre ellas serán consideradas como una única zona verde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Sistema de valoración: Los elementos se han valorado de 1 a 10, siendo 10 la peor nota.&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Calidad_de_las_zonas_verdes_y_carriles_bici_en_7_ciudades_espa%C3%B1olas&amp;diff=72897</id>
		<title>Calidad de las zonas verdes y carriles bici en 7 ciudades españolas</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Calidad_de_las_zonas_verdes_y_carriles_bici_en_7_ciudades_espa%C3%B1olas&amp;diff=72897"/>
				<updated>2024-05-27T10:03:31Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: Página creada con «{{ TrabajoED | Calidad de las zonas verdes y carriles bici en 7 ciudades españolas | :Categoría:Sistemas de Información Geográfica Aplicados a la Ingeniería Civil|Si...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Calidad de las zonas verdes y carriles bici en 7 ciudades españolas | [[:Categoría:Sistemas de Información Geográfica Aplicados a la Ingeniería Civil|Sistemas de Información Geográfica Aplicados a la Ingeniería Civil]]|[[:Categoría:SIGAIC_23/24|2023-2024]] | Iker Leguizamón Salamanca&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Nadia Morón Pereira }}&lt;br /&gt;
&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
El objetivo de este proyecto es analizar las zonas verdes y los carriles bici en las ciudades&lt;br /&gt;
de Madrid, Vitoria, Sevilla, Valladolid, Zaragoza y Barcelona en relación con su población.&lt;br /&gt;
Un reconocido urbanista danés, Jan Gehl, introdujo una regla simple, conocida como la&lt;br /&gt;
regla 3-30-300, que nos ayuda a diseñar los espacios urbanos más habitables y sostenibles.&lt;br /&gt;
Esta regla consiste en que cada persona debería ver al menos 3 árboles desde su casa,&lt;br /&gt;
tener 30 % de cobertura vegetal en su barrio y estar a 300 metros de un parque decente.&lt;br /&gt;
Además, se sugiere que las ciudades tengan 50 metros cuadrados de superficie vegetal por&lt;br /&gt;
habitante.&lt;br /&gt;
Este proyecto tiene como objetivo verificar si estas grandes ciudades cumplen con los&lt;br /&gt;
criterios necesarios para ser consideradas ciudades verdes, un concepto que proporciona&lt;br /&gt;
beneficios para la salud física y mental, así como protección climática.&lt;br /&gt;
&lt;br /&gt;
===Objetivos de desarrollo sostenible=== &lt;br /&gt;
&lt;br /&gt;
El 25 de septiembre de 2015, los líderes mundiales adoptaron un conjunto de objetivos&lt;br /&gt;
globales para erradicar la pobreza, proteger el planeta y asegurar la prosperidad para todos&lt;br /&gt;
como parte de una nueva agenda de desarrollo sostenible. Cada objetivo tiene metas&lt;br /&gt;
específicas que deben alcanzarse en los próximos 15 años.&lt;br /&gt;
La Agenda plantea 17 objetivos con 169 metas de carácter integrado e indivisible que&lt;br /&gt;
abarcan las esferas económica, social y ambiental. Estos son conocidos como los objetivos&lt;br /&gt;
de desarrollo sostenible.&lt;br /&gt;
En palabras de los países firmantes del acuerdo: «Estamos resueltos a poner fin a la&lt;br /&gt;
pobreza y el hambre en todo el mundo de aquí a 2030, a combatir las desigualdades dentro&lt;br /&gt;
de los países y entre ellos, a construir sociedades pacíficas, justas e inclusivas, a proteger&lt;br /&gt;
los derechos humanos y promover la igualdad entre los géneros y el empoderamiento de las&lt;br /&gt;
mujeres y las niñas, y a garantizar una protección duradera del planeta y sus recursos&lt;br /&gt;
naturales”. Según la ONU, los Objetivos de desarrollo sostenible son el plan maestro para&lt;br /&gt;
conseguir un futuro sostenible para todos. Se interrelacionan entre sí e incorporan los&lt;br /&gt;
desafíos globales a los que nos enfrentamos día a día, como la pobreza, la desigualdad, el&lt;br /&gt;
clima, la degradación ambiental, la prosperidad, la paz y la justicia.&lt;br /&gt;
&lt;br /&gt;
==Metodología==&lt;br /&gt;
&lt;br /&gt;
En primer lugar, hemos partido del mapa de municipios de toda España de donde hemos&lt;br /&gt;
extraído los municipios de cada una de las ciudades estudiadas.&lt;br /&gt;
A continuación, usando el complemento de QuickOSM, hemos buscado las zonas verdes&lt;br /&gt;
introduciendo valores a Clave y Valor que podíamos encontrar en OpenStreetMaps (OSM).&lt;br /&gt;
Es importante que en el buscador seleccionemos “Or” y para la sección espacial de consulta&lt;br /&gt;
seleccionaremos la capa que creamos en el anterior paso.&lt;br /&gt;
&lt;br /&gt;
===Criterios utilizados para la valoración de las zonas verdes===&lt;br /&gt;
&lt;br /&gt;
-Ancho mínimo de la zona verde: 8 metros.&lt;br /&gt;
-Superficie mínima de la zona verde: 500 m².&lt;br /&gt;
-Unificación de superficies: Las superficies que se encuentren a menos de 5 metros entre ellas serán consideradas como una única zona verde.&lt;br /&gt;
-Sistema de valoración: Los elementos se han valorado de 1 a 10, siendo 10 la peor nota.&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=48044</id>
		<title>Grupo B12 Trabajo 5: Estudio de tensiones sobre una placa mediante diferenciación automática</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=48044"/>
				<updated>2021-12-10T20:44:43Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: /* Visualización del módulo del rotacional del campo desplazamiento */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Estudio de tensiones sobre una placa mediante diferenciación automática. Grupo B12 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC21/22|2021-2022]] | Víctor Sillero González&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Rodrigo Vázquez Pérez }}&lt;br /&gt;
&lt;br /&gt;
El trabajo correspondiente a este grupo es el número 5, en particular consiste en el estudio de temperaturas, deformaciones y tensiones sobre una placa compuesta de medio anillo circular.&lt;br /&gt;
La peculiaridad de este trabajo radica en que se ha realizado mediante diferenciación automática gracias a una librería realizada por los componentes del grupo.&lt;br /&gt;
Dicho programa ha sido realizado en el leguaje de programación &amp;quot;Julia&amp;quot;, y por ende todo el desarrollo ha sido realizado mediante dicho lenguaje.&lt;br /&gt;
&lt;br /&gt;
Todos los gráficos se han creado a partir de la librería Makie de Julia. Se ha creado una función con los estilos que queríamos usar que toma como input campos y funciones así como una lista de puntos y algunos parámetros de estilo y dibuja la gráfica correspondiente. Al ser tanto el programa para las gráficas como la librería de diferenciación automática demasiado largos para ser publicados en esta página se adjunta un link donde se pueden descargar y ver. Aunque todos las gráficas mostradas se han producido por métodos computacionales, también se han realizado los cálculos a mano para poder mostrar las ecuaciones de los campos y tensores calculados.&lt;br /&gt;
&lt;br /&gt;
La librería utilizada a lo largo de todo el trabajo queda adjunta en el anexo.&lt;br /&gt;
&lt;br /&gt;
En este caso los datos aportados por el enunciado han sido los siguientes:&lt;br /&gt;
* Placa plana que ocupa la mitad de un anillo circular centrado en el origen y comprendido entre los radios 1 y 2, en el plano y ≥ 0.&lt;br /&gt;
* Función temperatura en la placa: &amp;lt;math&amp;gt; T(x,y) = x^2 + (y-1)^2 &amp;lt;/math&amp;gt;.&lt;br /&gt;
* Campo de deformaciones: &amp;lt;math&amp;gt;\vec u(ρ,θ) = \frac{ρ}{10} sin(θ) + \frac{ρ}{5} cos(θ) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Julia Portada.png|400x300px|miniaturadeimagen|centro|Portada programa Julia]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
Este trabajo tiene como objetivo el estudio de las tensiones y fuerzas que producen desplazamientos y deformaciones en una placa, así como su campo de temperaturas a partir de un campo de desplazamientos y una función escalar de temperaturas. Además, se va a estudiar el cálculo de derivadas y operadores diferenciales mediante métodos computacionales.&lt;br /&gt;
&lt;br /&gt;
=== Diferenciación automática===&lt;br /&gt;
&lt;br /&gt;
====Métodos habituales: Aproximación numérica====&lt;br /&gt;
Normalmente cuando se quiere obtener el valor de la derivada de una función en un punto mediante un ordenador se realiza una aproximación a partir de la definición de derivada. &amp;lt;math&amp;gt; (f(x+h) - f(x)) / h &amp;lt;/math&amp;gt; dando un valor concreto lo menor posible para h.&lt;br /&gt;
Un ejemplo del método con la función &amp;lt;math&amp;gt; f(x) = x^2 &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; h = 10^{-10} &amp;lt;/math&amp;gt;  en  &amp;lt;math&amp;gt; x = 3 &amp;lt;/math&amp;gt; &lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
h = 10^-10&lt;br /&gt;
f(x) = x^2&lt;br /&gt;
derivada = (f(3+h) - f(3)) / h&lt;br /&gt;
}}&lt;br /&gt;
El resultado dado no es exactamente 6 pero se consiguen 6 decimales de precisión por lo que es una buena aproximación. Este algoritmo realiza 3 operaciones. Evaluar f en x + h, evaluar f en x y dividir todo ello entre h.&lt;br /&gt;
&lt;br /&gt;
Un problema del método es si se emplea una h demasiado pequeña puede dar problemas.&lt;br /&gt;
&lt;br /&gt;
Si se supera el número más pequeño que se puede expresar con el tipo de dato utilizado (Float64 en nuestro caso) el resultado mostrado será 0. Por lo tanto un manejo correcto de los valores de h es esencial y complica el método bastante.&lt;br /&gt;
&lt;br /&gt;
====Números duales====&lt;br /&gt;
El método empleado en este trabajo es exacto. No se realiza ninguna aproximación. Para ello es necesario definir un nuevo tipo de número distinto de los reales o los complejos, los números duales.&lt;br /&gt;
&lt;br /&gt;
Los números duales son números del tipo a + bε siendo a y b números reales o duales. &lt;br /&gt;
&lt;br /&gt;
Denominamos parte real al número a y parte derivada al número b.&lt;br /&gt;
&lt;br /&gt;
Además se define la siguiente propiedad. ε es distinto de 0 y &amp;lt;math&amp;gt; ε^2 = 0 &amp;lt;/math&amp;gt;. ε por lo tanto no es un número real.&lt;br /&gt;
&lt;br /&gt;
Las operaciones aritméticas básicas se definen de manera sencilla.&lt;br /&gt;
* Suma: &amp;lt;math&amp;gt;  (a + bε) + (c + dε) = (a + c) + (b + d)ε &amp;lt;/math&amp;gt; &lt;br /&gt;
* Producto &amp;lt;math&amp;gt; (a + bε) * (c + dε) = ac + (bc + ad)ε + (bd)^2 * ε^2&amp;lt;/math&amp;gt; , como &amp;lt;math&amp;gt;  ε^2 = 0 &amp;lt;/math&amp;gt; el resultado final es &amp;lt;math&amp;gt; (a + bε) * (c + dε) = ac + (bc + ad)ε&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
====Series de Taylor y números duales====&lt;br /&gt;
Sea f una función cualquiera y a un punto del dominio de f la serie de Taylor de f en el punto a es&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
f(x) = f(a) + \frac{f'(a)}{1!}(x-a) + \frac{f''(a)}{2!}(x-a)^{2} + ... = \sum_{i=0}^\infty \frac{f^{i}(a)}{i!}(x-a)^{i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
Si se evalúa la serie de Taylor de f en el valor dual x = a + ε se obtiene &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(a + ε) = f(a) + f'(a)ε + \frac{f''(a)}{2!}ε^{2} + ... &amp;lt;/math&amp;gt; y como &amp;lt;math&amp;gt; ε^{2} = 0 &amp;lt;/math&amp;gt; el resultado final es&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(a + ε) = f(a) + f'(a)ε &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La parte real de &amp;lt;math&amp;gt; f(a + ε) &amp;lt;/math&amp;gt; es f evaluado en a, es decir f(a) y la parte derivada de f(a + ε) es la derivada de f evaluada en a, es decir f'(a).&lt;br /&gt;
&lt;br /&gt;
====Cálculo de derivadas por números duales====&lt;br /&gt;
Gracias a las propiedades comentadas en la sección anterior podemos establecer un nuevo método esta vez exacto para calcular derivadas. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f'(a) = parte Derivada[f(a + ε)] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Este método consiste en únicamente una operación siendo no solamente exacto sino además más rápido que el método aproximado.&lt;br /&gt;
&lt;br /&gt;
====Programación====&lt;br /&gt;
En primer lugar se define un nuevo tipo de dato Dual, con las propiedades de parte real x y parte derivada ε.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
mutable struct Dual{T&amp;lt;:Real} &amp;lt;: Real &lt;br /&gt;
    x::T&lt;br /&gt;
    ϵ::T&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
Ahora se definen las operaciones básicas sobre el tipo de dato dual. Aquí se muestran algunas de ellas.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
#negación &lt;br /&gt;
Base.:-(a::Dual) = Dual(-1 * a.x, -1* a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#suma&lt;br /&gt;
Base.:+(a::Dual, b::Dual) = Dual(a.x + b.x, a.ϵ .+ b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#diferencia&lt;br /&gt;
Base.:-(a::Dual, b::Dual) = Dual(a.x - b.x, a.ϵ - b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#producto&lt;br /&gt;
Base.:*(a::Dual, b::Dual) = Dual(a.x * b.x, b.x * a.ϵ + a.x * b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#reciproco &lt;br /&gt;
recip = a::Dual -&amp;gt; Dual(1. / a.x, (-1* a.ϵ) / (a.x ^2))&lt;br /&gt;
&lt;br /&gt;
#cociente&lt;br /&gt;
Base.:/(a::Dual, b::Dual) = a * recip(b)&lt;br /&gt;
&lt;br /&gt;
#exponencial, potencia y raíz_cuadrada&lt;br /&gt;
Base.:exp(a::Dual) = exp(a.x) * Dual(1.,a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#logaritmo &lt;br /&gt;
Base.:log(a::Dual) = Dual(log(a.x), a.ϵ / a.x)&lt;br /&gt;
&lt;br /&gt;
#trigonometria&lt;br /&gt;
Base.:sin(d::Dual) = Dual(sin(d.x), d.ϵ * cos(d.x))&lt;br /&gt;
Base.:cos(d::Dual) = Dual(cos(d.x), - d.ϵ * sin(d.x))&lt;br /&gt;
}}&lt;br /&gt;
Y ya podríamos calcular derivadas. Por ejemplo creando la función f(x) = x^2 y evaluándola en el punto Dual(4, 1) se obtiene el número Dual(16, 8), 8 es la derivada de x^2 en el punto 4.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
f(x) = x^2 &lt;br /&gt;
f(Dual(4., 1.))&lt;br /&gt;
}}&lt;br /&gt;
A partir de este código se programa una librería capaz de calcular gradientes, divergencias y rotacionales de cualquier función. Además es capaz de trabajar en coordenadas cilíndricas esféricas y cartesianas.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo el tensor gradiente de una función u en un punto en la librería se calcula con el comando:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
u.grad(punto)&lt;br /&gt;
}}&lt;br /&gt;
Existen algoritmos más avanzados que hacen este proceso aún más rápido pero para cubrir nuestras necesidades la velocidad aportada por esta librería es suficiente.&lt;br /&gt;
&lt;br /&gt;
Para realizar el trabajo se define la placa, la función de temperaturas y el campo de desplazamientos y el programa crea todas las gráficas necesarias, por lo que nuestro programa es capaz de resolver cualquiera de los trabajos que se han planteado de manera instantánea.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
λ = 1&lt;br /&gt;
μ = 1&lt;br /&gt;
&lt;br /&gt;
rango = 0.1&lt;br /&gt;
&lt;br /&gt;
ρ_s = range(1, 2, 11) # discretización de variables&lt;br /&gt;
θ_s = range(0, pi, 32)&lt;br /&gt;
z_s = zeros(size(ρ_s))&lt;br /&gt;
&lt;br /&gt;
#campo de temperaturas&lt;br /&gt;
t = x -&amp;gt; x[1]^2 +(x[2] - 1)^2 #cartesianas&lt;br /&gt;
&lt;br /&gt;
T = funcion_escalar(t, tipo = 1)&lt;br /&gt;
&lt;br /&gt;
u = funcion_vectorial(x -&amp;gt; [(x[1] / 10) * sin(x[2]), (x[1] / 5) * cos(x[2]), 0], tipo = 2) # cilíndricas&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Dibujo del mallado==&lt;br /&gt;
&lt;br /&gt;
En primer lugar es necesario dibujar la placa que se va a estudiar. &lt;br /&gt;
La placa se define en coordenadas cilíndricas (base física cilíndrica) con la siguiente parametrización: &amp;lt;math&amp;gt; ρ = u -&amp;gt; [0,2] ; θ = v -&amp;gt; [0, π]; z = 0&amp;lt;/math&amp;gt;. &lt;br /&gt;
En el caso de que la placa fuese más compleja, nuestro programa también aceptaría definirla mediante una función que tomando un punto como entrada, devuelva 1 o 0 dependiendo de si dicho punto se encuentra en la placa o no.&lt;br /&gt;
&lt;br /&gt;
Los ejes tomados para dibujar las gráficas han sido [−2, 2] × [0, 2] y se ha dibujado un mallado con el comando &amp;quot;wireframe&amp;quot;.&lt;br /&gt;
Por otra parte, el muestreo utilizado ha sido &amp;lt;math&amp;gt;h= \frac{1}{10}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Placa Nuestra.jpg|400x300px|miniaturadeimagen|centro|Placa representada]]&lt;br /&gt;
&lt;br /&gt;
==Campo de las temperaturas en la placa==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Dibujo de las curvas de nivel===&lt;br /&gt;
Una vez definida la función temperatura T(x,y) en cartesianas, una parametrización para la placa y habiendo elegido el número de curvas a representar, (20), mediante la función &amp;quot;contour&amp;quot; se han dibujado las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Curvas Temperatura.jpg|400x300px|miniaturadeimagen|centro|Curvas de nivel de la Temperatura]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Máximo de temperatura===&lt;br /&gt;
Para obtener el máximo de la temperatura con precisión la función &amp;quot;dibujar2D&amp;quot; que empleamos para dibujar las gráficas devuelve el mayor valor e indica dicho punto mediante un aspa roja.&lt;br /&gt;
&lt;br /&gt;
===Dibujo del gradiente como campo vectorial (&amp;lt;math&amp;gt; \nabla &amp;lt;/math&amp;gt;T)===&lt;br /&gt;
De la función de la temperatura dada, se ha obtenido el gradiente: &amp;lt;math&amp;gt; 2x \vec i + 2 (y - 1) \vec j &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dibujado junto a las curvas de nivel, se observa fácilmente la perpendicularidad entre dichas curvas y los vectores representados.&lt;br /&gt;
Esto tiene sentido puesto que el gradiente indica la dirección de mayor crecimiento mientras que su perpendicular indica el crecimiento nulo. &lt;br /&gt;
Esta última dirección es, por tanto, tangente a las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Gradiente Nuestro.jpg|400x300px|miniaturadeimagen|centro|Gradiente]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tensiones y fuerzas==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Posición inicial y final de la placa===&lt;br /&gt;
Como punto de partida se dibuja la posición inicial y final de la placa. &lt;br /&gt;
Los puntos de la posición final se han calculado sumando a cada punto de la placa inicial su vector desplazamiento dado por la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt;. &lt;br /&gt;
Además, restando a la placa final la media de los desplazamientos en todos los puntos se ha obtenido una gráfica que muestra únicamente las deformaciones que la placa experimenta.&lt;br /&gt;
De esta forma, permite ver que la placa final está achatada y deja de ser circular.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación placa inicial y final con deformación sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Comparación de la placa inicial y final con deformación de la placa sin desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El objetivo final es conocer el campo de fuerzas que ha producido este desplazamiento. &lt;br /&gt;
Para ello a partir del campo de desplazamientos se calculan las tensiones que experimenta la placa y a partir de éstas, el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
===Representación del campo vectorial de desplazamientos===&lt;br /&gt;
Tras definir la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt; en el código, y mediante el uso de la función &amp;quot;arrows&amp;quot; (gracias a que el campo no dispone de componente vertical), se obtiene la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
===Divergencia y rotacional===&lt;br /&gt;
Calcular la divergencia y el rotacional del campo de desplazamientos es de gran utilidad, ya que estos aportan información muy valiosa sobre las características de la deformación que experimenta la placa. &lt;br /&gt;
&lt;br /&gt;
El rotacional mide cuánto rotan los puntos de la placa. Su módulo cuantifica la rotación, mientras que su dirección y sentido dan el eje de rotación.&lt;br /&gt;
La divergencia en cambio, mide cuánto cambia el área en un entrono de cada punto. &lt;br /&gt;
&lt;br /&gt;
La deformación de un entorno de un punto de la placa, no su desplazamiento, es por lo tanto la rotación y el cambio de tamaño de ese entorno. &lt;br /&gt;
&lt;br /&gt;
Para tener una mejor intuición de lo que esto significa, se ha dibujado el módulo del rotacional y la divergencia de una rotación de ángulo π/2, una homotecia de la placa del factor 2 y un desplazamiento sin deformación de dirección 2 &amp;lt;math&amp;gt; \vec i &amp;lt;/math&amp;gt;. En el desplazamiento como no hay deformación, el rotacional y la divergencia deben valer cero. &lt;br /&gt;
El rotacional es mayor que cero e igual en todos los puntos y la divergencia es cero. Esto se debe a que todos los puntos rotan por igual (π/2) y su área no cambia. En la homotecia por el factor 2, el rotacional debe ser nulo y la divergencia 4, ya que cada lado se duplica produciendo una cuadruplicación del área.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación 2.jpg|400x300px|miniaturadeimagen|centro|Explicación divergencia y rotacional]]&lt;br /&gt;
&lt;br /&gt;
====Divergencia del campo desplazamientos====&lt;br /&gt;
Calculando la divergencia de forma manual y con diferenciación automática, se ha concluido que esta es nula en cualquier punto: &amp;lt;math&amp;gt; ∇ ⋅ \vec u =  \frac{1}{ρ} [\frac{δ}{δρ} (ρ (\frac{ρ}{10} sen θ)) + \frac{δ}{δθ} (\frac{ρ}{5} cos θ) + \frac{δ}{δz} (ρ 0)] = 0 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lo que indica la divergencia es la variación del diferencial de área. En este caso concreto en que es nula, se puede apreciar en la gráfica del punto anterior como aunque los cuadrados del mallado de la placa puedan ser deformados mantienen el mismo tamaño, es decir, ni se dilatan ni se contraen.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Divergencia Nuestra.jpg|400x300px|miniaturadeimagen|centro|Divergencia del campo]]&lt;br /&gt;
&lt;br /&gt;
====Visualización del módulo del rotacional del campo desplazamientos====&lt;br /&gt;
Mediante el cálculo manual se ha obtenido el siguiente rotacional: &amp;lt;math&amp;gt; V × \vec u = \frac{1}{ρ} \left| \begin{matrix} \vec e_ρ &amp;amp; ρ \vec e_θ &amp;amp; \vec e_z \\ \frac{δ}{δρ} &amp;amp; \frac{δ}{δθ} &amp;amp; \frac{δ}{δz} \\ \frac{ρ}{10} sen θ &amp;amp; ρ \frac{ρ}{5} cos θ &amp;amp; 0 \end{matrix} \right| = \frac{3}{10} cos(θ) \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto su módulo es: &amp;lt;math&amp;gt; |V × \vec u| = |\frac{3}{10} cos(θ)| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El resultado de representarlo sobre el plano XY es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Rotacional nuestro.jpg|400x300px|miniaturadeimagen|centro|Rotacional del campo desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El rotacional indica el giro experimentado por la placa en su deformación, lo que se puede apreciar en la representación anterior y teniendo en cuenta el punto 4.3.&lt;br /&gt;
Así, los extremos de la placa, que experimentan un giro, tienen el mayor valor del rotacional. &lt;br /&gt;
Cabe decir que estos valores tendrán signo contrario, pues los giros son opuestos.&lt;br /&gt;
Esto no se tiene en consideración para la representación gráfica, pues en ella buscamos el módulo del rotacional, que siempre es positivo.&lt;br /&gt;
&lt;br /&gt;
===Tensor de tensiones===&lt;br /&gt;
En este apartado, sabiendo que nos encontramos en un medio lineal, isótropo y homogéneo (así lo indica el enunciado), la función del tensor de tensiones viene descrita de la siguiente forma: &amp;lt;math&amp;gt; σ = λ ∇ ⋅ \vec u 1 + 2 μ ε &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En dicha fórmula conocemos que los Coeficientes de Lamé (λ y μ) que dependen de las propiedades elásticas de cada material. Tomando en este caso que ambos son 1.&lt;br /&gt;
&lt;br /&gt;
La parte simétrica del tensor gradiente del campo  de deplazamientos, queda también definida de la siguiente manera: &amp;lt;math&amp;gt; ε(\vec u) = \frac{∇ \vec u + ∇ \vec u ^t}{2} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
De forma manual se ha obtenido que el gradiente del campo es &amp;lt;math&amp;gt; ∇ \vec u(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; - \frac{ρ}{10} cos θ &amp;amp; 0 \\ \frac{1}{5} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto, la matriz traspuesta del gradiente del campo es: &amp;lt;math&amp;gt; ∇ \vec u^t(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; \frac{1}{5} cos θ &amp;amp; 0 \\ - \frac{ρ}{10} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Resolviendo la parte simétrica del tensor gradiente de forma manual, se obtiene como resultado: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; cos θ (\frac{1}{10} - \frac{ρ}{20} ) &amp;amp; 0 \\ cos θ (\frac{1}{10} - \frac{ρ}{20}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De esta forma, se concluye que el tensor de tensiones viene representado de la siguiente forma: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{5} sen θ &amp;amp; cos θ (\frac{1}{5} - \frac{ρ}{10} ) &amp;amp; 0 \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Representación de las tensiones normales====&lt;br /&gt;
[[Archivo:Tensiones comparación.jpg|400x300px|miniaturadeimagen|centro|Representación de las tensiones normales]]&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_ρ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_ρ ⋅ σ ⋅ \vec e_ρ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; \frac {1}{5} sen θ \vec e_ρ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_θ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_θ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_θ ⋅ σ ⋅ \vec e_θ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_z, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt;  \vec e_z ⋅ σ ⋅ \vec e_z &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; 0 \vec e_z &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Tensiones tangenciales respecto al plano ortogonal a &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;====&lt;br /&gt;
En este caso, simplemente se ha aplicado la fórmula correspondiente que es la siguiente: &amp;lt;math&amp;gt; |σ ⋅ \vec e_ρ - \vec e_ρ ⋅ σ ⋅ \vec e_ρ| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Desarrollando la fórmula: &amp;lt;math&amp;gt; \begin{pmatrix} \frac{1}{5} sen θ \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) \\ 0 \end{pmatrix} - \begin{pmatrix} \frac {1}{5} sen θ \\ 0 \\ 0 \end{pmatrix} =  cos θ (\frac {1}{5} - \frac {ρ}{10}) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación Tensiones tangenciales.jpg|400x300px|miniaturadeimagen|centro|Comparación Tensiones tangenciales]]&lt;br /&gt;
&lt;br /&gt;
===Tensión de Von Mises===&lt;br /&gt;
La tensión de Von Mises viene determinada por la fórmula: &amp;lt;math&amp;gt; σ_{VM} = \sqrt{\frac{(\vec σ_1 - \vec σ_2)^2 + (\vec σ_2 - \vec σ_3)^2 + (\vec σ_3 - \vec σ_1)^2}{2}} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Puesto que cada punto de la placa lleva asociado un tensor de la tensión, siendo  &amp;lt;math&amp;gt; \vec σ_1, \vec σ_2, \vec σ_3;  &amp;lt;/math&amp;gt; los autovalores de dicha matriz, se debe ir punto a punto calculándolos, por tanto es necesario un bucle que rellene una matriz con los valores de la tensión Von Mises para cada punto. &lt;br /&gt;
&lt;br /&gt;
La tensión de Von Mises muestra los puntos donde se produciría la rotura de la placa. En este caso rompería la parte superior de la placa.&lt;br /&gt;
&lt;br /&gt;
La representación es la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tensión Von Mises.jpg|400x300px|miniaturadeimagen|centro|Tensión Von Mises]]&lt;br /&gt;
&lt;br /&gt;
===Fuerza causante del desplazamiento===&lt;br /&gt;
Conociendo que la placa viene deformada por la función vectorial dada, se puede obtener la fuerza que motiva el desplazamiento. Esa viene definida por: &amp;lt;math&amp;gt; \vec F = - \nabla ⋅ \vec u &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El resultado de la fuerza obtenido manualmente es el descrito a continuación: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_ρ + \frac {1}{5} (\frac {1}{ρ} - 2) cos θ \vec e_θ &amp;lt;/math&amp;gt;. La componente según &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt; es nula.&lt;br /&gt;
&lt;br /&gt;
Calculado por diferenciación automática queda la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas]]&lt;br /&gt;
&lt;br /&gt;
Si de dibuja el campo de fuerzas y la las posiciones inicial y final no queda del todo claro que éste sea el campo que motiva el desplazamiento y la deformación de la placa. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas y desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de Fuerzas y desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
Si se dibuja la resultante de las fuerzas el desplazamiento de la placa queda explicado, mientras que dibujando únicamente la placa final deformada, sin considerar el desplazamiento y el campo de fuerzas, se pueden apreciar claramente que deformaciones como el achatamiento de la forma circular de la placa son causadas por el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Desplazamiento y resultante concampo de fuerzas sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas, desplazamiento y deformación de la placa]]&lt;br /&gt;
&lt;br /&gt;
==Anexo==&lt;br /&gt;
En este enlace se puede descargar el código que se ha empleado. Para que funcione es necesario tener instalado Julia y las librerías Makie y LinearAlgebra.&lt;br /&gt;
https://drive.google.com/drive/folders/1aeOkuIzscmac7BiWYsRidg_zSQZc8gfB?usp=sharing&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Teoría de Campos]][[Categoría:TC21/22]]&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=48043</id>
		<title>Grupo B12 Trabajo 5: Estudio de tensiones sobre una placa mediante diferenciación automática</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=48043"/>
				<updated>2021-12-10T20:44:17Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: /* Tensiones tangenciales respecto al plano ortogonal  \vec e_ρ  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Estudio de tensiones sobre una placa mediante diferenciación automática. Grupo B12 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC21/22|2021-2022]] | Víctor Sillero González&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Rodrigo Vázquez Pérez }}&lt;br /&gt;
&lt;br /&gt;
El trabajo correspondiente a este grupo es el número 5, en particular consiste en el estudio de temperaturas, deformaciones y tensiones sobre una placa compuesta de medio anillo circular.&lt;br /&gt;
La peculiaridad de este trabajo radica en que se ha realizado mediante diferenciación automática gracias a una librería realizada por los componentes del grupo.&lt;br /&gt;
Dicho programa ha sido realizado en el leguaje de programación &amp;quot;Julia&amp;quot;, y por ende todo el desarrollo ha sido realizado mediante dicho lenguaje.&lt;br /&gt;
&lt;br /&gt;
Todos los gráficos se han creado a partir de la librería Makie de Julia. Se ha creado una función con los estilos que queríamos usar que toma como input campos y funciones así como una lista de puntos y algunos parámetros de estilo y dibuja la gráfica correspondiente. Al ser tanto el programa para las gráficas como la librería de diferenciación automática demasiado largos para ser publicados en esta página se adjunta un link donde se pueden descargar y ver. Aunque todos las gráficas mostradas se han producido por métodos computacionales, también se han realizado los cálculos a mano para poder mostrar las ecuaciones de los campos y tensores calculados.&lt;br /&gt;
&lt;br /&gt;
La librería utilizada a lo largo de todo el trabajo queda adjunta en el anexo.&lt;br /&gt;
&lt;br /&gt;
En este caso los datos aportados por el enunciado han sido los siguientes:&lt;br /&gt;
* Placa plana que ocupa la mitad de un anillo circular centrado en el origen y comprendido entre los radios 1 y 2, en el plano y ≥ 0.&lt;br /&gt;
* Función temperatura en la placa: &amp;lt;math&amp;gt; T(x,y) = x^2 + (y-1)^2 &amp;lt;/math&amp;gt;.&lt;br /&gt;
* Campo de deformaciones: &amp;lt;math&amp;gt;\vec u(ρ,θ) = \frac{ρ}{10} sin(θ) + \frac{ρ}{5} cos(θ) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Julia Portada.png|400x300px|miniaturadeimagen|centro|Portada programa Julia]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
Este trabajo tiene como objetivo el estudio de las tensiones y fuerzas que producen desplazamientos y deformaciones en una placa, así como su campo de temperaturas a partir de un campo de desplazamientos y una función escalar de temperaturas. Además, se va a estudiar el cálculo de derivadas y operadores diferenciales mediante métodos computacionales.&lt;br /&gt;
&lt;br /&gt;
=== Diferenciación automática===&lt;br /&gt;
&lt;br /&gt;
====Métodos habituales: Aproximación numérica====&lt;br /&gt;
Normalmente cuando se quiere obtener el valor de la derivada de una función en un punto mediante un ordenador se realiza una aproximación a partir de la definición de derivada. &amp;lt;math&amp;gt; (f(x+h) - f(x)) / h &amp;lt;/math&amp;gt; dando un valor concreto lo menor posible para h.&lt;br /&gt;
Un ejemplo del método con la función &amp;lt;math&amp;gt; f(x) = x^2 &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; h = 10^{-10} &amp;lt;/math&amp;gt;  en  &amp;lt;math&amp;gt; x = 3 &amp;lt;/math&amp;gt; &lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
h = 10^-10&lt;br /&gt;
f(x) = x^2&lt;br /&gt;
derivada = (f(3+h) - f(3)) / h&lt;br /&gt;
}}&lt;br /&gt;
El resultado dado no es exactamente 6 pero se consiguen 6 decimales de precisión por lo que es una buena aproximación. Este algoritmo realiza 3 operaciones. Evaluar f en x + h, evaluar f en x y dividir todo ello entre h.&lt;br /&gt;
&lt;br /&gt;
Un problema del método es si se emplea una h demasiado pequeña puede dar problemas.&lt;br /&gt;
&lt;br /&gt;
Si se supera el número más pequeño que se puede expresar con el tipo de dato utilizado (Float64 en nuestro caso) el resultado mostrado será 0. Por lo tanto un manejo correcto de los valores de h es esencial y complica el método bastante.&lt;br /&gt;
&lt;br /&gt;
====Números duales====&lt;br /&gt;
El método empleado en este trabajo es exacto. No se realiza ninguna aproximación. Para ello es necesario definir un nuevo tipo de número distinto de los reales o los complejos, los números duales.&lt;br /&gt;
&lt;br /&gt;
Los números duales son números del tipo a + bε siendo a y b números reales o duales. &lt;br /&gt;
&lt;br /&gt;
Denominamos parte real al número a y parte derivada al número b.&lt;br /&gt;
&lt;br /&gt;
Además se define la siguiente propiedad. ε es distinto de 0 y &amp;lt;math&amp;gt; ε^2 = 0 &amp;lt;/math&amp;gt;. ε por lo tanto no es un número real.&lt;br /&gt;
&lt;br /&gt;
Las operaciones aritméticas básicas se definen de manera sencilla.&lt;br /&gt;
* Suma: &amp;lt;math&amp;gt;  (a + bε) + (c + dε) = (a + c) + (b + d)ε &amp;lt;/math&amp;gt; &lt;br /&gt;
* Producto &amp;lt;math&amp;gt; (a + bε) * (c + dε) = ac + (bc + ad)ε + (bd)^2 * ε^2&amp;lt;/math&amp;gt; , como &amp;lt;math&amp;gt;  ε^2 = 0 &amp;lt;/math&amp;gt; el resultado final es &amp;lt;math&amp;gt; (a + bε) * (c + dε) = ac + (bc + ad)ε&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
====Series de Taylor y números duales====&lt;br /&gt;
Sea f una función cualquiera y a un punto del dominio de f la serie de Taylor de f en el punto a es&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
f(x) = f(a) + \frac{f'(a)}{1!}(x-a) + \frac{f''(a)}{2!}(x-a)^{2} + ... = \sum_{i=0}^\infty \frac{f^{i}(a)}{i!}(x-a)^{i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
Si se evalúa la serie de Taylor de f en el valor dual x = a + ε se obtiene &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(a + ε) = f(a) + f'(a)ε + \frac{f''(a)}{2!}ε^{2} + ... &amp;lt;/math&amp;gt; y como &amp;lt;math&amp;gt; ε^{2} = 0 &amp;lt;/math&amp;gt; el resultado final es&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(a + ε) = f(a) + f'(a)ε &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La parte real de &amp;lt;math&amp;gt; f(a + ε) &amp;lt;/math&amp;gt; es f evaluado en a, es decir f(a) y la parte derivada de f(a + ε) es la derivada de f evaluada en a, es decir f'(a).&lt;br /&gt;
&lt;br /&gt;
====Cálculo de derivadas por números duales====&lt;br /&gt;
Gracias a las propiedades comentadas en la sección anterior podemos establecer un nuevo método esta vez exacto para calcular derivadas. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f'(a) = parte Derivada[f(a + ε)] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Este método consiste en únicamente una operación siendo no solamente exacto sino además más rápido que el método aproximado.&lt;br /&gt;
&lt;br /&gt;
====Programación====&lt;br /&gt;
En primer lugar se define un nuevo tipo de dato Dual, con las propiedades de parte real x y parte derivada ε.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
mutable struct Dual{T&amp;lt;:Real} &amp;lt;: Real &lt;br /&gt;
    x::T&lt;br /&gt;
    ϵ::T&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
Ahora se definen las operaciones básicas sobre el tipo de dato dual. Aquí se muestran algunas de ellas.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
#negación &lt;br /&gt;
Base.:-(a::Dual) = Dual(-1 * a.x, -1* a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#suma&lt;br /&gt;
Base.:+(a::Dual, b::Dual) = Dual(a.x + b.x, a.ϵ .+ b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#diferencia&lt;br /&gt;
Base.:-(a::Dual, b::Dual) = Dual(a.x - b.x, a.ϵ - b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#producto&lt;br /&gt;
Base.:*(a::Dual, b::Dual) = Dual(a.x * b.x, b.x * a.ϵ + a.x * b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#reciproco &lt;br /&gt;
recip = a::Dual -&amp;gt; Dual(1. / a.x, (-1* a.ϵ) / (a.x ^2))&lt;br /&gt;
&lt;br /&gt;
#cociente&lt;br /&gt;
Base.:/(a::Dual, b::Dual) = a * recip(b)&lt;br /&gt;
&lt;br /&gt;
#exponencial, potencia y raíz_cuadrada&lt;br /&gt;
Base.:exp(a::Dual) = exp(a.x) * Dual(1.,a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#logaritmo &lt;br /&gt;
Base.:log(a::Dual) = Dual(log(a.x), a.ϵ / a.x)&lt;br /&gt;
&lt;br /&gt;
#trigonometria&lt;br /&gt;
Base.:sin(d::Dual) = Dual(sin(d.x), d.ϵ * cos(d.x))&lt;br /&gt;
Base.:cos(d::Dual) = Dual(cos(d.x), - d.ϵ * sin(d.x))&lt;br /&gt;
}}&lt;br /&gt;
Y ya podríamos calcular derivadas. Por ejemplo creando la función f(x) = x^2 y evaluándola en el punto Dual(4, 1) se obtiene el número Dual(16, 8), 8 es la derivada de x^2 en el punto 4.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
f(x) = x^2 &lt;br /&gt;
f(Dual(4., 1.))&lt;br /&gt;
}}&lt;br /&gt;
A partir de este código se programa una librería capaz de calcular gradientes, divergencias y rotacionales de cualquier función. Además es capaz de trabajar en coordenadas cilíndricas esféricas y cartesianas.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo el tensor gradiente de una función u en un punto en la librería se calcula con el comando:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
u.grad(punto)&lt;br /&gt;
}}&lt;br /&gt;
Existen algoritmos más avanzados que hacen este proceso aún más rápido pero para cubrir nuestras necesidades la velocidad aportada por esta librería es suficiente.&lt;br /&gt;
&lt;br /&gt;
Para realizar el trabajo se define la placa, la función de temperaturas y el campo de desplazamientos y el programa crea todas las gráficas necesarias, por lo que nuestro programa es capaz de resolver cualquiera de los trabajos que se han planteado de manera instantánea.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
λ = 1&lt;br /&gt;
μ = 1&lt;br /&gt;
&lt;br /&gt;
rango = 0.1&lt;br /&gt;
&lt;br /&gt;
ρ_s = range(1, 2, 11) # discretización de variables&lt;br /&gt;
θ_s = range(0, pi, 32)&lt;br /&gt;
z_s = zeros(size(ρ_s))&lt;br /&gt;
&lt;br /&gt;
#campo de temperaturas&lt;br /&gt;
t = x -&amp;gt; x[1]^2 +(x[2] - 1)^2 #cartesianas&lt;br /&gt;
&lt;br /&gt;
T = funcion_escalar(t, tipo = 1)&lt;br /&gt;
&lt;br /&gt;
u = funcion_vectorial(x -&amp;gt; [(x[1] / 10) * sin(x[2]), (x[1] / 5) * cos(x[2]), 0], tipo = 2) # cilíndricas&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Dibujo del mallado==&lt;br /&gt;
&lt;br /&gt;
En primer lugar es necesario dibujar la placa que se va a estudiar. &lt;br /&gt;
La placa se define en coordenadas cilíndricas (base física cilíndrica) con la siguiente parametrización: &amp;lt;math&amp;gt; ρ = u -&amp;gt; [0,2] ; θ = v -&amp;gt; [0, π]; z = 0&amp;lt;/math&amp;gt;. &lt;br /&gt;
En el caso de que la placa fuese más compleja, nuestro programa también aceptaría definirla mediante una función que tomando un punto como entrada, devuelva 1 o 0 dependiendo de si dicho punto se encuentra en la placa o no.&lt;br /&gt;
&lt;br /&gt;
Los ejes tomados para dibujar las gráficas han sido [−2, 2] × [0, 2] y se ha dibujado un mallado con el comando &amp;quot;wireframe&amp;quot;.&lt;br /&gt;
Por otra parte, el muestreo utilizado ha sido &amp;lt;math&amp;gt;h= \frac{1}{10}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Placa Nuestra.jpg|400x300px|miniaturadeimagen|centro|Placa representada]]&lt;br /&gt;
&lt;br /&gt;
==Campo de las temperaturas en la placa==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Dibujo de las curvas de nivel===&lt;br /&gt;
Una vez definida la función temperatura T(x,y) en cartesianas, una parametrización para la placa y habiendo elegido el número de curvas a representar, (20), mediante la función &amp;quot;contour&amp;quot; se han dibujado las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Curvas Temperatura.jpg|400x300px|miniaturadeimagen|centro|Curvas de nivel de la Temperatura]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Máximo de temperatura===&lt;br /&gt;
Para obtener el máximo de la temperatura con precisión la función &amp;quot;dibujar2D&amp;quot; que empleamos para dibujar las gráficas devuelve el mayor valor e indica dicho punto mediante un aspa roja.&lt;br /&gt;
&lt;br /&gt;
===Dibujo del gradiente como campo vectorial (&amp;lt;math&amp;gt; \nabla &amp;lt;/math&amp;gt;T)===&lt;br /&gt;
De la función de la temperatura dada, se ha obtenido el gradiente: &amp;lt;math&amp;gt; 2x \vec i + 2 (y - 1) \vec j &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dibujado junto a las curvas de nivel, se observa fácilmente la perpendicularidad entre dichas curvas y los vectores representados.&lt;br /&gt;
Esto tiene sentido puesto que el gradiente indica la dirección de mayor crecimiento mientras que su perpendicular indica el crecimiento nulo. &lt;br /&gt;
Esta última dirección es, por tanto, tangente a las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Gradiente Nuestro.jpg|400x300px|miniaturadeimagen|centro|Gradiente]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tensiones y fuerzas==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Posición inicial y final de la placa===&lt;br /&gt;
Como punto de partida se dibuja la posición inicial y final de la placa. &lt;br /&gt;
Los puntos de la posición final se han calculado sumando a cada punto de la placa inicial su vector desplazamiento dado por la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt;. &lt;br /&gt;
Además, restando a la placa final la media de los desplazamientos en todos los puntos se ha obtenido una gráfica que muestra únicamente las deformaciones que la placa experimenta.&lt;br /&gt;
De esta forma, permite ver que la placa final está achatada y deja de ser circular.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación placa inicial y final con deformación sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Comparación de la placa inicial y final con deformación de la placa sin desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El objetivo final es conocer el campo de fuerzas que ha producido este desplazamiento. &lt;br /&gt;
Para ello a partir del campo de desplazamientos se calculan las tensiones que experimenta la placa y a partir de éstas, el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
===Representación del campo vectorial de desplazamientos===&lt;br /&gt;
Tras definir la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt; en el código, y mediante el uso de la función &amp;quot;arrows&amp;quot; (gracias a que el campo no dispone de componente vertical), se obtiene la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
===Divergencia y rotacional===&lt;br /&gt;
Calcular la divergencia y el rotacional del campo de desplazamientos es de gran utilidad, ya que estos aportan información muy valiosa sobre las características de la deformación que experimenta la placa. &lt;br /&gt;
&lt;br /&gt;
El rotacional mide cuánto rotan los puntos de la placa. Su módulo cuantifica la rotación, mientras que su dirección y sentido dan el eje de rotación.&lt;br /&gt;
La divergencia en cambio, mide cuánto cambia el área en un entrono de cada punto. &lt;br /&gt;
&lt;br /&gt;
La deformación de un entorno de un punto de la placa, no su desplazamiento, es por lo tanto la rotación y el cambio de tamaño de ese entorno. &lt;br /&gt;
&lt;br /&gt;
Para tener una mejor intuición de lo que esto significa, se ha dibujado el módulo del rotacional y la divergencia de una rotación de ángulo π/2, una homotecia de la placa del factor 2 y un desplazamiento sin deformación de dirección 2 &amp;lt;math&amp;gt; \vec i &amp;lt;/math&amp;gt;. En el desplazamiento como no hay deformación, el rotacional y la divergencia deben valer cero. &lt;br /&gt;
El rotacional es mayor que cero e igual en todos los puntos y la divergencia es cero. Esto se debe a que todos los puntos rotan por igual (π/2) y su área no cambia. En la homotecia por el factor 2, el rotacional debe ser nulo y la divergencia 4, ya que cada lado se duplica produciendo una cuadruplicación del área.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación 2.jpg|400x300px|miniaturadeimagen|centro|Explicación divergencia y rotacional]]&lt;br /&gt;
&lt;br /&gt;
====Divergencia del campo desplazamientos====&lt;br /&gt;
Calculando la divergencia de forma manual y con diferenciación automática, se ha concluido que esta es nula en cualquier punto: &amp;lt;math&amp;gt; ∇ ⋅ \vec u =  \frac{1}{ρ} [\frac{δ}{δρ} (ρ (\frac{ρ}{10} sen θ)) + \frac{δ}{δθ} (\frac{ρ}{5} cos θ) + \frac{δ}{δz} (ρ 0)] = 0 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lo que indica la divergencia es la variación del diferencial de área. En este caso concreto en que es nula, se puede apreciar en la gráfica del punto anterior como aunque los cuadrados del mallado de la placa puedan ser deformados mantienen el mismo tamaño, es decir, ni se dilatan ni se contraen.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Divergencia Nuestra.jpg|400x300px|miniaturadeimagen|centro|Divergencia del campo]]&lt;br /&gt;
&lt;br /&gt;
====Visualización del módulo del rotacional del campo desplazamiento====&lt;br /&gt;
Mediante el cálculo manual se ha obtenido el siguiente rotacional: &amp;lt;math&amp;gt; V × \vec u = \frac{1}{ρ} \left| \begin{matrix} \vec e_ρ &amp;amp; ρ \vec e_θ &amp;amp; \vec e_z \\ \frac{δ}{δρ} &amp;amp; \frac{δ}{δθ} &amp;amp; \frac{δ}{δz} \\ \frac{ρ}{10} sen θ &amp;amp; ρ \frac{ρ}{5} cos θ &amp;amp; 0 \end{matrix} \right| = \frac{3}{10} cos(θ) \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto su módulo es: &amp;lt;math&amp;gt; |V × \vec u| = |\frac{3}{10} cos(θ)| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El resultado de representarlo sobre el plano XY es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Rotacional nuestro.jpg|400x300px|miniaturadeimagen|centro|Rotacional del campo desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El rotacional indica el giro experimentado por la placa en su deformación, lo que se puede apreciar en la representación anterior y teniendo en cuenta el punto 4.3.&lt;br /&gt;
Así, los extremos de la placa, que experimentan un giro, tienen el mayor valor del rotacional. &lt;br /&gt;
Cabe decir que estos valores tendrán signo contrario, pues los giros son opuestos.&lt;br /&gt;
Esto no se tiene en consideración para la representación gráfica, pues en ella buscamos el módulo del rotacional, que siempre es positivo.&lt;br /&gt;
&lt;br /&gt;
===Tensor de tensiones===&lt;br /&gt;
En este apartado, sabiendo que nos encontramos en un medio lineal, isótropo y homogéneo (así lo indica el enunciado), la función del tensor de tensiones viene descrita de la siguiente forma: &amp;lt;math&amp;gt; σ = λ ∇ ⋅ \vec u 1 + 2 μ ε &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En dicha fórmula conocemos que los Coeficientes de Lamé (λ y μ) que dependen de las propiedades elásticas de cada material. Tomando en este caso que ambos son 1.&lt;br /&gt;
&lt;br /&gt;
La parte simétrica del tensor gradiente del campo  de deplazamientos, queda también definida de la siguiente manera: &amp;lt;math&amp;gt; ε(\vec u) = \frac{∇ \vec u + ∇ \vec u ^t}{2} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
De forma manual se ha obtenido que el gradiente del campo es &amp;lt;math&amp;gt; ∇ \vec u(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; - \frac{ρ}{10} cos θ &amp;amp; 0 \\ \frac{1}{5} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto, la matriz traspuesta del gradiente del campo es: &amp;lt;math&amp;gt; ∇ \vec u^t(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; \frac{1}{5} cos θ &amp;amp; 0 \\ - \frac{ρ}{10} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Resolviendo la parte simétrica del tensor gradiente de forma manual, se obtiene como resultado: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; cos θ (\frac{1}{10} - \frac{ρ}{20} ) &amp;amp; 0 \\ cos θ (\frac{1}{10} - \frac{ρ}{20}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De esta forma, se concluye que el tensor de tensiones viene representado de la siguiente forma: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{5} sen θ &amp;amp; cos θ (\frac{1}{5} - \frac{ρ}{10} ) &amp;amp; 0 \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Representación de las tensiones normales====&lt;br /&gt;
[[Archivo:Tensiones comparación.jpg|400x300px|miniaturadeimagen|centro|Representación de las tensiones normales]]&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_ρ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_ρ ⋅ σ ⋅ \vec e_ρ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; \frac {1}{5} sen θ \vec e_ρ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_θ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_θ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_θ ⋅ σ ⋅ \vec e_θ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_z, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt;  \vec e_z ⋅ σ ⋅ \vec e_z &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; 0 \vec e_z &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Tensiones tangenciales respecto al plano ortogonal a &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;====&lt;br /&gt;
En este caso, simplemente se ha aplicado la fórmula correspondiente que es la siguiente: &amp;lt;math&amp;gt; |σ ⋅ \vec e_ρ - \vec e_ρ ⋅ σ ⋅ \vec e_ρ| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Desarrollando la fórmula: &amp;lt;math&amp;gt; \begin{pmatrix} \frac{1}{5} sen θ \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) \\ 0 \end{pmatrix} - \begin{pmatrix} \frac {1}{5} sen θ \\ 0 \\ 0 \end{pmatrix} =  cos θ (\frac {1}{5} - \frac {ρ}{10}) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación Tensiones tangenciales.jpg|400x300px|miniaturadeimagen|centro|Comparación Tensiones tangenciales]]&lt;br /&gt;
&lt;br /&gt;
===Tensión de Von Mises===&lt;br /&gt;
La tensión de Von Mises viene determinada por la fórmula: &amp;lt;math&amp;gt; σ_{VM} = \sqrt{\frac{(\vec σ_1 - \vec σ_2)^2 + (\vec σ_2 - \vec σ_3)^2 + (\vec σ_3 - \vec σ_1)^2}{2}} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Puesto que cada punto de la placa lleva asociado un tensor de la tensión, siendo  &amp;lt;math&amp;gt; \vec σ_1, \vec σ_2, \vec σ_3;  &amp;lt;/math&amp;gt; los autovalores de dicha matriz, se debe ir punto a punto calculándolos, por tanto es necesario un bucle que rellene una matriz con los valores de la tensión Von Mises para cada punto. &lt;br /&gt;
&lt;br /&gt;
La tensión de Von Mises muestra los puntos donde se produciría la rotura de la placa. En este caso rompería la parte superior de la placa.&lt;br /&gt;
&lt;br /&gt;
La representación es la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tensión Von Mises.jpg|400x300px|miniaturadeimagen|centro|Tensión Von Mises]]&lt;br /&gt;
&lt;br /&gt;
===Fuerza causante del desplazamiento===&lt;br /&gt;
Conociendo que la placa viene deformada por la función vectorial dada, se puede obtener la fuerza que motiva el desplazamiento. Esa viene definida por: &amp;lt;math&amp;gt; \vec F = - \nabla ⋅ \vec u &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El resultado de la fuerza obtenido manualmente es el descrito a continuación: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_ρ + \frac {1}{5} (\frac {1}{ρ} - 2) cos θ \vec e_θ &amp;lt;/math&amp;gt;. La componente según &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt; es nula.&lt;br /&gt;
&lt;br /&gt;
Calculado por diferenciación automática queda la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas]]&lt;br /&gt;
&lt;br /&gt;
Si de dibuja el campo de fuerzas y la las posiciones inicial y final no queda del todo claro que éste sea el campo que motiva el desplazamiento y la deformación de la placa. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas y desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de Fuerzas y desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
Si se dibuja la resultante de las fuerzas el desplazamiento de la placa queda explicado, mientras que dibujando únicamente la placa final deformada, sin considerar el desplazamiento y el campo de fuerzas, se pueden apreciar claramente que deformaciones como el achatamiento de la forma circular de la placa son causadas por el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Desplazamiento y resultante concampo de fuerzas sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas, desplazamiento y deformación de la placa]]&lt;br /&gt;
&lt;br /&gt;
==Anexo==&lt;br /&gt;
En este enlace se puede descargar el código que se ha empleado. Para que funcione es necesario tener instalado Julia y las librerías Makie y LinearAlgebra.&lt;br /&gt;
https://drive.google.com/drive/folders/1aeOkuIzscmac7BiWYsRidg_zSQZc8gfB?usp=sharing&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Teoría de Campos]][[Categoría:TC21/22]]&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=48042</id>
		<title>Grupo B12 Trabajo 5: Estudio de tensiones sobre una placa mediante diferenciación automática</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=48042"/>
				<updated>2021-12-10T20:43:30Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: /* Divergencia y rotacional */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Estudio de tensiones sobre una placa mediante diferenciación automática. Grupo B12 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC21/22|2021-2022]] | Víctor Sillero González&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Rodrigo Vázquez Pérez }}&lt;br /&gt;
&lt;br /&gt;
El trabajo correspondiente a este grupo es el número 5, en particular consiste en el estudio de temperaturas, deformaciones y tensiones sobre una placa compuesta de medio anillo circular.&lt;br /&gt;
La peculiaridad de este trabajo radica en que se ha realizado mediante diferenciación automática gracias a una librería realizada por los componentes del grupo.&lt;br /&gt;
Dicho programa ha sido realizado en el leguaje de programación &amp;quot;Julia&amp;quot;, y por ende todo el desarrollo ha sido realizado mediante dicho lenguaje.&lt;br /&gt;
&lt;br /&gt;
Todos los gráficos se han creado a partir de la librería Makie de Julia. Se ha creado una función con los estilos que queríamos usar que toma como input campos y funciones así como una lista de puntos y algunos parámetros de estilo y dibuja la gráfica correspondiente. Al ser tanto el programa para las gráficas como la librería de diferenciación automática demasiado largos para ser publicados en esta página se adjunta un link donde se pueden descargar y ver. Aunque todos las gráficas mostradas se han producido por métodos computacionales, también se han realizado los cálculos a mano para poder mostrar las ecuaciones de los campos y tensores calculados.&lt;br /&gt;
&lt;br /&gt;
La librería utilizada a lo largo de todo el trabajo queda adjunta en el anexo.&lt;br /&gt;
&lt;br /&gt;
En este caso los datos aportados por el enunciado han sido los siguientes:&lt;br /&gt;
* Placa plana que ocupa la mitad de un anillo circular centrado en el origen y comprendido entre los radios 1 y 2, en el plano y ≥ 0.&lt;br /&gt;
* Función temperatura en la placa: &amp;lt;math&amp;gt; T(x,y) = x^2 + (y-1)^2 &amp;lt;/math&amp;gt;.&lt;br /&gt;
* Campo de deformaciones: &amp;lt;math&amp;gt;\vec u(ρ,θ) = \frac{ρ}{10} sin(θ) + \frac{ρ}{5} cos(θ) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Julia Portada.png|400x300px|miniaturadeimagen|centro|Portada programa Julia]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
Este trabajo tiene como objetivo el estudio de las tensiones y fuerzas que producen desplazamientos y deformaciones en una placa, así como su campo de temperaturas a partir de un campo de desplazamientos y una función escalar de temperaturas. Además, se va a estudiar el cálculo de derivadas y operadores diferenciales mediante métodos computacionales.&lt;br /&gt;
&lt;br /&gt;
=== Diferenciación automática===&lt;br /&gt;
&lt;br /&gt;
====Métodos habituales: Aproximación numérica====&lt;br /&gt;
Normalmente cuando se quiere obtener el valor de la derivada de una función en un punto mediante un ordenador se realiza una aproximación a partir de la definición de derivada. &amp;lt;math&amp;gt; (f(x+h) - f(x)) / h &amp;lt;/math&amp;gt; dando un valor concreto lo menor posible para h.&lt;br /&gt;
Un ejemplo del método con la función &amp;lt;math&amp;gt; f(x) = x^2 &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; h = 10^{-10} &amp;lt;/math&amp;gt;  en  &amp;lt;math&amp;gt; x = 3 &amp;lt;/math&amp;gt; &lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
h = 10^-10&lt;br /&gt;
f(x) = x^2&lt;br /&gt;
derivada = (f(3+h) - f(3)) / h&lt;br /&gt;
}}&lt;br /&gt;
El resultado dado no es exactamente 6 pero se consiguen 6 decimales de precisión por lo que es una buena aproximación. Este algoritmo realiza 3 operaciones. Evaluar f en x + h, evaluar f en x y dividir todo ello entre h.&lt;br /&gt;
&lt;br /&gt;
Un problema del método es si se emplea una h demasiado pequeña puede dar problemas.&lt;br /&gt;
&lt;br /&gt;
Si se supera el número más pequeño que se puede expresar con el tipo de dato utilizado (Float64 en nuestro caso) el resultado mostrado será 0. Por lo tanto un manejo correcto de los valores de h es esencial y complica el método bastante.&lt;br /&gt;
&lt;br /&gt;
====Números duales====&lt;br /&gt;
El método empleado en este trabajo es exacto. No se realiza ninguna aproximación. Para ello es necesario definir un nuevo tipo de número distinto de los reales o los complejos, los números duales.&lt;br /&gt;
&lt;br /&gt;
Los números duales son números del tipo a + bε siendo a y b números reales o duales. &lt;br /&gt;
&lt;br /&gt;
Denominamos parte real al número a y parte derivada al número b.&lt;br /&gt;
&lt;br /&gt;
Además se define la siguiente propiedad. ε es distinto de 0 y &amp;lt;math&amp;gt; ε^2 = 0 &amp;lt;/math&amp;gt;. ε por lo tanto no es un número real.&lt;br /&gt;
&lt;br /&gt;
Las operaciones aritméticas básicas se definen de manera sencilla.&lt;br /&gt;
* Suma: &amp;lt;math&amp;gt;  (a + bε) + (c + dε) = (a + c) + (b + d)ε &amp;lt;/math&amp;gt; &lt;br /&gt;
* Producto &amp;lt;math&amp;gt; (a + bε) * (c + dε) = ac + (bc + ad)ε + (bd)^2 * ε^2&amp;lt;/math&amp;gt; , como &amp;lt;math&amp;gt;  ε^2 = 0 &amp;lt;/math&amp;gt; el resultado final es &amp;lt;math&amp;gt; (a + bε) * (c + dε) = ac + (bc + ad)ε&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
====Series de Taylor y números duales====&lt;br /&gt;
Sea f una función cualquiera y a un punto del dominio de f la serie de Taylor de f en el punto a es&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
f(x) = f(a) + \frac{f'(a)}{1!}(x-a) + \frac{f''(a)}{2!}(x-a)^{2} + ... = \sum_{i=0}^\infty \frac{f^{i}(a)}{i!}(x-a)^{i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
Si se evalúa la serie de Taylor de f en el valor dual x = a + ε se obtiene &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(a + ε) = f(a) + f'(a)ε + \frac{f''(a)}{2!}ε^{2} + ... &amp;lt;/math&amp;gt; y como &amp;lt;math&amp;gt; ε^{2} = 0 &amp;lt;/math&amp;gt; el resultado final es&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(a + ε) = f(a) + f'(a)ε &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La parte real de &amp;lt;math&amp;gt; f(a + ε) &amp;lt;/math&amp;gt; es f evaluado en a, es decir f(a) y la parte derivada de f(a + ε) es la derivada de f evaluada en a, es decir f'(a).&lt;br /&gt;
&lt;br /&gt;
====Cálculo de derivadas por números duales====&lt;br /&gt;
Gracias a las propiedades comentadas en la sección anterior podemos establecer un nuevo método esta vez exacto para calcular derivadas. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f'(a) = parte Derivada[f(a + ε)] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Este método consiste en únicamente una operación siendo no solamente exacto sino además más rápido que el método aproximado.&lt;br /&gt;
&lt;br /&gt;
====Programación====&lt;br /&gt;
En primer lugar se define un nuevo tipo de dato Dual, con las propiedades de parte real x y parte derivada ε.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
mutable struct Dual{T&amp;lt;:Real} &amp;lt;: Real &lt;br /&gt;
    x::T&lt;br /&gt;
    ϵ::T&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
Ahora se definen las operaciones básicas sobre el tipo de dato dual. Aquí se muestran algunas de ellas.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
#negación &lt;br /&gt;
Base.:-(a::Dual) = Dual(-1 * a.x, -1* a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#suma&lt;br /&gt;
Base.:+(a::Dual, b::Dual) = Dual(a.x + b.x, a.ϵ .+ b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#diferencia&lt;br /&gt;
Base.:-(a::Dual, b::Dual) = Dual(a.x - b.x, a.ϵ - b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#producto&lt;br /&gt;
Base.:*(a::Dual, b::Dual) = Dual(a.x * b.x, b.x * a.ϵ + a.x * b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#reciproco &lt;br /&gt;
recip = a::Dual -&amp;gt; Dual(1. / a.x, (-1* a.ϵ) / (a.x ^2))&lt;br /&gt;
&lt;br /&gt;
#cociente&lt;br /&gt;
Base.:/(a::Dual, b::Dual) = a * recip(b)&lt;br /&gt;
&lt;br /&gt;
#exponencial, potencia y raíz_cuadrada&lt;br /&gt;
Base.:exp(a::Dual) = exp(a.x) * Dual(1.,a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#logaritmo &lt;br /&gt;
Base.:log(a::Dual) = Dual(log(a.x), a.ϵ / a.x)&lt;br /&gt;
&lt;br /&gt;
#trigonometria&lt;br /&gt;
Base.:sin(d::Dual) = Dual(sin(d.x), d.ϵ * cos(d.x))&lt;br /&gt;
Base.:cos(d::Dual) = Dual(cos(d.x), - d.ϵ * sin(d.x))&lt;br /&gt;
}}&lt;br /&gt;
Y ya podríamos calcular derivadas. Por ejemplo creando la función f(x) = x^2 y evaluándola en el punto Dual(4, 1) se obtiene el número Dual(16, 8), 8 es la derivada de x^2 en el punto 4.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
f(x) = x^2 &lt;br /&gt;
f(Dual(4., 1.))&lt;br /&gt;
}}&lt;br /&gt;
A partir de este código se programa una librería capaz de calcular gradientes, divergencias y rotacionales de cualquier función. Además es capaz de trabajar en coordenadas cilíndricas esféricas y cartesianas.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo el tensor gradiente de una función u en un punto en la librería se calcula con el comando:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
u.grad(punto)&lt;br /&gt;
}}&lt;br /&gt;
Existen algoritmos más avanzados que hacen este proceso aún más rápido pero para cubrir nuestras necesidades la velocidad aportada por esta librería es suficiente.&lt;br /&gt;
&lt;br /&gt;
Para realizar el trabajo se define la placa, la función de temperaturas y el campo de desplazamientos y el programa crea todas las gráficas necesarias, por lo que nuestro programa es capaz de resolver cualquiera de los trabajos que se han planteado de manera instantánea.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
λ = 1&lt;br /&gt;
μ = 1&lt;br /&gt;
&lt;br /&gt;
rango = 0.1&lt;br /&gt;
&lt;br /&gt;
ρ_s = range(1, 2, 11) # discretización de variables&lt;br /&gt;
θ_s = range(0, pi, 32)&lt;br /&gt;
z_s = zeros(size(ρ_s))&lt;br /&gt;
&lt;br /&gt;
#campo de temperaturas&lt;br /&gt;
t = x -&amp;gt; x[1]^2 +(x[2] - 1)^2 #cartesianas&lt;br /&gt;
&lt;br /&gt;
T = funcion_escalar(t, tipo = 1)&lt;br /&gt;
&lt;br /&gt;
u = funcion_vectorial(x -&amp;gt; [(x[1] / 10) * sin(x[2]), (x[1] / 5) * cos(x[2]), 0], tipo = 2) # cilíndricas&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Dibujo del mallado==&lt;br /&gt;
&lt;br /&gt;
En primer lugar es necesario dibujar la placa que se va a estudiar. &lt;br /&gt;
La placa se define en coordenadas cilíndricas (base física cilíndrica) con la siguiente parametrización: &amp;lt;math&amp;gt; ρ = u -&amp;gt; [0,2] ; θ = v -&amp;gt; [0, π]; z = 0&amp;lt;/math&amp;gt;. &lt;br /&gt;
En el caso de que la placa fuese más compleja, nuestro programa también aceptaría definirla mediante una función que tomando un punto como entrada, devuelva 1 o 0 dependiendo de si dicho punto se encuentra en la placa o no.&lt;br /&gt;
&lt;br /&gt;
Los ejes tomados para dibujar las gráficas han sido [−2, 2] × [0, 2] y se ha dibujado un mallado con el comando &amp;quot;wireframe&amp;quot;.&lt;br /&gt;
Por otra parte, el muestreo utilizado ha sido &amp;lt;math&amp;gt;h= \frac{1}{10}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Placa Nuestra.jpg|400x300px|miniaturadeimagen|centro|Placa representada]]&lt;br /&gt;
&lt;br /&gt;
==Campo de las temperaturas en la placa==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Dibujo de las curvas de nivel===&lt;br /&gt;
Una vez definida la función temperatura T(x,y) en cartesianas, una parametrización para la placa y habiendo elegido el número de curvas a representar, (20), mediante la función &amp;quot;contour&amp;quot; se han dibujado las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Curvas Temperatura.jpg|400x300px|miniaturadeimagen|centro|Curvas de nivel de la Temperatura]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Máximo de temperatura===&lt;br /&gt;
Para obtener el máximo de la temperatura con precisión la función &amp;quot;dibujar2D&amp;quot; que empleamos para dibujar las gráficas devuelve el mayor valor e indica dicho punto mediante un aspa roja.&lt;br /&gt;
&lt;br /&gt;
===Dibujo del gradiente como campo vectorial (&amp;lt;math&amp;gt; \nabla &amp;lt;/math&amp;gt;T)===&lt;br /&gt;
De la función de la temperatura dada, se ha obtenido el gradiente: &amp;lt;math&amp;gt; 2x \vec i + 2 (y - 1) \vec j &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dibujado junto a las curvas de nivel, se observa fácilmente la perpendicularidad entre dichas curvas y los vectores representados.&lt;br /&gt;
Esto tiene sentido puesto que el gradiente indica la dirección de mayor crecimiento mientras que su perpendicular indica el crecimiento nulo. &lt;br /&gt;
Esta última dirección es, por tanto, tangente a las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Gradiente Nuestro.jpg|400x300px|miniaturadeimagen|centro|Gradiente]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tensiones y fuerzas==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Posición inicial y final de la placa===&lt;br /&gt;
Como punto de partida se dibuja la posición inicial y final de la placa. &lt;br /&gt;
Los puntos de la posición final se han calculado sumando a cada punto de la placa inicial su vector desplazamiento dado por la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt;. &lt;br /&gt;
Además, restando a la placa final la media de los desplazamientos en todos los puntos se ha obtenido una gráfica que muestra únicamente las deformaciones que la placa experimenta.&lt;br /&gt;
De esta forma, permite ver que la placa final está achatada y deja de ser circular.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación placa inicial y final con deformación sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Comparación de la placa inicial y final con deformación de la placa sin desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El objetivo final es conocer el campo de fuerzas que ha producido este desplazamiento. &lt;br /&gt;
Para ello a partir del campo de desplazamientos se calculan las tensiones que experimenta la placa y a partir de éstas, el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
===Representación del campo vectorial de desplazamientos===&lt;br /&gt;
Tras definir la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt; en el código, y mediante el uso de la función &amp;quot;arrows&amp;quot; (gracias a que el campo no dispone de componente vertical), se obtiene la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
===Divergencia y rotacional===&lt;br /&gt;
Calcular la divergencia y el rotacional del campo de desplazamientos es de gran utilidad, ya que estos aportan información muy valiosa sobre las características de la deformación que experimenta la placa. &lt;br /&gt;
&lt;br /&gt;
El rotacional mide cuánto rotan los puntos de la placa. Su módulo cuantifica la rotación, mientras que su dirección y sentido dan el eje de rotación.&lt;br /&gt;
La divergencia en cambio, mide cuánto cambia el área en un entrono de cada punto. &lt;br /&gt;
&lt;br /&gt;
La deformación de un entorno de un punto de la placa, no su desplazamiento, es por lo tanto la rotación y el cambio de tamaño de ese entorno. &lt;br /&gt;
&lt;br /&gt;
Para tener una mejor intuición de lo que esto significa, se ha dibujado el módulo del rotacional y la divergencia de una rotación de ángulo π/2, una homotecia de la placa del factor 2 y un desplazamiento sin deformación de dirección 2 &amp;lt;math&amp;gt; \vec i &amp;lt;/math&amp;gt;. En el desplazamiento como no hay deformación, el rotacional y la divergencia deben valer cero. &lt;br /&gt;
El rotacional es mayor que cero e igual en todos los puntos y la divergencia es cero. Esto se debe a que todos los puntos rotan por igual (π/2) y su área no cambia. En la homotecia por el factor 2, el rotacional debe ser nulo y la divergencia 4, ya que cada lado se duplica produciendo una cuadruplicación del área.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación 2.jpg|400x300px|miniaturadeimagen|centro|Explicación divergencia y rotacional]]&lt;br /&gt;
&lt;br /&gt;
====Divergencia del campo desplazamientos====&lt;br /&gt;
Calculando la divergencia de forma manual y con diferenciación automática, se ha concluido que esta es nula en cualquier punto: &amp;lt;math&amp;gt; ∇ ⋅ \vec u =  \frac{1}{ρ} [\frac{δ}{δρ} (ρ (\frac{ρ}{10} sen θ)) + \frac{δ}{δθ} (\frac{ρ}{5} cos θ) + \frac{δ}{δz} (ρ 0)] = 0 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lo que indica la divergencia es la variación del diferencial de área. En este caso concreto en que es nula, se puede apreciar en la gráfica del punto anterior como aunque los cuadrados del mallado de la placa puedan ser deformados mantienen el mismo tamaño, es decir, ni se dilatan ni se contraen.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Divergencia Nuestra.jpg|400x300px|miniaturadeimagen|centro|Divergencia del campo]]&lt;br /&gt;
&lt;br /&gt;
====Visualización del módulo del rotacional del campo desplazamiento====&lt;br /&gt;
Mediante el cálculo manual se ha obtenido el siguiente rotacional: &amp;lt;math&amp;gt; V × \vec u = \frac{1}{ρ} \left| \begin{matrix} \vec e_ρ &amp;amp; ρ \vec e_θ &amp;amp; \vec e_z \\ \frac{δ}{δρ} &amp;amp; \frac{δ}{δθ} &amp;amp; \frac{δ}{δz} \\ \frac{ρ}{10} sen θ &amp;amp; ρ \frac{ρ}{5} cos θ &amp;amp; 0 \end{matrix} \right| = \frac{3}{10} cos(θ) \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto su módulo es: &amp;lt;math&amp;gt; |V × \vec u| = |\frac{3}{10} cos(θ)| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El resultado de representarlo sobre el plano XY es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Rotacional nuestro.jpg|400x300px|miniaturadeimagen|centro|Rotacional del campo desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El rotacional indica el giro experimentado por la placa en su deformación, lo que se puede apreciar en la representación anterior y teniendo en cuenta el punto 4.3.&lt;br /&gt;
Así, los extremos de la placa, que experimentan un giro, tienen el mayor valor del rotacional. &lt;br /&gt;
Cabe decir que estos valores tendrán signo contrario, pues los giros son opuestos.&lt;br /&gt;
Esto no se tiene en consideración para la representación gráfica, pues en ella buscamos el módulo del rotacional, que siempre es positivo.&lt;br /&gt;
&lt;br /&gt;
===Tensor de tensiones===&lt;br /&gt;
En este apartado, sabiendo que nos encontramos en un medio lineal, isótropo y homogéneo (así lo indica el enunciado), la función del tensor de tensiones viene descrita de la siguiente forma: &amp;lt;math&amp;gt; σ = λ ∇ ⋅ \vec u 1 + 2 μ ε &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En dicha fórmula conocemos que los Coeficientes de Lamé (λ y μ) que dependen de las propiedades elásticas de cada material. Tomando en este caso que ambos son 1.&lt;br /&gt;
&lt;br /&gt;
La parte simétrica del tensor gradiente del campo  de deplazamientos, queda también definida de la siguiente manera: &amp;lt;math&amp;gt; ε(\vec u) = \frac{∇ \vec u + ∇ \vec u ^t}{2} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
De forma manual se ha obtenido que el gradiente del campo es &amp;lt;math&amp;gt; ∇ \vec u(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; - \frac{ρ}{10} cos θ &amp;amp; 0 \\ \frac{1}{5} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto, la matriz traspuesta del gradiente del campo es: &amp;lt;math&amp;gt; ∇ \vec u^t(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; \frac{1}{5} cos θ &amp;amp; 0 \\ - \frac{ρ}{10} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Resolviendo la parte simétrica del tensor gradiente de forma manual, se obtiene como resultado: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; cos θ (\frac{1}{10} - \frac{ρ}{20} ) &amp;amp; 0 \\ cos θ (\frac{1}{10} - \frac{ρ}{20}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De esta forma, se concluye que el tensor de tensiones viene representado de la siguiente forma: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{5} sen θ &amp;amp; cos θ (\frac{1}{5} - \frac{ρ}{10} ) &amp;amp; 0 \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Representación de las tensiones normales====&lt;br /&gt;
[[Archivo:Tensiones comparación.jpg|400x300px|miniaturadeimagen|centro|Representación de las tensiones normales]]&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_ρ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_ρ ⋅ σ ⋅ \vec e_ρ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; \frac {1}{5} sen θ \vec e_ρ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_θ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_θ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_θ ⋅ σ ⋅ \vec e_θ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_z, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt;  \vec e_z ⋅ σ ⋅ \vec e_z &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; 0 \vec e_z &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Tensiones tangenciales respecto al plano ortogonal &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;====&lt;br /&gt;
En este caso, simplemente se ha aplicado la fórmula correspondiente que es la siguiente: &amp;lt;math&amp;gt; |σ ⋅ \vec e_ρ - \vec e_ρ ⋅ σ ⋅ \vec e_ρ| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Desarrollando la fórmula: &amp;lt;math&amp;gt; \begin{pmatrix} \frac{1}{5} sen θ \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) \\ 0 \end{pmatrix} - \begin{pmatrix} \frac {1}{5} sen θ \\ 0 \\ 0 \end{pmatrix} =  cos θ (\frac {1}{5} - \frac {ρ}{10}) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación Tensiones tangenciales.jpg|400x300px|miniaturadeimagen|centro|Comparación Tensiones tangenciales]]&lt;br /&gt;
&lt;br /&gt;
===Tensión de Von Mises===&lt;br /&gt;
La tensión de Von Mises viene determinada por la fórmula: &amp;lt;math&amp;gt; σ_{VM} = \sqrt{\frac{(\vec σ_1 - \vec σ_2)^2 + (\vec σ_2 - \vec σ_3)^2 + (\vec σ_3 - \vec σ_1)^2}{2}} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Puesto que cada punto de la placa lleva asociado un tensor de la tensión, siendo  &amp;lt;math&amp;gt; \vec σ_1, \vec σ_2, \vec σ_3;  &amp;lt;/math&amp;gt; los autovalores de dicha matriz, se debe ir punto a punto calculándolos, por tanto es necesario un bucle que rellene una matriz con los valores de la tensión Von Mises para cada punto. &lt;br /&gt;
&lt;br /&gt;
La tensión de Von Mises muestra los puntos donde se produciría la rotura de la placa. En este caso rompería la parte superior de la placa.&lt;br /&gt;
&lt;br /&gt;
La representación es la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tensión Von Mises.jpg|400x300px|miniaturadeimagen|centro|Tensión Von Mises]]&lt;br /&gt;
&lt;br /&gt;
===Fuerza causante del desplazamiento===&lt;br /&gt;
Conociendo que la placa viene deformada por la función vectorial dada, se puede obtener la fuerza que motiva el desplazamiento. Esa viene definida por: &amp;lt;math&amp;gt; \vec F = - \nabla ⋅ \vec u &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El resultado de la fuerza obtenido manualmente es el descrito a continuación: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_ρ + \frac {1}{5} (\frac {1}{ρ} - 2) cos θ \vec e_θ &amp;lt;/math&amp;gt;. La componente según &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt; es nula.&lt;br /&gt;
&lt;br /&gt;
Calculado por diferenciación automática queda la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas]]&lt;br /&gt;
&lt;br /&gt;
Si de dibuja el campo de fuerzas y la las posiciones inicial y final no queda del todo claro que éste sea el campo que motiva el desplazamiento y la deformación de la placa. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas y desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de Fuerzas y desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
Si se dibuja la resultante de las fuerzas el desplazamiento de la placa queda explicado, mientras que dibujando únicamente la placa final deformada, sin considerar el desplazamiento y el campo de fuerzas, se pueden apreciar claramente que deformaciones como el achatamiento de la forma circular de la placa son causadas por el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Desplazamiento y resultante concampo de fuerzas sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas, desplazamiento y deformación de la placa]]&lt;br /&gt;
&lt;br /&gt;
==Anexo==&lt;br /&gt;
En este enlace se puede descargar el código que se ha empleado. Para que funcione es necesario tener instalado Julia y las librerías Makie y LinearAlgebra.&lt;br /&gt;
https://drive.google.com/drive/folders/1aeOkuIzscmac7BiWYsRidg_zSQZc8gfB?usp=sharing&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Teoría de Campos]][[Categoría:TC21/22]]&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=48040</id>
		<title>Grupo B12 Trabajo 5: Estudio de tensiones sobre una placa mediante diferenciación automática</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=48040"/>
				<updated>2021-12-10T20:34:11Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Estudio de tensiones sobre una placa mediante diferenciación automática. Grupo B12 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC21/22|2021-2022]] | Víctor Sillero González&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Rodrigo Vázquez Pérez }}&lt;br /&gt;
&lt;br /&gt;
El trabajo correspondiente a este grupo es el número 5, en particular consiste en el estudio de temperaturas, deformaciones y tensiones sobre una placa compuesta de medio anillo circular.&lt;br /&gt;
La peculiaridad de este trabajo radica en que se ha realizado mediante diferenciación automática gracias a una librería realizada por los componentes del grupo.&lt;br /&gt;
Dicho programa ha sido realizado en el leguaje de programación &amp;quot;Julia&amp;quot;, y por ende todo el desarrollo ha sido realizado mediante dicho lenguaje.&lt;br /&gt;
&lt;br /&gt;
Todos los gráficos se han creado a partir de la librería Makie de Julia. Se ha creado una función con los estilos que queríamos usar que toma como input campos y funciones así como una lista de puntos y algunos parámetros de estilo y dibuja la gráfica correspondiente. Al ser tanto el programa para las gráficas como la librería de diferenciación automática demasiado largos para ser publicados en esta página se adjunta un link donde se pueden descargar y ver. Aunque todos las gráficas mostradas se han producido por métodos computacionales, también se han realizado los cálculos a mano para poder mostrar las ecuaciones de los campos y tensores calculados.&lt;br /&gt;
&lt;br /&gt;
La librería utilizada a lo largo de todo el trabajo queda adjunta en el anexo.&lt;br /&gt;
&lt;br /&gt;
En este caso los datos aportados por el enunciado han sido los siguientes:&lt;br /&gt;
* Placa plana que ocupa la mitad de un anillo circular centrado en el origen y comprendido entre los radios 1 y 2, en el plano y ≥ 0.&lt;br /&gt;
* Función temperatura en la placa: &amp;lt;math&amp;gt; T(x,y) = x^2 + (y-1)^2 &amp;lt;/math&amp;gt;.&lt;br /&gt;
* Campo de deformaciones: &amp;lt;math&amp;gt;\vec u(ρ,θ) = \frac{ρ}{10} sin(θ) + \frac{ρ}{5} cos(θ) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Julia Portada.png|400x300px|miniaturadeimagen|centro|Portada programa Julia]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
Este trabajo tiene como objetivo el estudio de las tensiones y fuerzas que producen desplazamientos y deformaciones en una placa, así como su campo de temperaturas a partir de un campo de desplazamientos y una función escalar de temperaturas. Además, se va a estudiar el cálculo de derivadas y operadores diferenciales mediante métodos computacionales.&lt;br /&gt;
&lt;br /&gt;
=== Diferenciación automática===&lt;br /&gt;
&lt;br /&gt;
====Métodos habituales: Aproximación numérica====&lt;br /&gt;
Normalmente cuando se quiere obtener el valor de la derivada de una función en un punto mediante un ordenador se realiza una aproximación a partir de la definición de derivada. &amp;lt;math&amp;gt; (f(x+h) - f(x)) / h &amp;lt;/math&amp;gt; dando un valor concreto lo menor posible para h.&lt;br /&gt;
Un ejemplo del método con la función &amp;lt;math&amp;gt; f(x) = x^2 &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; h = 10^{-10} &amp;lt;/math&amp;gt;  en  &amp;lt;math&amp;gt; x = 3 &amp;lt;/math&amp;gt; &lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
h = 10^-10&lt;br /&gt;
f(x) = x^2&lt;br /&gt;
derivada = (f(3+h) - f(3)) / h&lt;br /&gt;
}}&lt;br /&gt;
El resultado dado no es exactamente 6 pero se consiguen 6 decimales de precisión por lo que es una buena aproximación. Este algoritmo realiza 3 operaciones. Evaluar f en x + h, evaluar f en x y dividir todo ello entre h.&lt;br /&gt;
&lt;br /&gt;
Un problema del método es si se emplea una h demasiado pequeña puede dar problemas.&lt;br /&gt;
&lt;br /&gt;
Si se supera el número más pequeño que se puede expresar con el tipo de dato utilizado (Float64 en nuestro caso) el resultado mostrado será 0. Por lo tanto un manejo correcto de los valores de h es esencial y complica el método bastante.&lt;br /&gt;
&lt;br /&gt;
====Números duales====&lt;br /&gt;
El método empleado en este trabajo es exacto. No se realiza ninguna aproximación. Para ello es necesario definir un nuevo tipo de número distinto de los reales o los complejos, los números duales.&lt;br /&gt;
&lt;br /&gt;
Los números duales son números del tipo a + bε siendo a y b números reales o duales. &lt;br /&gt;
&lt;br /&gt;
Denominamos parte real al número a y parte derivada al número b.&lt;br /&gt;
&lt;br /&gt;
Además se define la siguiente propiedad. ε es distinto de 0 y &amp;lt;math&amp;gt; ε^2 = 0 &amp;lt;/math&amp;gt;. ε por lo tanto no es un número real.&lt;br /&gt;
&lt;br /&gt;
Las operaciones aritméticas básicas se definen de manera sencilla.&lt;br /&gt;
* Suma: &amp;lt;math&amp;gt;  (a + bε) + (c + dε) = (a + c) + (b + d)ε &amp;lt;/math&amp;gt; &lt;br /&gt;
* Producto &amp;lt;math&amp;gt; (a + bε) * (c + dε) = ac + (bc + ad)ε + (bd)^2 * ε^2&amp;lt;/math&amp;gt; , como &amp;lt;math&amp;gt;  ε^2 = 0 &amp;lt;/math&amp;gt; el resultado final es &amp;lt;math&amp;gt; (a + bε) * (c + dε) = ac + (bc + ad)ε&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
====Series de Taylor y números duales====&lt;br /&gt;
Sea f una función cualquiera y a un punto del dominio de f la serie de Taylor de f en el punto a es&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
f(x) = f(a) + \frac{f'(a)}{1!}(x-a) + \frac{f''(a)}{2!}(x-a)^{2} + ... = \sum_{i=0}^\infty \frac{f^{i}(a)}{i!}(x-a)^{i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
Si se evalúa la serie de Taylor de f en el valor dual x = a + ε se obtiene &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(a + ε) = f(a) + f'(a)ε + \frac{f''(a)}{2!}ε^{2} + ... &amp;lt;/math&amp;gt; y como &amp;lt;math&amp;gt; ε^{2} = 0 &amp;lt;/math&amp;gt; el resultado final es&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(a + ε) = f(a) + f'(a)ε &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La parte real de &amp;lt;math&amp;gt; f(a + ε) &amp;lt;/math&amp;gt; es f evaluado en a, es decir f(a) y la parte derivada de f(a + ε) es la derivada de f evaluada en a, es decir f'(a).&lt;br /&gt;
&lt;br /&gt;
====Cálculo de derivadas por números duales====&lt;br /&gt;
Gracias a las propiedades comentadas en la sección anterior podemos establecer un nuevo método esta vez exacto para calcular derivadas. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f'(a) = parte Derivada[f(a + ε)] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Este método consiste en únicamente una operación siendo no solamente exacto sino además más rápido que el método aproximado.&lt;br /&gt;
&lt;br /&gt;
====Programación====&lt;br /&gt;
En primer lugar se define un nuevo tipo de dato Dual, con las propiedades de parte real x y parte derivada ε.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
mutable struct Dual{T&amp;lt;:Real} &amp;lt;: Real &lt;br /&gt;
    x::T&lt;br /&gt;
    ϵ::T&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
Ahora se definen las operaciones básicas sobre el tipo de dato dual. Aquí se muestran algunas de ellas.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
#negación &lt;br /&gt;
Base.:-(a::Dual) = Dual(-1 * a.x, -1* a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#suma&lt;br /&gt;
Base.:+(a::Dual, b::Dual) = Dual(a.x + b.x, a.ϵ .+ b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#diferencia&lt;br /&gt;
Base.:-(a::Dual, b::Dual) = Dual(a.x - b.x, a.ϵ - b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#producto&lt;br /&gt;
Base.:*(a::Dual, b::Dual) = Dual(a.x * b.x, b.x * a.ϵ + a.x * b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#reciproco &lt;br /&gt;
recip = a::Dual -&amp;gt; Dual(1. / a.x, (-1* a.ϵ) / (a.x ^2))&lt;br /&gt;
&lt;br /&gt;
#cociente&lt;br /&gt;
Base.:/(a::Dual, b::Dual) = a * recip(b)&lt;br /&gt;
&lt;br /&gt;
#exponencial, potencia y raíz_cuadrada&lt;br /&gt;
Base.:exp(a::Dual) = exp(a.x) * Dual(1.,a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#logaritmo &lt;br /&gt;
Base.:log(a::Dual) = Dual(log(a.x), a.ϵ / a.x)&lt;br /&gt;
&lt;br /&gt;
#trigonometria&lt;br /&gt;
Base.:sin(d::Dual) = Dual(sin(d.x), d.ϵ * cos(d.x))&lt;br /&gt;
Base.:cos(d::Dual) = Dual(cos(d.x), - d.ϵ * sin(d.x))&lt;br /&gt;
}}&lt;br /&gt;
Y ya podríamos calcular derivadas. Por ejemplo creando la función f(x) = x^2 y evaluándola en el punto Dual(4, 1) se obtiene el número Dual(16, 8), 8 es la derivada de x^2 en el punto 4.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
f(x) = x^2 &lt;br /&gt;
f(Dual(4., 1.))&lt;br /&gt;
}}&lt;br /&gt;
A partir de este código se programa una librería capaz de calcular gradientes, divergencias y rotacionales de cualquier función. Además es capaz de trabajar en coordenadas cilíndricas esféricas y cartesianas.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo el tensor gradiente de una función u en un punto en la librería se calcula con el comando:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
u.grad(punto)&lt;br /&gt;
}}&lt;br /&gt;
Existen algoritmos más avanzados que hacen este proceso aún más rápido pero para cubrir nuestras necesidades la velocidad aportada por esta librería es suficiente.&lt;br /&gt;
&lt;br /&gt;
Para realizar el trabajo se define la placa, la función de temperaturas y el campo de desplazamientos y el programa crea todas las gráficas necesarias, por lo que nuestro programa es capaz de resolver cualquiera de los trabajos que se han planteado de manera instantánea.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
λ = 1&lt;br /&gt;
μ = 1&lt;br /&gt;
&lt;br /&gt;
rango = 0.1&lt;br /&gt;
&lt;br /&gt;
ρ_s = range(1, 2, 11) # discretización de variables&lt;br /&gt;
θ_s = range(0, pi, 32)&lt;br /&gt;
z_s = zeros(size(ρ_s))&lt;br /&gt;
&lt;br /&gt;
#campo de temperaturas&lt;br /&gt;
t = x -&amp;gt; x[1]^2 +(x[2] - 1)^2 #cartesianas&lt;br /&gt;
&lt;br /&gt;
T = funcion_escalar(t, tipo = 1)&lt;br /&gt;
&lt;br /&gt;
u = funcion_vectorial(x -&amp;gt; [(x[1] / 10) * sin(x[2]), (x[1] / 5) * cos(x[2]), 0], tipo = 2) # cilíndricas&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Dibujo del mallado==&lt;br /&gt;
&lt;br /&gt;
En primer lugar es necesario dibujar la placa que se va a estudiar. &lt;br /&gt;
La placa se define en coordenadas cilíndricas (base física cilíndrica) con la siguiente parametrización: &amp;lt;math&amp;gt; ρ = u -&amp;gt; [0,2] ; θ = v -&amp;gt; [0, π]; z = 0&amp;lt;/math&amp;gt;. &lt;br /&gt;
En el caso de que la placa fuese más compleja, nuestro programa también aceptaría definirla mediante una función que tomando un punto como entrada, devuelva 1 o 0 dependiendo de si dicho punto se encuentra en la placa o no.&lt;br /&gt;
&lt;br /&gt;
Los ejes tomados para dibujar las gráficas han sido [−2, 2] × [0, 2] y se ha dibujado un mallado con el comando &amp;quot;wireframe&amp;quot;.&lt;br /&gt;
Por otra parte, el muestreo utilizado ha sido &amp;lt;math&amp;gt;h= \frac{1}{10}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Placa Nuestra.jpg|400x300px|miniaturadeimagen|centro|Placa representada]]&lt;br /&gt;
&lt;br /&gt;
==Campo de las temperaturas en la placa==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Dibujo de las curvas de nivel===&lt;br /&gt;
Una vez definida la función temperatura T(x,y) en cartesianas, una parametrización para la placa y habiendo elegido el número de curvas a representar, (20), mediante la función &amp;quot;contour&amp;quot; se han dibujado las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Curvas Temperatura.jpg|400x300px|miniaturadeimagen|centro|Curvas de nivel de la Temperatura]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Máximo de temperatura===&lt;br /&gt;
Para obtener el máximo de la temperatura con precisión la función &amp;quot;dibujar2D&amp;quot; que empleamos para dibujar las gráficas devuelve el mayor valor e indica dicho punto mediante un aspa roja.&lt;br /&gt;
&lt;br /&gt;
===Dibujo del gradiente como campo vectorial (&amp;lt;math&amp;gt; \nabla &amp;lt;/math&amp;gt;T)===&lt;br /&gt;
De la función de la temperatura dada, se ha obtenido el gradiente: &amp;lt;math&amp;gt; 2x \vec i + 2 (y - 1) \vec j &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dibujado junto a las curvas de nivel, se observa fácilmente la perpendicularidad entre dichas curvas y los vectores representados.&lt;br /&gt;
Esto tiene sentido puesto que el gradiente indica la dirección de mayor crecimiento mientras que su perpendicular indica el crecimiento nulo. &lt;br /&gt;
Esta última dirección es, por tanto, tangente a las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Gradiente Nuestro.jpg|400x300px|miniaturadeimagen|centro|Gradiente]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tensiones y fuerzas==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Posición inicial y final de la placa===&lt;br /&gt;
Como punto de partida se dibuja la posición inicial y final de la placa. &lt;br /&gt;
Los puntos de la posición final se han calculado sumando a cada punto de la placa inicial su vector desplazamiento dado por la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt;. &lt;br /&gt;
Además, restando a la placa final la media de los desplazamientos en todos los puntos se ha obtenido una gráfica que muestra únicamente las deformaciones que la placa experimenta.&lt;br /&gt;
De esta forma, permite ver que la placa final está achatada y deja de ser circular.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación placa inicial y final con deformación sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Comparación de la placa inicial y final con deformación de la placa sin desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El objetivo final es conocer el campo de fuerzas que ha producido este desplazamiento. &lt;br /&gt;
Para ello a partir del campo de desplazamientos se calculan las tensiones que experimenta la placa y a partir de éstas, el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
===Representación del campo vectorial de desplazamientos===&lt;br /&gt;
Tras definir la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt; en el código, y mediante el uso de la función &amp;quot;arrows&amp;quot; (gracias a que el campo no dispone de componente vertical), se obtiene la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
===Divergencia y rotacional===&lt;br /&gt;
Calcular la divergencia y el rotacional del campo de desplazamientos es de gran utilidad, ya que estos aportan información muy valiosa sobre las características de la deformación que experimenta la placa. &lt;br /&gt;
&lt;br /&gt;
El rotacional mide cuánto rotan los puntos de la placa. Su módulo cuantifica la rotación, mientras que su dirección y sentido dan el eje de rotación.&lt;br /&gt;
La divergencia en cambio, mide cuánto cambia el área en un entrono de cada punto. &lt;br /&gt;
&lt;br /&gt;
La deformación de un entorno de un punto de la placa, no su desplazamiento, es por lo tanto la rotación y el cambio de tamaño de ese entorno. &lt;br /&gt;
&lt;br /&gt;
Para tener una mejor intuición de lo que esto significa, se ha dibujado el módulo del rotacional y la divergencia de una rotación de ángulo π/2, una escala de la placa del factor 2 y un desplazamiento sin deformación de dirección 2 &amp;lt;math&amp;gt; \vec i &amp;lt;/math&amp;gt;. En el desplazamiento como no hay deformación, el rotacional y la divergencia deben valer cero. &lt;br /&gt;
El rotacional es mayor que cero e igual en todos los puntos y la divergencia es cero. Esto se debe a que todos los puntos rotan por igual (π/2) y su área no cambia. En la escala por el factor 2, el rotacional debe ser nulo y la divergencia 4, ya que cada lado se duplica produciendo una cuadruplicación del área.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación 2.jpg|400x300px|miniaturadeimagen|centro|Explicación divergencia y rotacional]]&lt;br /&gt;
&lt;br /&gt;
====Divergencia del campo desplazamientos====&lt;br /&gt;
Calculando la divergencia de forma manual y con diferenciación automática, se ha concluido que esta es nula en cualquier punto: &amp;lt;math&amp;gt; ∇ ⋅ \vec u =  \frac{1}{ρ} [\frac{δ}{δρ} (ρ (\frac{ρ}{10} sen θ)) + \frac{δ}{δθ} (\frac{ρ}{5} cos θ) + \frac{δ}{δz} (ρ 0)] = 0 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lo que indica la divergencia es la variación del diferencial de área. En este caso concreto en que es nula, se puede apreciar en la gráfica del punto anterior como aunque los cuadrados del mallado de la placa puedan ser deformados mantienen el mismo tamaño, es decir, ni se dilatan ni se contraen.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Divergencia Nuestra.jpg|400x300px|miniaturadeimagen|centro|Divergencia del campo]]&lt;br /&gt;
&lt;br /&gt;
====Visualización del módulo del rotacional del campo desplazamiento====&lt;br /&gt;
Mediante el cálculo manual se ha obtenido el siguiente rotacional: &amp;lt;math&amp;gt; V × \vec u = \frac{1}{ρ} \left| \begin{matrix} \vec e_ρ &amp;amp; ρ \vec e_θ &amp;amp; \vec e_z \\ \frac{δ}{δρ} &amp;amp; \frac{δ}{δθ} &amp;amp; \frac{δ}{δz} \\ \frac{ρ}{10} sen θ &amp;amp; ρ \frac{ρ}{5} cos θ &amp;amp; 0 \end{matrix} \right| = \frac{3}{10} cos(θ) \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto su módulo es: &amp;lt;math&amp;gt; |V × \vec u| = |\frac{3}{10} cos(θ)| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El resultado de representarlo sobre el plano XY es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Rotacional nuestro.jpg|400x300px|miniaturadeimagen|centro|Rotacional del campo desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El rotacional indica el giro experimentado por la placa en su deformación, lo que se puede apreciar en la representación anterior y teniendo en cuenta el punto 4.3.&lt;br /&gt;
Así, los extremos de la placa, que experimentan un giro, tienen el mayor valor del rotacional. &lt;br /&gt;
Cabe decir que estos valores tendrán signo contrario, pues los giros son opuestos.&lt;br /&gt;
Esto no se tiene en consideración para la representación gráfica, pues en ella buscamos el módulo del rotacional, que siempre es positivo.&lt;br /&gt;
&lt;br /&gt;
===Tensor de tensiones===&lt;br /&gt;
En este apartado, sabiendo que nos encontramos en un medio lineal, isótropo y homogéneo (así lo indica el enunciado), la función del tensor de tensiones viene descrita de la siguiente forma: &amp;lt;math&amp;gt; σ = λ ∇ ⋅ \vec u 1 + 2 μ ε &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En dicha fórmula conocemos que los Coeficientes de Lamé (λ y μ) que dependen de las propiedades elásticas de cada material. Tomando en este caso que ambos son 1.&lt;br /&gt;
&lt;br /&gt;
La parte simétrica del tensor gradiente del campo  de deplazamientos, queda también definida de la siguiente manera: &amp;lt;math&amp;gt; ε(\vec u) = \frac{∇ \vec u + ∇ \vec u ^t}{2} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
De forma manual se ha obtenido que el gradiente del campo es &amp;lt;math&amp;gt; ∇ \vec u(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; - \frac{ρ}{10} cos θ &amp;amp; 0 \\ \frac{1}{5} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto, la matriz traspuesta del gradiente del campo es: &amp;lt;math&amp;gt; ∇ \vec u^t(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; \frac{1}{5} cos θ &amp;amp; 0 \\ - \frac{ρ}{10} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Resolviendo la parte simétrica del tensor gradiente de forma manual, se obtiene como resultado: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; cos θ (\frac{1}{10} - \frac{ρ}{20} ) &amp;amp; 0 \\ cos θ (\frac{1}{10} - \frac{ρ}{20}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De esta forma, se concluye que el tensor de tensiones viene representado de la siguiente forma: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{5} sen θ &amp;amp; cos θ (\frac{1}{5} - \frac{ρ}{10} ) &amp;amp; 0 \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Representación de las tensiones normales====&lt;br /&gt;
[[Archivo:Tensiones comparación.jpg|400x300px|miniaturadeimagen|centro|Representación de las tensiones normales]]&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_ρ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_ρ ⋅ σ ⋅ \vec e_ρ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; \frac {1}{5} sen θ \vec e_ρ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_θ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_θ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_θ ⋅ σ ⋅ \vec e_θ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_z, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt;  \vec e_z ⋅ σ ⋅ \vec e_z &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; 0 \vec e_z &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Tensiones tangenciales respecto al plano ortogonal &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;====&lt;br /&gt;
En este caso, simplemente se ha aplicado la fórmula correspondiente que es la siguiente: &amp;lt;math&amp;gt; |σ ⋅ \vec e_ρ - \vec e_ρ ⋅ σ ⋅ \vec e_ρ| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Desarrollando la fórmula: &amp;lt;math&amp;gt; \begin{pmatrix} \frac{1}{5} sen θ \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) \\ 0 \end{pmatrix} - \begin{pmatrix} \frac {1}{5} sen θ \\ 0 \\ 0 \end{pmatrix} =  cos θ (\frac {1}{5} - \frac {ρ}{10}) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación Tensiones tangenciales.jpg|400x300px|miniaturadeimagen|centro|Comparación Tensiones tangenciales]]&lt;br /&gt;
&lt;br /&gt;
===Tensión de Von Mises===&lt;br /&gt;
La tensión de Von Mises viene determinada por la fórmula: &amp;lt;math&amp;gt; σ_{VM} = \sqrt{\frac{(\vec σ_1 - \vec σ_2)^2 + (\vec σ_2 - \vec σ_3)^2 + (\vec σ_3 - \vec σ_1)^2}{2}} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Puesto que cada punto de la placa lleva asociado un tensor de la tensión, siendo  &amp;lt;math&amp;gt; \vec σ_1, \vec σ_2, \vec σ_3;  &amp;lt;/math&amp;gt; los autovalores de dicha matriz, se debe ir punto a punto calculándolos, por tanto es necesario un bucle que rellene una matriz con los valores de la tensión Von Mises para cada punto. &lt;br /&gt;
&lt;br /&gt;
La tensión de Von Mises muestra los puntos donde se produciría la rotura de la placa. En este caso rompería la parte superior de la placa.&lt;br /&gt;
&lt;br /&gt;
La representación es la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tensión Von Mises.jpg|400x300px|miniaturadeimagen|centro|Tensión Von Mises]]&lt;br /&gt;
&lt;br /&gt;
===Fuerza causante del desplazamiento===&lt;br /&gt;
Conociendo que la placa viene deformada por la función vectorial dada, se puede obtener la fuerza que motiva el desplazamiento. Esa viene definida por: &amp;lt;math&amp;gt; \vec F = - \nabla ⋅ \vec u &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El resultado de la fuerza obtenido manualmente es el descrito a continuación: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_ρ + \frac {1}{5} (\frac {1}{ρ} - 2) cos θ \vec e_θ &amp;lt;/math&amp;gt;. La componente según &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt; es nula.&lt;br /&gt;
&lt;br /&gt;
Calculado por diferenciación automática queda la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas]]&lt;br /&gt;
&lt;br /&gt;
Si de dibuja el campo de fuerzas y la las posiciones inicial y final no queda del todo claro que éste sea el campo que motiva el desplazamiento y la deformación de la placa. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas y desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de Fuerzas y desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
Si se dibuja la resultante de las fuerzas el desplazamiento de la placa queda explicado, mientras que dibujando únicamente la placa final deformada, sin considerar el desplazamiento y el campo de fuerzas, se pueden apreciar claramente que deformaciones como el achatamiento de la forma circular de la placa son causadas por el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Desplazamiento y resultante concampo de fuerzas sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas, desplazamiento y deformación de la placa]]&lt;br /&gt;
&lt;br /&gt;
==Anexo==&lt;br /&gt;
En este enlace se puede descargar el código que se ha empleado. Para que funcione es necesario tener instalado Julia y las librerías Makie y LinearAlgebra.&lt;br /&gt;
https://drive.google.com/drive/folders/1aeOkuIzscmac7BiWYsRidg_zSQZc8gfB?usp=sharing&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Teoría de Campos]][[Categoría:TC21/22]]&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=48037</id>
		<title>Grupo B12 Trabajo 5: Estudio de tensiones sobre una placa mediante diferenciación automática</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=48037"/>
				<updated>2021-12-10T20:28:19Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Estudio de tensiones sobre una placa mediante diferenciación automática. Grupo B12 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC21/22|2021-2022]] | Víctor Sillero González&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Rodrigo Vázquez Pérez }}&lt;br /&gt;
&lt;br /&gt;
El trabajo correspondiente a este grupo es el número 5, en particular consiste en el estudio de temperaturas, deformaciones y tensiones sobre una placa compuesta de medio anillo circular.&lt;br /&gt;
La peculiaridad de este trabajo radica en que se ha realizado mediante diferenciación automática gracias a una librería realizada por los componentes del grupo.&lt;br /&gt;
Dicho programa ha sido realizado en el leguaje de programación &amp;quot;Julia&amp;quot;, y por ende todo el desarrollo ha sido realizado mediante dicho lenguaje.&lt;br /&gt;
&lt;br /&gt;
Todos los gráficos se han creado a partir de la librería Makie de Julia. Se ha creado una función con los estilos que queríamos usar que toma como input campos y funciones así como una lista de puntos y algunos parámetros de estilo y dibuja la gráfica correspondiente. Al ser tanto el programa para las gráficas como la librería de diferenciación automática demasiado largos para ser publicados en esta página se adjunta un link donde se pueden descargar y ver. Aunque todos las gráficas mostradas se han producido por métodos computacionales, también se han realizado los cálculos a mano para poder mostrar las ecuaciones de los campos y tensores calculados.&lt;br /&gt;
&lt;br /&gt;
La librería utilizada a lo largo de todo el trabajo queda adjunta en el anexo.&lt;br /&gt;
&lt;br /&gt;
En este caso los datos aportados por el enunciado han sido los siguientes:&lt;br /&gt;
* Placa plana que ocupa la mitad de un anillo circular centrado en el origen y comprendido entre los radios 1 y 2, en el plano y ≥ 0.&lt;br /&gt;
* Función temperatura en la placa: &amp;lt;math&amp;gt; T(x,y) = x^2 + (y-1)^2 &amp;lt;/math&amp;gt;.&lt;br /&gt;
* Campo de deformaciones: &amp;lt;math&amp;gt;\vec u(ρ,θ) = \frac{ρ}{10} sin(θ) + \frac{ρ}{5} cos(θ) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Julia Portada.png|400x300px|miniaturadeimagen|centro|Portada programa Julia]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
Este trabajo tiene como objetivo el estudio de las tensiones y fuerzas que producen desplazamientos y deformaciones en una placa, así como su campo de temperaturas a partir de un campo de desplazamientos y una función escalar de temperaturas. Además, se va a estudiar el cálculo de derivadas y operadores diferenciales mediante métodos computacionales.&lt;br /&gt;
&lt;br /&gt;
=== Diferenciación automática===&lt;br /&gt;
&lt;br /&gt;
====Métodos habituales: Aproximación numérica====&lt;br /&gt;
Normalmente cuando se quiere obtener el valor de la derivada de una función en un punto mediante un ordenador se realiza una aproximación a partir de la definición de derivada. &amp;lt;math&amp;gt; (f(x+h) - f(x)) / h &amp;lt;/math&amp;gt; dando un valor concreto lo menor posible para h.&lt;br /&gt;
Un ejemplo del método con la función &amp;lt;math&amp;gt; f(x) = x^2 &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; h = 10^{-10} &amp;lt;/math&amp;gt;  en  &amp;lt;math&amp;gt; x = 3 &amp;lt;/math&amp;gt; &lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
h = 10^-10&lt;br /&gt;
f(x) = x^2&lt;br /&gt;
derivada = (f(3+h) - f(3)) / h&lt;br /&gt;
}}&lt;br /&gt;
El resultado dado no es exactamente 6 pero se consiguen 6 decimales de precisión por lo que es una buena aproximación. Este algoritmo realiza 3 operaciones. Evaluar f en x + h, evaluar f en x y dividir todo ello entre h.&lt;br /&gt;
&lt;br /&gt;
Un problema del método es si se emplea una h demasiado pequeña puede dar problemas.&lt;br /&gt;
&lt;br /&gt;
Si se supera el número más pequeño que se puede expresar con el tipo de dato utilizado (Float64 en nuestro caso) el resultado mostrado será 0. Por lo tanto un manejo correcto de los valores de h es esencial y complica el método bastante.&lt;br /&gt;
&lt;br /&gt;
====Números duales====&lt;br /&gt;
El método empleado en este trabajo es exacto. No se realiza ninguna aproximación. Para ello es necesario definir un nuevo tipo de número distinto de los reales o los complejos, los números duales.&lt;br /&gt;
&lt;br /&gt;
Los números duales son números del tipo a + bε siendo a y b números reales o duales. &lt;br /&gt;
&lt;br /&gt;
Denominamos parte real al número a y parte derivada al número b.&lt;br /&gt;
&lt;br /&gt;
Además se define la siguiente propiedad. ε es distinto de 0 y &amp;lt;math&amp;gt; ε^2 = 0 &amp;lt;/math&amp;gt;. ε por lo tanto no es un número real.&lt;br /&gt;
&lt;br /&gt;
Las operaciones aritméticas básicas se definen de manera sencilla.&lt;br /&gt;
* Suma: &amp;lt;math&amp;gt;  (a + bε) + (c + dε) = (a + c) + (b + d)ε &amp;lt;/math&amp;gt; &lt;br /&gt;
* Producto &amp;lt;math&amp;gt; (a + bε) * (c + dε) = ac + (bc + ad)ε + (bd)^2 * ε^2&amp;lt;/math&amp;gt; , como &amp;lt;math&amp;gt;  ε^2 = 0 &amp;lt;/math&amp;gt; el resultado final es &amp;lt;math&amp;gt; (a + bε) * (c + dε) = ac + (bc + ad)ε&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
====Series de Taylor y números duales====&lt;br /&gt;
Sea f una función cualquiera y a un punto del dominio de f la serie de Taylor de f en el punto a es&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
f(x) = f(a) + \frac{f'(a)}{1!}(x-a) + \frac{f''(a)}{2!}(x-a)^{2} + ... = \sum_{i=0}^\infty \frac{f^{i}(a)}{i!}(x-a)^{i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
Si se evalúa la serie de Taylor de f en el valor dual x = a + ε se obtiene &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(a + ε) = f(a) + f'(a)ε + \frac{f''(a)}{2!}ε^{2} + ... &amp;lt;/math&amp;gt; y como &amp;lt;math&amp;gt; ε^{2} = 0 &amp;lt;/math&amp;gt; el resultado final es&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(a + ε) = f(a) + f'(a)ε &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La parte real de &amp;lt;math&amp;gt; f(a + ε) &amp;lt;/math&amp;gt; es f evaluado en a, es decir f(a) y la parte derivada de f(a + ε) es la derivada de f evaluada en a, es decir f'(a).&lt;br /&gt;
&lt;br /&gt;
====Cálculo de derivadas por números duales====&lt;br /&gt;
Gracias a las propiedades comentadas en la sección anterior podemos establecer un nuevo método esta vez exacto para calcular derivadas. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f'(a) = parte Derivada[f(a + ε)] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Este método consiste en únicamente una operación siendo no solamente exacto sino además más rápido que el método aproximado.&lt;br /&gt;
&lt;br /&gt;
====Programación====&lt;br /&gt;
En primer lugar se define un nuevo tipo de dato Dual, con las propiedades de parte real x y parte derivada ε.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
mutable struct Dual{T&amp;lt;:Real} &amp;lt;: Real &lt;br /&gt;
    x::T&lt;br /&gt;
    ϵ::T&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
Ahora se definen las operaciones básicas sobre el tipo de dato dual. Aquí se muestran algunas de ellas.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
#negación &lt;br /&gt;
Base.:-(a::Dual) = Dual(-1 * a.x, -1* a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#suma&lt;br /&gt;
Base.:+(a::Dual, b::Dual) = Dual(a.x + b.x, a.ϵ .+ b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#diferencia&lt;br /&gt;
Base.:-(a::Dual, b::Dual) = Dual(a.x - b.x, a.ϵ - b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#producto&lt;br /&gt;
Base.:*(a::Dual, b::Dual) = Dual(a.x * b.x, b.x * a.ϵ + a.x * b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#reciproco &lt;br /&gt;
recip = a::Dual -&amp;gt; Dual(1. / a.x, (-1* a.ϵ) / (a.x ^2))&lt;br /&gt;
&lt;br /&gt;
#cociente&lt;br /&gt;
Base.:/(a::Dual, b::Dual) = a * recip(b)&lt;br /&gt;
&lt;br /&gt;
#exponencial, potencia y raíz_cuadrada&lt;br /&gt;
Base.:exp(a::Dual) = exp(a.x) * Dual(1.,a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#logaritmo &lt;br /&gt;
Base.:log(a::Dual) = Dual(log(a.x), a.ϵ / a.x)&lt;br /&gt;
&lt;br /&gt;
#trigonometria&lt;br /&gt;
Base.:sin(d::Dual) = Dual(sin(d.x), d.ϵ * cos(d.x))&lt;br /&gt;
Base.:cos(d::Dual) = Dual(cos(d.x), - d.ϵ * sin(d.x))&lt;br /&gt;
}}&lt;br /&gt;
Y ya podríamos calcular derivadas. Por ejemplo creando la función f(x) = x^2 y evaluándola en el punto Dual(4, 1) se obtiene el número Dual(16, 8), 8 es la derivada de x^2 en el punto 4.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
f(x) = x^2 &lt;br /&gt;
f(Dual(4., 1.))&lt;br /&gt;
}}&lt;br /&gt;
A partir de este código se programa una librería capaz de calcular gradientes, divergencias y rotacionales de cualquier función. Además es capaz de trabajar en coordenadas cilíndricas esféricas y cartesianas.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo el tensor gradiente de una función u en un punto en la librería se calcula con el comando:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
u.grad(punto)&lt;br /&gt;
}}&lt;br /&gt;
Existen algoritmos más avanzados que hacen este proceso aún más rápido pero para cubrir nuestras necesidades la velocidad aportada por esta librería es suficiente.&lt;br /&gt;
&lt;br /&gt;
Para realizar el trabajo se define la placa, la función de temperaturas y el campo de desplazamientos y el programa crea todas las gráficas necesarias, por lo que nuestro programa es capaz de resolver cualquiera de los trabajos que se han planteado de manera instantánea.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
λ = 1&lt;br /&gt;
μ = 1&lt;br /&gt;
&lt;br /&gt;
rango = 0.1&lt;br /&gt;
&lt;br /&gt;
ρ_s = range(1, 2, 11) # discretización de variables&lt;br /&gt;
θ_s = range(0, pi, 32)&lt;br /&gt;
z_s = zeros(size(ρ_s))&lt;br /&gt;
&lt;br /&gt;
#campo de temperaturas&lt;br /&gt;
t = x -&amp;gt; x[1]^2 +(x[2] - 1)^2 #cartesianas&lt;br /&gt;
&lt;br /&gt;
T = funcion_escalar(t, tipo = 1)&lt;br /&gt;
&lt;br /&gt;
u = funcion_vectorial(x -&amp;gt; [(x[1] / 10) * sin(x[2]), (x[1] / 5) * cos(x[2]), 0], tipo = 2) # cilíndricas&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Dibujo del mallado==&lt;br /&gt;
&lt;br /&gt;
En primer lugar es necesario dibujar la placa que se va a estudiar. &lt;br /&gt;
La placa se define en coordenadas cilíndricas (base física cilíndrica) con la siguiente parametrización: &amp;lt;math&amp;gt; ρ = u -&amp;gt; [0,2] ; θ = v -&amp;gt; [0, π]; z = 0&amp;lt;/math&amp;gt;. &lt;br /&gt;
En el caso de que la placa fuese más compleja, nuestro programa también aceptaría definirla mediante una función que tomando un punto como entrada, devuelva 1 o 0 dependiendo de si dicho punto se encuentra en la placa o no.&lt;br /&gt;
&lt;br /&gt;
Los ejes tomados para dibujar las gráficas han sido [−2, 2] × [0, 2] y se ha dibujado un mallado con el comando &amp;quot;wireframe&amp;quot;.&lt;br /&gt;
Por otra parte, el muestreo utilizado ha sido &amp;lt;math&amp;gt;h= \frac{1}{10}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Placa Nuestra.jpg|400x300px|miniaturadeimagen|centro|Placa representada]]&lt;br /&gt;
&lt;br /&gt;
==Campo de las temperaturas en la placa==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Dibujo de las curvas de nivel===&lt;br /&gt;
Una vez definida la función temperatura T(x,y) en cartesianas, una parametrización para la placa y habiendo elegido el número de curvas a representar, (20), mediante la función &amp;quot;contour&amp;quot; se han dibujado las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Curvas Temperatura.jpg|400x300px|miniaturadeimagen|centro|Curvas de nivel de la Temperatura]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Máximo de temperatura===&lt;br /&gt;
Para obtener el máximo de la temperatura con precisión la función &amp;quot;dibujar2D&amp;quot; que empleamos para dibujar las gráficas devuelve el mayor valor e indica dicho punto mediante un aspa roja.&lt;br /&gt;
&lt;br /&gt;
===Dibujo del gradiente como campo vectorial (&amp;lt;math&amp;gt; \nabla &amp;lt;/math&amp;gt;T)===&lt;br /&gt;
De la función de la temperatura dada, se ha obtenido el gradiente: &amp;lt;math&amp;gt; 2x \vec i + 2 (y - 1) \vec j &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dibujado junto a las curvas de nivel, se observa fácilmente la perpendicularidad entre dichas curvas y los vectores representados.&lt;br /&gt;
Esto tiene sentido puesto que el gradiente indica la dirección de mayor crecimiento mientras que su perpendicular indica el crecimiento nulo. &lt;br /&gt;
Esta última dirección es, por tanto, tangente a las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Gradiente Nuestro.jpg|400x300px|miniaturadeimagen|centro|Gradiente]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tensiones y fuerzas==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Posición inicial y final de la placa===&lt;br /&gt;
Como punto de partida se dibuja la posición inicial y final de la placa. &lt;br /&gt;
Los puntos de la posición final se han calculado sumando a cada punto de la placa inicial su vector desplazamiento dado por la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt;. &lt;br /&gt;
Además, restando a la placa final la media de los desplazamientos en todos los puntos se ha obtenido una gráfica que muestra únicamente las deformaciones que la placa experimenta.&lt;br /&gt;
De esta forma, permite ver que la placa final está achatada y deja de ser circular.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación placa inicial y final con deformación sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Comparación de la placa inicial y final con deformación de la placa sin desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El objetivo final es conocer el campo de fuerzas que ha producido este desplazamiento. &lt;br /&gt;
Para ello a partir del campo de desplazamientos se calculan las tensiones que experimenta la placa y a partir de éstas, el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
===Representación del campo vectorial de desplazamientos===&lt;br /&gt;
Tras definir la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt; en el código, y mediante el uso de la función &amp;quot;arrows&amp;quot; (gracias a que el campo no dispone de componente vertical), se obtiene la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
===Divergencia y rotacional===&lt;br /&gt;
Calcular la divergencia y el rotacional del campo de desplazamientos es de gran utilidad, ya que estos aportan información muy valiosa sobre las características de la deformación que experimenta la placa. &lt;br /&gt;
&lt;br /&gt;
El rotacional mide cuánto rotan los puntos de la placa. Su módulo cuantifica la rotación, mientras que su dirección y sentido dan el eje de rotación.&lt;br /&gt;
La divergencia en cambio, mide cuánto cambia el área en un entrono de cada punto. &lt;br /&gt;
&lt;br /&gt;
La deformación de un entorno de un punto de la placa, no su desplazamiento, es por lo tanto la rotación y el cambio de tamaño de ese entorno. &lt;br /&gt;
&lt;br /&gt;
Para tener una mejor intuición de lo que esto significa, se ha dibujado el módulo del rotacional y la divergencia de una rotación de ángulo π/2, una escala de la placa del factor 2 y un desplazamiento sin deformación de dirección 2 &amp;lt;math&amp;gt; \vec i &amp;lt;/math&amp;gt;. En el desplazamiento como no hay deformación, el rotacional y la divergencia deben valer cero. &lt;br /&gt;
El rotacional es mayor que cero e igual en todos los puntos y la divergencia es cero. Esto se debe a que todos los puntos rotan por igual (π/2) y su área no cambia. En la escala por el factor 2, el rotacional debe ser nulo y la divergencia 4, ya que cada lado se duplica produciendo una cuadruplicación del área.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación 2.jpg|400x300px|miniaturadeimagen|centro|Explicación divergencia y rotacional]]&lt;br /&gt;
&lt;br /&gt;
====Divergencia del campo desplazamientos====&lt;br /&gt;
Calculando la divergencia de forma manual y con diferenciación automática, se ha concluido que esta es nula en cualquier punto: &amp;lt;math&amp;gt; ∇ ⋅ \vec u =  \frac{1}{ρ} [\frac{δ}{δρ} (ρ (\frac{ρ}{10} sen θ)) + \frac{δ}{δθ} (\frac{ρ}{5} cos θ) + \frac{δ}{δz} (ρ 0)] = 0 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lo que indica la divergencia es la variación del diferencial de área. En este caso concreto en que es nula, se puede apreciar en la gráfica del punto anterior como aunque los cuadrados del mallado de la placa puedan ser deformados mantienen el mismo tamaño, es decir, ni se dilatan ni se contraen.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Divergencia Nuestra.jpg|400x300px|miniaturadeimagen|centro|Divergencia del campo]]&lt;br /&gt;
&lt;br /&gt;
====Visualización del módulo del rotacional del campo desplazamiento====&lt;br /&gt;
Mediante el cálculo manual se ha obtenido el siguiente rotacional: &amp;lt;math&amp;gt; V × \vec u = \frac{1}{ρ} \left| \begin{matrix} \vec e_ρ &amp;amp; ρ \vec e_θ &amp;amp; \vec e_z \\ \frac{δ}{δρ} &amp;amp; \frac{δ}{δθ} &amp;amp; \frac{δ}{δz} \\ \frac{ρ}{10} sen θ &amp;amp; ρ \frac{ρ}{5} cos θ &amp;amp; 0 \end{matrix} \right| = \frac{3}{10} cos(θ) \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto su módulo es: &amp;lt;math&amp;gt; |V × \vec u| = |\frac{3}{10} cos(θ)| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El resultado de representarlo sobre el plano XY es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Rotacional nuestro.jpg|400x300px|miniaturadeimagen|centro|Rotacional del campo desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El rotacional indica el giro experimentado por la placa en su deformación, lo que se puede apreciar en la representación anterior y teniendo en cuenta el punto 4.3.&lt;br /&gt;
Así, los extremos de la placa, que experimentan un giro, tienen el mayor valor del rotacional. &lt;br /&gt;
Cabe decir que estos valores tendrán signo contrario, pues los giros son opuestos.&lt;br /&gt;
Esto no se tiene en consideración para la representación gráfica, pues en ella buscamos el módulo del rotacional, que siempre es positivo.&lt;br /&gt;
&lt;br /&gt;
===Tensor de tensiones===&lt;br /&gt;
En este apartado, sabiendo que nos encontramos en un medio lineal, isótropo y homogéneo (así lo indica el enunciado), la función del tensor de tensiones viene descrita de la siguiente forma: &amp;lt;math&amp;gt; σ = λ ∇ ⋅ \vec u 1 + 2 μ ε &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En dicha fórmula conocemos que los Coeficientes de Lamé (λ y μ) que dependen de las propiedades elásticas de cada material. Tomando en este caso que ambos son 1.&lt;br /&gt;
&lt;br /&gt;
La parte simétrica del tensor gradiente del campo  de deplazamientos, queda también definida de la siguiente manera: &amp;lt;math&amp;gt; ε(\vec u) = \frac{∇ \vec u + ∇ \vec u ^t}{2} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
De forma manual se ha obtenido que el gradiente del campo es &amp;lt;math&amp;gt; ∇ \vec u(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; - \frac{ρ}{10} cos θ &amp;amp; 0 \\ \frac{1}{5} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto, la matriz traspuesta del gradiente del campo es: &amp;lt;math&amp;gt; ∇ \vec u^t(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; \frac{1}{5} cos θ &amp;amp; 0 \\ - \frac{ρ}{10} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Resolviendo la parte simétrica del tensor gradiente de forma manual, se obtiene como resultado: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; cos θ (\frac{1}{10} - \frac{ρ}{20} ) &amp;amp; 0 \\ cos θ (\frac{1}{10} - \frac{ρ}{20}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De esta forma, se concluye que el tensor de tensiones viene representado de la siguiente forma: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{5} sen θ &amp;amp; cos θ (\frac{1}{5} - \frac{ρ}{10} ) &amp;amp; 0 \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Representación de las tensiones normales====&lt;br /&gt;
[[Archivo:Tensiones comparación.jpg|400x300px|miniaturadeimagen|centro|Representación de las tensiones normales]]&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_ρ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_ρ ⋅ σ ⋅ \vec e_ρ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; \frac {1}{5} sen θ \vec e_ρ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_θ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_θ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_θ ⋅ σ ⋅ \vec e_θ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_z, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt;  \vec e_z ⋅ σ ⋅ \vec e_z &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; 0 \vec e_z &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Tensiones tangenciales respecto al plano ortogonal &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;====&lt;br /&gt;
En este caso, simplemente se ha aplicado la fórmula correspondiente que es la siguiente: &amp;lt;math&amp;gt; |σ ⋅ \vec e_ρ - \vec e_ρ ⋅ σ ⋅ \vec e_ρ| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Desarrollando la fórmula: &amp;lt;math&amp;gt; \begin{pmatrix} \frac{1}{5} sen θ \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) \\ 0 \end{pmatrix} - \begin{pmatrix} \frac {1}{5} sen θ \\ 0 \\ 0 \end{pmatrix} =  cos θ (\frac {1}{5} - \frac {ρ}{10}) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación Tensiones tangenciales.jpg|400x300px|miniaturadeimagen|centro|Comparación Tensiones tangenciales]]&lt;br /&gt;
&lt;br /&gt;
===Tensión de Von Mises===&lt;br /&gt;
La tensión de Von Mises viene determinada por la fórmula: &amp;lt;math&amp;gt; σ_{VM} = \sqrt{\frac{(\vec σ_1 - \vec σ_2)^2 + (\vec σ_2 - \vec σ_3)^2 + (\vec σ_3 - \vec σ_1)^2}{2}} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Puesto que cada punto de la placa lleva asociado un tensor de la tensión, siendo  &amp;lt;math&amp;gt; \vec σ_1, \vec σ_2, \vec σ_3;  &amp;lt;/math&amp;gt; los autovalores de dicha matriz, se debe ir punto a punto calculándolos, por tanto es necesario un bucle que rellene una matriz con los valores de la tensión Von Mises para cada punto. &lt;br /&gt;
&lt;br /&gt;
La tensión de Von Mises muestra los puntos donde se produciría la rotura de la placa. En este caso rompería la parte superior de la placa.&lt;br /&gt;
&lt;br /&gt;
La representación es la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tensión Von Mises.jpg|400x300px|miniaturadeimagen|centro|Tensión Von Mises]]&lt;br /&gt;
&lt;br /&gt;
===Fuerza causante del desplazamiento===&lt;br /&gt;
Conociendo que la placa viene deformada por la función vectorial dada, se puede obtener la fuerza que motiva el desplazamiento. Esa viene definida por: &amp;lt;math&amp;gt; \vec F = - \nabla ⋅ \vec u &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El resultado de la fuerza obtenido manualmente es el descrito a continuación: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_ρ + \frac {1}{5} (\frac {1}{ρ} - 2) cos θ \vec e_θ &amp;lt;/math&amp;gt;. La componente según &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt; es nula.&lt;br /&gt;
&lt;br /&gt;
Calculado por diferenciación automática queda la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas]]&lt;br /&gt;
&lt;br /&gt;
Si de dibuja el campo de fuerzas y la las posiciones inicial y final no queda del todo claro que éste sea el campo que motiva el desplazamiento y la deformación de la placa. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas y desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de Fuerzas y desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
Si se dibuja la resultante de las fuerzas el desplazamiento de la placa queda explicado, mientras que dibujando únicamente la placa final deformada, sin considerar el desplazamiento y el campo de fuerzas, se pueden apreciar claramente que deformaciones como el achatamiento de la forma circular de la placa son causadas por el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Desplazamiento y resultante concampo de fuerzas sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas, desplazamiento y deformación de la placa]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Teoría de Campos]][[Categoría:TC21/22]]&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=48034</id>
		<title>Grupo B12 Trabajo 5: Estudio de tensiones sobre una placa mediante diferenciación automática</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=48034"/>
				<updated>2021-12-10T20:25:02Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: /* Métodos habituales: Aproximación numérica */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Estudio de tensiones sobre una placa mediante diferenciación automática. Grupo B12 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC21/22|2021-2022]] | Víctor Sillero González&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Rodrigo Vázquez Pérez }}&lt;br /&gt;
&lt;br /&gt;
El trabajo correspondiente a este grupo es el número 5, en particular consiste en el estudio de temperaturas, deformaciones y tensiones sobre una placa compuesta de medio anillo circular.&lt;br /&gt;
La peculiaridad de este trabajo radica en que se ha realizado mediante diferenciación automática gracias a una librería realizada por los componentes del grupo.&lt;br /&gt;
Dicho programa ha sido realizado en el leguaje de programación &amp;quot;Julia&amp;quot;, y por ende todo el desarrollo ha sido realizado mediante dicho lenguaje.&lt;br /&gt;
&lt;br /&gt;
Todos los gráficos se han creado a partir de la librería Makie de Julia. Se ha creado una función con los estilos que queríamos usar que toma como input campos y funciones así como una lista de puntos y algunos parámetros de estilo y dibuja la gráfica correspondiente. Al ser tanto el programa para las gráficas como la librería de diferenciación automática demasiado largos para ser publicados en esta página se adjunta un link donde se pueden descargar y ver. Aunque todos las gráficas mostradas se han producido por métodos computacionales se también se han realizado los cálculos a mano.&lt;br /&gt;
&lt;br /&gt;
La librería utilizada a lo largo de todo el trabajo queda adjunta en el anexo.&lt;br /&gt;
&lt;br /&gt;
En este caso los datos aportados por el enunciado han sido los siguientes:&lt;br /&gt;
* Placa plana que ocupa la mitad de un anillo circular centrado en el origen y comprendido entre los radios 1 y 2, en el plano y ≥ 0.&lt;br /&gt;
* Función temperatura en la placa: &amp;lt;math&amp;gt; T(x,y) = x^2 + (y-1)^2 &amp;lt;/math&amp;gt;.&lt;br /&gt;
* Campo de deformaciones: &amp;lt;math&amp;gt;\vec u(ρ,θ) = \frac{ρ}{10} sin(θ) + \frac{ρ}{5} cos(θ) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Julia Portada.png|400x300px|miniaturadeimagen|centro|Portada programa Julia]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
Este trabajo tiene como objetivo el estudio de las tensiones y fuerzas que producen desplazamientos y deformaciones en una placa, así como su campo de temperaturas a partir de un campo de desplazamientos y una función escalar de temperaturas. Además, se va a estudiar el cálculo de derivadas y operadores diferenciales mediante métodos computacionales.&lt;br /&gt;
&lt;br /&gt;
=== Diferenciación automática===&lt;br /&gt;
&lt;br /&gt;
====Métodos habituales: Aproximación numérica====&lt;br /&gt;
Normalmente cuando se quiere obtener el valor de la derivada de una función en un punto mediante un ordenador se realiza una aproximación a partir de la definición de derivada. &amp;lt;math&amp;gt; (f(x+h) - f(x)) / h &amp;lt;/math&amp;gt; dando un valor concreto lo menor posible para h.&lt;br /&gt;
Un ejemplo del método con la función &amp;lt;math&amp;gt; f(x) = x^2 &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; h = 10^{-10} &amp;lt;/math&amp;gt;  en  &amp;lt;math&amp;gt; x = 3 &amp;lt;/math&amp;gt; &lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
h = 10^-10&lt;br /&gt;
f(x) = x^2&lt;br /&gt;
derivada = (f(3+h) - f(3)) / h&lt;br /&gt;
}}&lt;br /&gt;
El resultado dado no es exactamente 6 pero se consiguen 6 decimales de precisión por lo que es una buena aproximación. Este algoritmo realiza 3 operaciones. Evaluar f en x + h, evaluar f en x y dividir todo ello entre h.&lt;br /&gt;
&lt;br /&gt;
Un problema del método es si se emplea una h demasiado pequeña puede dar problemas.&lt;br /&gt;
&lt;br /&gt;
Si se supera el número más pequeño que se puede expresar con el tipo de dato utilizado (Float64 en nuestro caso) el resultado mostrado será 0. Por lo tanto un manejo correcto de los valores de h es esencial y complica el método bastante.&lt;br /&gt;
&lt;br /&gt;
====Números duales====&lt;br /&gt;
El método empleado en este trabajo es exacto. No se realiza ninguna aproximación. Para ello es necesario definir un nuevo tipo de número distinto de los reales o los complejos, los números duales.&lt;br /&gt;
&lt;br /&gt;
Los números duales son números del tipo a + bε siendo a y b números reales o duales. &lt;br /&gt;
&lt;br /&gt;
Denominamos parte real al número a y parte derivada al número b.&lt;br /&gt;
&lt;br /&gt;
Además se define la siguiente propiedad. ε es distinto de 0 y &amp;lt;math&amp;gt; ε^2 = 0 &amp;lt;/math&amp;gt;. ε por lo tanto no es un número real.&lt;br /&gt;
&lt;br /&gt;
Las operaciones aritméticas básicas se definen de manera sencilla.&lt;br /&gt;
* Suma: &amp;lt;math&amp;gt;  (a + bε) + (c + dε) = (a + c) + (b + d)ε &amp;lt;/math&amp;gt; &lt;br /&gt;
* Producto &amp;lt;math&amp;gt; (a + bε) * (c + dε) = ac + (bc + ad)ε + (bd)^2 * ε^2&amp;lt;/math&amp;gt; , como &amp;lt;math&amp;gt;  ε^2 = 0 &amp;lt;/math&amp;gt; el resultado final es &amp;lt;math&amp;gt; (a + bε) * (c + dε) = ac + (bc + ad)ε&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
====Series de Taylor y números duales====&lt;br /&gt;
Sea f una función cualquiera y a un punto del dominio de f la serie de Taylor de f en el punto a es&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
f(x) = f(a) + \frac{f'(a)}{1!}(x-a) + \frac{f''(a)}{2!}(x-a)^{2} + ... = \sum_{i=0}^\infty \frac{f^{i}(a)}{i!}(x-a)^{i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
Si se evalúa la serie de Taylor de f en el valor dual x = a + ε se obtiene &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(a + ε) = f(a) + f'(a)ε + \frac{f''(a)}{2!}ε^{2} + ... &amp;lt;/math&amp;gt; y como &amp;lt;math&amp;gt; ε^{2} = 0 &amp;lt;/math&amp;gt; el resultado final es&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(a + ε) = f(a) + f'(a)ε &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La parte real de &amp;lt;math&amp;gt; f(a + ε) &amp;lt;/math&amp;gt; es f evaluado en a, es decir f(a) y la parte derivada de f(a + ε) es la derivada de f evaluada en a, es decir f'(a).&lt;br /&gt;
&lt;br /&gt;
====Cálculo de derivadas por números duales====&lt;br /&gt;
Gracias a las propiedades comentadas en la sección anterior podemos establecer un nuevo método esta vez exacto para calcular derivadas. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f'(a) = parte Derivada[f(a + ε)] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Este método consiste en únicamente una operación siendo no solamente exacto sino además más rápido que el método aproximado.&lt;br /&gt;
&lt;br /&gt;
====Programación====&lt;br /&gt;
En primer lugar se define un nuevo tipo de dato Dual, con las propiedades de parte real x y parte derivada ε.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
mutable struct Dual{T&amp;lt;:Real} &amp;lt;: Real &lt;br /&gt;
    x::T&lt;br /&gt;
    ϵ::T&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
Ahora se definen las operaciones básicas sobre el tipo de dato dual. Aquí se muestran algunas de ellas.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
#negación &lt;br /&gt;
Base.:-(a::Dual) = Dual(-1 * a.x, -1* a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#suma&lt;br /&gt;
Base.:+(a::Dual, b::Dual) = Dual(a.x + b.x, a.ϵ .+ b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#diferencia&lt;br /&gt;
Base.:-(a::Dual, b::Dual) = Dual(a.x - b.x, a.ϵ - b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#producto&lt;br /&gt;
Base.:*(a::Dual, b::Dual) = Dual(a.x * b.x, b.x * a.ϵ + a.x * b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#reciproco &lt;br /&gt;
recip = a::Dual -&amp;gt; Dual(1. / a.x, (-1* a.ϵ) / (a.x ^2))&lt;br /&gt;
&lt;br /&gt;
#cociente&lt;br /&gt;
Base.:/(a::Dual, b::Dual) = a * recip(b)&lt;br /&gt;
&lt;br /&gt;
#exponencial, potencia y raíz_cuadrada&lt;br /&gt;
Base.:exp(a::Dual) = exp(a.x) * Dual(1.,a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#logaritmo &lt;br /&gt;
Base.:log(a::Dual) = Dual(log(a.x), a.ϵ / a.x)&lt;br /&gt;
&lt;br /&gt;
#trigonometria&lt;br /&gt;
Base.:sin(d::Dual) = Dual(sin(d.x), d.ϵ * cos(d.x))&lt;br /&gt;
Base.:cos(d::Dual) = Dual(cos(d.x), - d.ϵ * sin(d.x))&lt;br /&gt;
}}&lt;br /&gt;
Y ya podríamos calcular derivadas. Por ejemplo creando la función f(x) = x^2 y evaluándola en el punto Dual(4, 1) se obtiene el número Dual(16, 8), 8 es la derivada de x^2 en el punto 4.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
f(x) = x^2 &lt;br /&gt;
f(Dual(4., 1.))&lt;br /&gt;
}}&lt;br /&gt;
A partir de este código se programa una librería capaz de calcular gradientes, divergencias y rotacionales de cualquier función. Además es capaz de trabajar en coordenadas cilíndricas esféricas y cartesianas.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo el tensor gradiente de una función u en un punto en la librería se calcula con el comando:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
u.grad(punto)&lt;br /&gt;
}}&lt;br /&gt;
Existen algoritmos más avanzados que hacen este proceso aún más rápido pero para cubrir nuestras necesidades la velocidad aportada por esta librería es suficiente.&lt;br /&gt;
&lt;br /&gt;
Para realizar el trabajo se define la placa, la función de temperaturas y el campo de desplazamientos y el programa crea todas las gráficas necesarias, por lo que nuestro programa es capaz de resolver cualquiera de los trabajos que se han planteado de manera instantánea.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
λ = 1&lt;br /&gt;
μ = 1&lt;br /&gt;
&lt;br /&gt;
rango = 0.1&lt;br /&gt;
&lt;br /&gt;
ρ_s = range(1, 2, 11) # discretización de variables&lt;br /&gt;
θ_s = range(0, pi, 32)&lt;br /&gt;
z_s = zeros(size(ρ_s))&lt;br /&gt;
&lt;br /&gt;
#campo de temperaturas&lt;br /&gt;
t = x -&amp;gt; x[1]^2 +(x[2] - 1)^2 #cartesianas&lt;br /&gt;
&lt;br /&gt;
T = funcion_escalar(t, tipo = 1)&lt;br /&gt;
&lt;br /&gt;
u = funcion_vectorial(x -&amp;gt; [(x[1] / 10) * sin(x[2]), (x[1] / 5) * cos(x[2]), 0], tipo = 2) # cilíndricas&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Dibujo del mallado==&lt;br /&gt;
&lt;br /&gt;
En primer lugar es necesario dibujar la placa que se va a estudiar. &lt;br /&gt;
La placa se define en coordenadas cilíndricas (base física cilíndrica) con la siguiente parametrización: &amp;lt;math&amp;gt; ρ = u -&amp;gt; [0,2] ; θ = v -&amp;gt; [0, π]; z = 0&amp;lt;/math&amp;gt;. &lt;br /&gt;
En el caso de que la placa fuese más compleja, nuestro programa también aceptaría definirla mediante una función que tomando un punto como entrada, devuelva 1 o 0 dependiendo de si dicho punto se encuentra en la placa o no.&lt;br /&gt;
&lt;br /&gt;
Los ejes tomados para dibujar las gráficas han sido [−2, 2] × [0, 2] y se ha dibujado un mallado con el comando &amp;quot;wireframe&amp;quot;.&lt;br /&gt;
Por otra parte, el muestreo utilizado ha sido &amp;lt;math&amp;gt;h= \frac{1}{10}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Placa Nuestra.jpg|400x300px|miniaturadeimagen|centro|Placa representada]]&lt;br /&gt;
&lt;br /&gt;
==Campo de las temperaturas en la placa==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Dibujo de las curvas de nivel===&lt;br /&gt;
Una vez definida la función temperatura T(x,y) en cartesianas, una parametrización para la placa y habiendo elegido el número de curvas a representar, (20), mediante la función &amp;quot;contour&amp;quot; se han dibujado las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Curvas Temperatura.jpg|400x300px|miniaturadeimagen|centro|Curvas de nivel de la Temperatura]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Máximo de temperatura===&lt;br /&gt;
Para obtener el máximo de la temperatura con precisión la función &amp;quot;dibujar2D&amp;quot; que empleamos para dibujar las gráficas devuelve el mayor valor e indica dicho punto mediante un aspa roja.&lt;br /&gt;
&lt;br /&gt;
===Dibujo del gradiente como campo vectorial (&amp;lt;math&amp;gt; \nabla &amp;lt;/math&amp;gt;T)===&lt;br /&gt;
De la función de la temperatura dada, se ha obtenido el gradiente: &amp;lt;math&amp;gt; 2x \vec i + 2 (y - 1) \vec j &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dibujado junto a las curvas de nivel, se observa fácilmente la perpendicularidad entre dichas curvas y los vectores representados.&lt;br /&gt;
Esto tiene sentido puesto que el gradiente indica la dirección de mayor crecimiento mientras que su perpendicular indica el crecimiento nulo. &lt;br /&gt;
Esta última dirección es, por tanto, tangente a las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Gradiente Nuestro.jpg|400x300px|miniaturadeimagen|centro|Gradiente]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tensiones y fuerzas==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Posición inicial y final de la placa===&lt;br /&gt;
Como punto de partida se dibuja la posición inicial y final de la placa. &lt;br /&gt;
Los puntos de la posición final se han calculado sumando a cada punto de la placa inicial su vector desplazamiento dado por la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt;. &lt;br /&gt;
Además, restando a la placa final la media de los desplazamientos en todos los puntos se ha obtenido una gráfica que muestra únicamente las deformaciones que la placa experimenta.&lt;br /&gt;
De esta forma, permite ver que la placa final está achatada y deja de ser circular.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación placa inicial y final con deformación sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Comparación de la placa inicial y final con deformación de la placa sin desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El objetivo final es conocer el campo de fuerzas que ha producido este desplazamiento. &lt;br /&gt;
Para ello a partir del campo de desplazamientos se calculan las tensiones que experimenta la placa y a partir de éstas, el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
===Representación del campo vectorial de desplazamientos===&lt;br /&gt;
Tras definir la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt; en el código, y mediante el uso de la función &amp;quot;arrows&amp;quot; (gracias a que el campo no dispone de componente vertical), se obtiene la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
===Divergencia y rotacional===&lt;br /&gt;
Calcular la divergencia y el rotacional del campo de desplazamientos es de gran utilidad, ya que estos aportan información muy valiosa sobre las características de la deformación que experimenta la placa. &lt;br /&gt;
&lt;br /&gt;
El rotacional mide cuánto rotan los puntos de la placa. Su módulo cuantifica la rotación, mientras que su dirección y sentido dan el eje de rotación.&lt;br /&gt;
La divergencia en cambio, mide cuánto cambia el área en un entrono de cada punto. &lt;br /&gt;
&lt;br /&gt;
La deformación de un entorno de un punto de la placa, no su desplazamiento, es por lo tanto la rotación y el cambio de tamaño de ese entorno. &lt;br /&gt;
&lt;br /&gt;
Para tener una mejor intuición de lo que esto significa, se ha dibujado el módulo del rotacional y la divergencia de una rotación de ángulo π/2, una escala de la placa del factor 2 y un desplazamiento sin deformación de dirección 2 &amp;lt;math&amp;gt; \vec i &amp;lt;/math&amp;gt;. En el desplazamiento como no hay deformación, el rotacional y la divergencia deben valer cero. &lt;br /&gt;
El rotacional es mayor que cero e igual en todos los puntos y la divergencia es cero. Esto se debe a que todos los puntos rotan por igual (π/2) y su área no cambia. En la escala por el factor 2, el rotacional debe ser nulo y la divergencia 4, ya que cada lado se duplica produciendo una cuadruplicación del área.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación 2.jpg|400x300px|miniaturadeimagen|centro|Explicación divergencia y rotacional]]&lt;br /&gt;
&lt;br /&gt;
====Divergencia del campo desplazamientos====&lt;br /&gt;
Calculando la divergencia de forma manual y con diferenciación automática, se ha concluido que esta es nula en cualquier punto: &amp;lt;math&amp;gt; ∇ ⋅ \vec u =  \frac{1}{ρ} [\frac{δ}{δρ} (ρ (\frac{ρ}{10} sen θ)) + \frac{δ}{δθ} (\frac{ρ}{5} cos θ) + \frac{δ}{δz} (ρ 0)] = 0 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lo que indica la divergencia es la variación del diferencial de área. En este caso concreto en que es nula, se puede apreciar en la gráfica del punto anterior como aunque los cuadrados del mallado de la placa puedan ser deformados mantienen el mismo tamaño, es decir, ni se dilatan ni se contraen.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Divergencia Nuestra.jpg|400x300px|miniaturadeimagen|centro|Divergencia del campo]]&lt;br /&gt;
&lt;br /&gt;
====Visualización del módulo del rotacional del campo desplazamiento====&lt;br /&gt;
Mediante el cálculo manual se ha obtenido el siguiente rotacional: &amp;lt;math&amp;gt; V × \vec u = \frac{1}{ρ} \left| \begin{matrix} \vec e_ρ &amp;amp; ρ \vec e_θ &amp;amp; \vec e_z \\ \frac{δ}{δρ} &amp;amp; \frac{δ}{δθ} &amp;amp; \frac{δ}{δz} \\ \frac{ρ}{10} sen θ &amp;amp; ρ \frac{ρ}{5} cos θ &amp;amp; 0 \end{matrix} \right| = \frac{3}{10} cos(θ) \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto su módulo es: &amp;lt;math&amp;gt; |V × \vec u| = |\frac{3}{10} cos(θ)| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El resultado de representarlo sobre el plano XY es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Rotacional nuestro.jpg|400x300px|miniaturadeimagen|centro|Rotacional del campo desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El rotacional indica el giro experimentado por la placa en su deformación, lo que se puede apreciar en la representación anterior y teniendo en cuenta el punto 4.3.&lt;br /&gt;
Así, los extremos de la placa, que experimentan un giro, tienen el mayor valor del rotacional. &lt;br /&gt;
Cabe decir que estos valores tendrán signo contrario, pues los giros son opuestos.&lt;br /&gt;
Esto no se tiene en consideración para la representación gráfica, pues en ella buscamos el módulo del rotacional, que siempre es positivo.&lt;br /&gt;
&lt;br /&gt;
===Tensor de tensiones===&lt;br /&gt;
En este apartado, sabiendo que nos encontramos en un medio lineal, isótropo y homogéneo (así lo indica el enunciado), la función del tensor de tensiones viene descrita de la siguiente forma: &amp;lt;math&amp;gt; σ = λ ∇ ⋅ \vec u 1 + 2 μ ε &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En dicha fórmula conocemos que los Coeficientes de Lamé (λ y μ) que dependen de las propiedades elásticas de cada material. Tomando en este caso que ambos son 1.&lt;br /&gt;
&lt;br /&gt;
La parte simétrica del tensor gradiente del campo  de deplazamientos, queda también definida de la siguiente manera: &amp;lt;math&amp;gt; ε(\vec u) = \frac{∇ \vec u + ∇ \vec u ^t}{2} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
De forma manual se ha obtenido que el gradiente del campo es &amp;lt;math&amp;gt; ∇ \vec u(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; - \frac{ρ}{10} cos θ &amp;amp; 0 \\ \frac{1}{5} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto, la matriz traspuesta del gradiente del campo es: &amp;lt;math&amp;gt; ∇ \vec u^t(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; \frac{1}{5} cos θ &amp;amp; 0 \\ - \frac{ρ}{10} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Resolviendo la parte simétrica del tensor gradiente de forma manual, se obtiene como resultado: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; cos θ (\frac{1}{10} - \frac{ρ}{20} ) &amp;amp; 0 \\ cos θ (\frac{1}{10} - \frac{ρ}{20}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De esta forma, se concluye que el tensor de tensiones viene representado de la siguiente forma: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{5} sen θ &amp;amp; cos θ (\frac{1}{5} - \frac{ρ}{10} ) &amp;amp; 0 \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Representación de las tensiones normales====&lt;br /&gt;
[[Archivo:Tensiones comparación.jpg|400x300px|miniaturadeimagen|centro|Representación de las tensiones normales]]&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_ρ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_ρ ⋅ σ ⋅ \vec e_ρ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; \frac {1}{5} sen θ \vec e_ρ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_θ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_θ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_θ ⋅ σ ⋅ \vec e_θ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_z, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt;  \vec e_z ⋅ σ ⋅ \vec e_z &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; 0 \vec e_z &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Tensiones tangenciales respecto al plano ortogonal &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;====&lt;br /&gt;
En este caso, simplemente se ha aplicado la fórmula correspondiente que es la siguiente: &amp;lt;math&amp;gt; |σ ⋅ \vec e_ρ - \vec e_ρ ⋅ σ ⋅ \vec e_ρ| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Desarrollando la fórmula: &amp;lt;math&amp;gt; \begin{pmatrix} \frac{1}{5} sen θ \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) \\ 0 \end{pmatrix} - \begin{pmatrix} \frac {1}{5} sen θ \\ 0 \\ 0 \end{pmatrix} =  cos θ (\frac {1}{5} - \frac {ρ}{10}) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación Tensiones tangenciales.jpg|400x300px|miniaturadeimagen|centro|Comparación Tensiones tangenciales]]&lt;br /&gt;
&lt;br /&gt;
===Tensión de Von Mises===&lt;br /&gt;
La tensión de Von Mises viene determinada por la fórmula: &amp;lt;math&amp;gt; σ_{VM} = \sqrt{\frac{(\vec σ_1 - \vec σ_2)^2 + (\vec σ_2 - \vec σ_3)^2 + (\vec σ_3 - \vec σ_1)^2}{2}} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Puesto que cada punto de la placa lleva asociado un tensor de la tensión, siendo  &amp;lt;math&amp;gt; \vec σ_1, \vec σ_2, \vec σ_3;  &amp;lt;/math&amp;gt; los autovalores de dicha matriz, se debe ir punto a punto calculándolos, por tanto es necesario un bucle que rellene una matriz con los valores de la tensión Von Mises para cada punto. &lt;br /&gt;
&lt;br /&gt;
La tensión de Von Mises muestra los puntos donde se produciría la rotura de la placa. En este caso rompería la parte superior de la placa.&lt;br /&gt;
&lt;br /&gt;
La representación es la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tensión Von Mises.jpg|400x300px|miniaturadeimagen|centro|Tensión Von Mises]]&lt;br /&gt;
&lt;br /&gt;
===Fuerza causante del desplazamiento===&lt;br /&gt;
Conociendo que la placa viene deformada por la función vectorial dada, se puede obtener la fuerza que motiva el desplazamiento. Esa viene definida por: &amp;lt;math&amp;gt; \vec F = - \nabla ⋅ \vec u &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El resultado de la fuerza obtenido manualmente es el descrito a continuación: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_ρ + \frac {1}{5} (\frac {1}{ρ} - 2) cos θ \vec e_θ &amp;lt;/math&amp;gt;. La componente según &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt; es nula.&lt;br /&gt;
&lt;br /&gt;
Calculado por diferenciación automática queda la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas]]&lt;br /&gt;
&lt;br /&gt;
Si de dibuja el campo de fuerzas y la las posiciones inicial y final no queda del todo claro que éste sea el campo que motiva el desplazamiento y la deformación de la placa. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas y desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de Fuerzas y desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
Si se dibuja la resultante de las fuerzas el desplazamiento de la placa queda explicado, mientras que dibujando únicamente la placa final deformada, sin considerar el desplazamiento y el campo de fuerzas, se pueden apreciar claramente que deformaciones como el achatamiento de la forma circular de la placa son causadas por el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Desplazamiento y resultante concampo de fuerzas sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas, desplazamiento y deformación de la placa]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Teoría de Campos]][[Categoría:TC21/22]]&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=48031</id>
		<title>Grupo B12 Trabajo 5: Estudio de tensiones sobre una placa mediante diferenciación automática</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=48031"/>
				<updated>2021-12-10T20:18:19Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Estudio de tensiones sobre una placa mediante diferenciación automática. Grupo B12 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC21/22|2021-2022]] | Víctor Sillero González&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Rodrigo Vázquez Pérez }}&lt;br /&gt;
&lt;br /&gt;
El trabajo correspondiente a este grupo es el número 5, en particular consiste en el estudio de temperaturas, deformaciones y tensiones sobre una placa compuesta de medio anillo circular.&lt;br /&gt;
La peculiaridad de este trabajo radica en que se ha realizado mediante diferenciación automática gracias a una librería realizada por los componentes del grupo.&lt;br /&gt;
Dicho programa ha sido realizado en el leguaje de programación &amp;quot;Julia&amp;quot;, y por ende todo el desarrollo ha sido realizado mediante dicho lenguaje.&lt;br /&gt;
&lt;br /&gt;
Todos los gráficos se han creado a partir de la librería Makie de Julia. Se ha creado una función con los estilos que queríamos usar que toma como input campos y funciones así como una lista de puntos y algunos parámetros de estilo y dibuja la gráfica correspondiente. Al ser tanto el programa para las gráficas como la librería de diferenciación automática demasiado largos para ser publicados en esta página se adjunta un link donde se pueden descargar y ver. Aunque todos las gráficas mostradas se han producido por métodos computacionales se también se han realizado los cálculos a mano.&lt;br /&gt;
&lt;br /&gt;
La librería utilizada a lo largo de todo el trabajo queda adjunta en el anexo.&lt;br /&gt;
&lt;br /&gt;
En este caso los datos aportados por el enunciado han sido los siguientes:&lt;br /&gt;
* Placa plana que ocupa la mitad de un anillo circular centrado en el origen y comprendido entre los radios 1 y 2, en el plano y ≥ 0.&lt;br /&gt;
* Función temperatura en la placa: &amp;lt;math&amp;gt; T(x,y) = x^2 + (y-1)^2 &amp;lt;/math&amp;gt;.&lt;br /&gt;
* Campo de deformaciones: &amp;lt;math&amp;gt;\vec u(ρ,θ) = \frac{ρ}{10} sin(θ) + \frac{ρ}{5} cos(θ) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Julia Portada.png|400x300px|miniaturadeimagen|centro|Portada programa Julia]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
Este trabajo tiene como objetivo el estudio de las tensiones y fuerzas que producen desplazamientos y deformaciones en una placa, así como su campo de temperaturas a partir de un campo de desplazamientos y una función escalar de temperaturas. Además, se va a estudiar el cálculo de derivadas y operadores diferenciales mediante métodos computacionales.&lt;br /&gt;
&lt;br /&gt;
=== Diferenciación automática===&lt;br /&gt;
&lt;br /&gt;
====Métodos habituales: Aproximación numérica====&lt;br /&gt;
Normalmente cuando se quiere obtener el valor de la derivada de una función en un punto mediante un ordenador se realiza una aproximación a partir de la definición de derivada. &amp;lt;math&amp;gt; (f(x+h) - f(x)) / h &amp;lt;/math&amp;gt; dando un valor concreto lo menor posible para h.&lt;br /&gt;
Un ejemplo del método con la función &amp;lt;math&amp;gt; f(x) = x^2 y h = 10^-10 &amp;lt;\math&amp;gt;  en  &amp;lt;math&amp;gt; x = 3&amp;lt;\math&amp;gt; &lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
h = 10^-10&lt;br /&gt;
f(x) = x^2&lt;br /&gt;
derivada = (f(3+h) - f(3)) / h&lt;br /&gt;
}}&lt;br /&gt;
El resultado dado no es exactamente 6 pero se consiguen 6 decimales de precisión por lo que es una buena aproximación. Este algoritmo realiza 3 operaciones. Evaluar f en x + h, evaluar f en x y dividir todo ello entre h.&lt;br /&gt;
&lt;br /&gt;
Un problema del método es si se emplea una h demasiado pequeña puede dar problemas.&lt;br /&gt;
&lt;br /&gt;
Si se supera el número más pequeño que se puede expresar con el tipo de dato utilizado (Float64 en nuestro caso) el resultado mostrado será 0. Por lo tanto un manejo correcto de los valores de h es esencial y complica el método bastante.&lt;br /&gt;
&lt;br /&gt;
====Números duales====&lt;br /&gt;
El método empleado en este trabajo es exacto. No se realiza ninguna aproximación. Para ello es necesario definir un nuevo tipo de número distinto de los reales o los complejos, los números duales.&lt;br /&gt;
&lt;br /&gt;
Los números duales son números del tipo a + bε siendo a y b números reales o duales. &lt;br /&gt;
&lt;br /&gt;
Denominamos parte real al número a y parte derivada al número b.&lt;br /&gt;
&lt;br /&gt;
Además se define la siguiente propiedad. ε es distinto de 0 y &amp;lt;math&amp;gt; ε^2 = 0&amp;lt;\math&amp;gt;. ε por lo tanto no es un número real.&lt;br /&gt;
&lt;br /&gt;
Las operaciones aritméticas básicas se definen de manera sencilla.&lt;br /&gt;
* Suma:&amp;lt;math&amp;gt;  (a + bε) + (c + dε) = (a + c) + (b + d)ε&amp;lt;\math&amp;gt; &lt;br /&gt;
* Producto &amp;lt;math&amp;gt; (a + bε) * (c + dε) = ac + (bc + ad)ε + (bd)^2 * ε^2&amp;lt;\math&amp;gt; , como&amp;lt;math&amp;gt;  ε^2 = 0 &amp;lt;\math&amp;gt; el resultado final es &amp;lt;math&amp;gt; (a + bε) * (c + dε) = ac + (bc + ad)ε&amp;lt;\math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
====Series de Taylor y números duales====&lt;br /&gt;
Sea f una función cualquiera y a un punto del dominio de f la serie de Taylor de f en el punto a es&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
f(x) = f(a) + \frac{f'(a)}{1!}(x-a) + \frac{f''(a)}{2!}(x-a)^{2} + ... = \sum_{i=0}^\infty \frac{f^{i}(a)}{i!}(x-a)^{i}&lt;br /&gt;
}}&lt;br /&gt;
Si se evalúa la serie de Taylor de f en el valor dual x = a + \ε se obtiene &lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
f(a + \ε) = f(a) + f'(a)\ε + \frac{f''(a)}{2!}\ε^{2} + ... y como \ε^{2} = 0 el resultado final es&lt;br /&gt;
}}&lt;br /&gt;
f(a + \ε) = f(a) + f'(a)\ε&lt;br /&gt;
&lt;br /&gt;
La parte real de f(a + \ε) es f evaluado en a, es decir f(a) y la parte derivada de f(a + \ε) es la derivada de f evaluada en a, es decir f'(a).&lt;br /&gt;
&lt;br /&gt;
====Cálculo de derivadas por números duales====&lt;br /&gt;
Gracias a las propiedades comentadas en la sección anterior podemos establecer un nuevo método esta vez exacto para calcular derivadas. &lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
f'(a) = parte Derivada[f(a + \ε)]&lt;br /&gt;
}}&lt;br /&gt;
Este método consiste en únicamente una operación siendo no solamente exacto sino además más rápido que el método aproximado.&lt;br /&gt;
&lt;br /&gt;
====Programación====&lt;br /&gt;
En primer lugar se define un nuevo tipo de dato Dual, con las propiedades de parte real x y parte derivada \ε.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
mutable struct Dual{T&amp;lt;:Real} &amp;lt;: Real &lt;br /&gt;
    x::T&lt;br /&gt;
    ϵ::T&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
Ahora se definen las operaciones básicas sobre el tipo de dato dual. Aquí se muestran algunas de ellas.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
#negación &lt;br /&gt;
Base.:-(a::Dual) = Dual(-1 * a.x, -1* a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#suma&lt;br /&gt;
Base.:+(a::Dual, b::Dual) = Dual(a.x + b.x, a.ϵ .+ b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#diferencia&lt;br /&gt;
Base.:-(a::Dual, b::Dual) = Dual(a.x - b.x, a.ϵ - b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#producto&lt;br /&gt;
Base.:*(a::Dual, b::Dual) = Dual(a.x * b.x, b.x * a.ϵ + a.x * b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#reciproco &lt;br /&gt;
recip = a::Dual -&amp;gt; Dual(1. / a.x, (-1* a.ϵ) / (a.x ^2))&lt;br /&gt;
&lt;br /&gt;
#cociente&lt;br /&gt;
Base.:/(a::Dual, b::Dual) = a * recip(b)&lt;br /&gt;
&lt;br /&gt;
#exponencial, potencia y raíz_cuadrada&lt;br /&gt;
Base.:exp(a::Dual) = exp(a.x) * Dual(1.,a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#logaritmo &lt;br /&gt;
Base.:log(a::Dual) = Dual(log(a.x), a.ϵ / a.x)&lt;br /&gt;
&lt;br /&gt;
#trigonometria&lt;br /&gt;
Base.:sin(d::Dual) = Dual(sin(d.x), d.ϵ * cos(d.x))&lt;br /&gt;
Base.:cos(d::Dual) = Dual(cos(d.x), - d.ϵ * sin(d.x))&lt;br /&gt;
}}&lt;br /&gt;
Y ya podríamos calcular derivadas. Por ejemplo creando la función f(x) = x^2 y evaluándola en el punto Dual(4, 1) se obtiene el número Dual(16, 8), 8 es la derivada de x^2 en el punto 4.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
f(x) = x^2 &lt;br /&gt;
f(Dual(4., 1.))&lt;br /&gt;
}}&lt;br /&gt;
A partir de este código se programa una librería capaz de calcular gradientes, divergencias y rotacionales de cualquier función. Además es capaz de trabajar en coordenadas cilíndricas esféricas y cartesianas.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo el tensor gradiente de una función u en un punto en la librería se calcula con el comando:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
u.grad(punto)&lt;br /&gt;
}}&lt;br /&gt;
Existen algoritmos más avanzados que hacen este proceso aún más rápido pero para cubrir nuestras necesidades la velocidad aportada por esta librería es suficiente.&lt;br /&gt;
&lt;br /&gt;
Para realizar el trabajo se define la placa, la función de temperaturas y el campo de desplazamientos y el programa crea todas las gráficas necesarias, por lo que nuestro programa es capaz de resolver cualquiera de los trabajos que se han planteado de manera instantánea.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
λ = 1&lt;br /&gt;
μ = 1&lt;br /&gt;
&lt;br /&gt;
rango = 0.1&lt;br /&gt;
&lt;br /&gt;
ρ_s = range(1, 2, 11) # discretización de variables&lt;br /&gt;
θ_s = range(0, pi, 32)&lt;br /&gt;
z_s = zeros(size(ρ_s))&lt;br /&gt;
&lt;br /&gt;
#campo de temperaturas&lt;br /&gt;
t = x -&amp;gt; x[1]^2 +(x[2] - 1)^2 #cartesianas&lt;br /&gt;
&lt;br /&gt;
T = funcion_escalar(t, tipo = 1)&lt;br /&gt;
&lt;br /&gt;
u = funcion_vectorial(x -&amp;gt; [(x[1] / 10) * sin(x[2]), (x[1] / 5) * cos(x[2]), 0], tipo = 2) # cilíndricas&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Dibujo del mallado==&lt;br /&gt;
&lt;br /&gt;
En primer lugar es necesario dibujar la placa que se va a estudiar. &lt;br /&gt;
La placa se define en coordenadas cilíndricas (base física cilíndrica) con la siguiente parametrización: &amp;lt;math&amp;gt; ρ = u -&amp;gt; [0,2] ; θ = v -&amp;gt; [0, π]; z = 0&amp;lt;/math&amp;gt;. &lt;br /&gt;
En el caso de que la placa fuese más compleja, nuestro programa también aceptaría definirla mediante una función que tomando un punto como entrada, devuelva 1 o 0 dependiendo de si dicho punto se encuentra en la placa o no.&lt;br /&gt;
&lt;br /&gt;
Los ejes tomados para dibujar las gráficas han sido [−2, 2] × [0, 2] y se ha dibujado un mallado con el comando &amp;quot;wireframe&amp;quot;.&lt;br /&gt;
Por otra parte, el muestreo utilizado ha sido &amp;lt;math&amp;gt;h= \frac{1}{10}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Placa Nuestra.jpg|400x300px|miniaturadeimagen|centro|Placa representada]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Campo de las temperaturas en la placa==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Dibujo de las curvas de nivel===&lt;br /&gt;
Una vez definida la función temperatura T(x,y) en cartesianas, una parametrización para la placa y habiendo elegido el número de curvas a representar, (20), mediante la función &amp;quot;contour&amp;quot; se han dibujado las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Curvas Temperatura.jpg|400x300px|miniaturadeimagen|centro|Curvas de nivel de la Temperatura]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Máximo de temperatura===&lt;br /&gt;
Para obtener el máximo de la temperatura con precisión la función &amp;quot;dibujar2D&amp;quot; que empleamos para dibujar las gráficas devuelve el mayor valor e indica dicho punto mediante un aspa roja.&lt;br /&gt;
&lt;br /&gt;
===Dibujo del gradiente como campo vectorial (&amp;lt;math&amp;gt; \nabla &amp;lt;/math&amp;gt;T)===&lt;br /&gt;
De la función de la temperatura dada, se ha obtenido el gradiente: &amp;lt;math&amp;gt; 2x \vec i + 2 (y - 1) \vec j &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dibujado junto a las curvas de nivel, se observa fácilmente la perpendicularidad entre dichas curvas y los vectores representados.&lt;br /&gt;
Esto tiene sentido puesto que el gradiente indica la dirección de mayor crecimiento mientras que su perpendicular indica el crecimiento nulo. &lt;br /&gt;
Esta última dirección es, por tanto, tangente a las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Gradiente Nuestro.jpg|400x300px|miniaturadeimagen|centro|Gradiente]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tensiones y fuerzas==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Posición inicial y final de la placa===&lt;br /&gt;
Como punto de partida se dibuja la posición inicial y final de la placa. &lt;br /&gt;
Los puntos de la posición final se han calculado sumando a cada punto de la placa inicial su vector desplazamiento dado por la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt;. &lt;br /&gt;
Además, restando a la placa final la media de los desplazamientos en todos los puntos se ha obtenido una gráfica que muestra únicamente las deformaciones que la placa experimenta.&lt;br /&gt;
De esta forma, permite ver que la placa final está achatada y deja de ser circular.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación placa inicial y final con deformación sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Comparación de la placa inicial y final con deformación de la placa sin desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El objetivo final es conocer el campo de fuerzas que ha producido este desplazamiento. &lt;br /&gt;
Para ello a partir del campo de desplazamientos se calculan las tensiones que experimenta la placa y a partir de éstas, el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
===Representación del campo vectorial de desplazamientos===&lt;br /&gt;
Tras definir la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt; en el código, y mediante el uso de la función &amp;quot;arrows&amp;quot; (gracias a que el campo no dispone de componente vertical), se obtiene la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
===Divergencia y rotacional===&lt;br /&gt;
Calcular la divergencia y el rotacional del campo de desplazamientos es de gran utilidad, ya que estos aportan información muy valiosa sobre las características de la deformación que experimenta la placa. &lt;br /&gt;
&lt;br /&gt;
El rotacional mide cuánto rotan los puntos de la placa. Su módulo cuantifica la rotación, mientras que su dirección y sentido dan el eje de rotación.&lt;br /&gt;
La divergencia en cambio, mide cuánto cambia el área en un entrono de cada punto. &lt;br /&gt;
&lt;br /&gt;
La deformación de un entorno de un punto de la placa, no su desplazamiento, es por lo tanto la rotación y el cambio de tamaño de ese entorno. &lt;br /&gt;
&lt;br /&gt;
Para tener una mejor intuición de lo que esto significa, se ha dibujado el módulo del rotacional y la divergencia de una rotación de ángulo π/2, una escala de la placa del factor 2 y un desplazamiento sin deformación de dirección 2 &amp;lt;math&amp;gt; \vec i &amp;lt;/math&amp;gt;. En el desplazamiento como no hay deformación, el rotacional y la divergencia deben valer cero. &lt;br /&gt;
El rotacional es mayor que cero e igual en todos los puntos y la divergencia es cero. Esto se debe a que todos los puntos rotan por igual (π/2) y su área no cambia. En la escala por el factor 2, el rotacional debe ser nulo y la divergencia 4, ya que cada lado se duplica produciendo una cuadruplicación del área.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación 2.jpg|400x300px|miniaturadeimagen|centro|Explicación divergencia y rotacional]]&lt;br /&gt;
&lt;br /&gt;
====Divergencia del campo desplazamientos====&lt;br /&gt;
Calculando la divergencia de forma manual y con diferenciación automática, se ha concluido que esta es nula en cualquier punto: &amp;lt;math&amp;gt; ∇ ⋅ \vec u =  \frac{1}{ρ} [\frac{δ}{δρ} (ρ (\frac{ρ}{10} sen θ)) + \frac{δ}{δθ} (\frac{ρ}{5} cos θ) + \frac{δ}{δz} (ρ 0)] = 0 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lo que indica la divergencia es la variación del diferencial de área. En este caso concreto en que es nula, se puede apreciar en la gráfica del punto anterior como aunque los cuadrados del mallado de la placa puedan ser deformados mantienen el mismo tamaño, es decir, ni se dilatan ni se contraen.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Divergencia Nuestra.jpg|400x300px|miniaturadeimagen|centro|Divergencia del campo]]&lt;br /&gt;
&lt;br /&gt;
====Visualización del módulo del rotacional del campo desplazamiento====&lt;br /&gt;
Mediante el cálculo manual se ha obtenido el siguiente rotacional: &amp;lt;math&amp;gt; V × \vec u = \frac{1}{ρ} \left| \begin{matrix} \vec e_ρ &amp;amp; ρ \vec e_θ &amp;amp; \vec e_z \\ \frac{δ}{δρ} &amp;amp; \frac{δ}{δθ} &amp;amp; \frac{δ}{δz} \\ \frac{ρ}{10} sen θ &amp;amp; ρ \frac{ρ}{5} cos θ &amp;amp; 0 \end{matrix} \right| = \frac{3}{10} cos(θ) \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto su módulo es: &amp;lt;math&amp;gt; |V × \vec u| = |\frac{3}{10} cos(θ)| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El resultado de representarlo sobre el plano XY es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Rotacional nuestro.jpg|400x300px|miniaturadeimagen|centro|Rotacional del campo desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El rotacional indica el giro experimentado por la placa en su deformación, lo que se puede apreciar en la representación anterior y teniendo en cuenta el punto 4.3.&lt;br /&gt;
Así, los extremos de la placa, que experimentan un giro, tienen el mayor valor del rotacional. &lt;br /&gt;
Cabe decir que estos valores tendrán signo contrario, pues los giros son opuestos.&lt;br /&gt;
Esto no se tiene en consideración para la representación gráfica, pues en ella buscamos el módulo del rotacional, que siempre es positivo.&lt;br /&gt;
&lt;br /&gt;
===Tensor de tensiones===&lt;br /&gt;
En este apartado, sabiendo que nos encontramos en un medio lineal, isótropo y homogéneo (así lo indica el enunciado), la función del tensor de tensiones viene descrita de la siguiente forma: &amp;lt;math&amp;gt; σ = λ ∇ ⋅ \vec u 1 + 2 μ ε &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En dicha fórmula conocemos que los Coeficientes de Lamé (λ y μ) que dependen de las propiedades elásticas de cada material. Tomando en este caso que ambos son 1.&lt;br /&gt;
&lt;br /&gt;
La parte simétrica del tensor gradiente del campo  de deplazamientos, queda también definida de la siguiente manera: &amp;lt;math&amp;gt; ε(\vec u) = \frac{∇ \vec u + ∇ \vec u ^t}{2} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
De forma manual se ha obtenido que el gradiente del campo es &amp;lt;math&amp;gt; ∇ \vec u(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; - \frac{ρ}{10} cos θ &amp;amp; 0 \\ \frac{1}{5} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto, la matriz traspuesta del gradiente del campo es: &amp;lt;math&amp;gt; ∇ \vec u^t(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; \frac{1}{5} cos θ &amp;amp; 0 \\ - \frac{ρ}{10} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Resolviendo la parte simétrica del tensor gradiente de forma manual, se obtiene como resultado: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; cos θ (\frac{1}{10} - \frac{ρ}{20} ) &amp;amp; 0 \\ cos θ (\frac{1}{10} - \frac{ρ}{20}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De esta forma, se concluye que el tensor de tensiones viene representado de la siguiente forma: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{5} sen θ &amp;amp; cos θ (\frac{1}{5} - \frac{ρ}{10} ) &amp;amp; 0 \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Representación de las tensiones normales====&lt;br /&gt;
[[Archivo:Tensiones comparación.jpg|400x300px|miniaturadeimagen|centro|Representación de las tensiones normales]]&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_ρ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_ρ ⋅ σ ⋅ \vec e_ρ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; \frac {1}{5} sen θ \vec e_ρ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_θ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_θ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_θ ⋅ σ ⋅ \vec e_θ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_z, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt;  \vec e_z ⋅ σ ⋅ \vec e_z &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; 0 \vec e_z &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Tensiones tangenciales respecto al plano ortogonal &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;====&lt;br /&gt;
En este caso, simplemente se ha aplicado la fórmula correspondiente que es la siguiente: &amp;lt;math&amp;gt; |σ ⋅ \vec e_ρ - \vec e_ρ ⋅ σ ⋅ \vec e_ρ| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Desarrollando la fórmula: &amp;lt;math&amp;gt; \begin{pmatrix} \frac{1}{5} sen θ \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) \\ 0 \end{pmatrix} - \begin{pmatrix} \frac {1}{5} sen θ \\ 0 \\ 0 \end{pmatrix} =  cos θ (\frac {1}{5} - \frac {ρ}{10}) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación Tensiones tangenciales.jpg|400x300px|miniaturadeimagen|centro|Comparación Tensiones tangenciales]]&lt;br /&gt;
&lt;br /&gt;
===Tensión de Von Mises===&lt;br /&gt;
La tensión de Von Mises viene determinada por la fórmula: &amp;lt;math&amp;gt; σ_{VM} = \sqrt{\frac{(\vec σ_1 - \vec σ_2)^2 + (\vec σ_2 - \vec σ_3)^2 + (\vec σ_3 - \vec σ_1)^2}{2}} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Puesto que cada punto de la placa lleva asociado un tensor de la tensión, siendo  &amp;lt;math&amp;gt; \vec σ_1, \vec σ_2, \vec σ_3;  &amp;lt;/math&amp;gt; los autovalores de dicha matriz, se debe ir punto a punto calculándolos, por tanto es necesario un bucle que rellene una matriz con los valores de la tensión Von Mises para cada punto. &lt;br /&gt;
&lt;br /&gt;
La tensión de Von Mises muestra los puntos donde se produciría la rotura de la placa. En este caso rompería la parte superior de la placa.&lt;br /&gt;
&lt;br /&gt;
La representación es la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tensión Von Mises.jpg|400x300px|miniaturadeimagen|centro|Tensión Von Mises]]&lt;br /&gt;
&lt;br /&gt;
===Fuerza causante del desplazamiento===&lt;br /&gt;
Conociendo que la placa viene deformada por la función vectorial dada, se puede obtener la fuerza que motiva el desplazamiento. Esa viene definida por: &amp;lt;math&amp;gt; \vec F = - \nabla ⋅ \vec u &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El resultado de la fuerza obtenido manualmente es el descrito a continuación: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_ρ + \frac {1}{5} (\frac {1}{ρ} - 2) cos θ \vec e_θ &amp;lt;/math&amp;gt;. La componente según &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt; es nula.&lt;br /&gt;
&lt;br /&gt;
Calculado por diferenciación automática queda la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas]]&lt;br /&gt;
&lt;br /&gt;
Si de dibuja el campo de fuerzas y la las posiciones inicial y final no queda del todo claro que éste sea el campo que motiva el desplazamiento y la deformación de la placa. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas y desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de Fuerzas y desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
Si se dibuja la resultante de las fuerzas el desplazamiento de la placa queda explicado, mientras que dibujando únicamente la placa final deformada, sin considerar el desplazamiento y el campo de fuerzas, se pueden apreciar claramente que deformaciones como el achatamiento de la forma circular de la placa son causadas por el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Desplazamiento y resultante concampo de fuerzas sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas, desplazamiento y deformación de la placa]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Teoría de Campos]][[Categoría:TC21/22]]&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=47973</id>
		<title>Grupo B12 Trabajo 5: Estudio de tensiones sobre una placa mediante diferenciación automática</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=47973"/>
				<updated>2021-12-10T18:42:43Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: /* Visualización del módulo del rotacional del campo desplazamiento */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Estudio de tensiones sobre una placa mediante diferenciación automática. Grupo B12 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC21/22|2021-2022]] | Víctor Sillero González&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Rodrigo Vázquez Pérez }}&lt;br /&gt;
&lt;br /&gt;
El trabajo correspondiente a este grupo es el número 5, en particular consiste en el estudio de temperaturas, deformaciones y tensiones sobre una placa compuesta de medio anillo circular.&lt;br /&gt;
La peculiaridad de este trabajo radica en que se ha realizado mediante diferenciación automática gracias a una librería realizada por los componentes del grupo.&lt;br /&gt;
Dicho programa ha sido realizado en el leguaje de programación &amp;quot;Julia&amp;quot;, y por ende todo el desarrollo ha sido realizado mediante dicho lenguaje.&lt;br /&gt;
&lt;br /&gt;
Todos los gráficos se han creado a partir de la librería Makie de Julia. Se ha creado una función con los estilos que queríamos usar que toma como input campos y funciones así como una lista de puntos y algunos parámetros de estilo y dibuja la gráfica correspondiente. Al ser tanto el programa para las gráficas como la librería de diferenciación automática demasiado largos para ser publicados en esta página se adjunta un link donde se pueden descargar y ver. Aunque todos las gráficas mostradas se han producido por métodos computacionales se también se han realizado los cálculos a mano.&lt;br /&gt;
&lt;br /&gt;
La librería utilizada a lo largo de todo el trabajo queda adjunta en el anexo.&lt;br /&gt;
&lt;br /&gt;
En este caso los datos aportados por el enunciado han sido los siguientes:&lt;br /&gt;
* Placa plana que ocupa la mitad de un anillo circular centrado en el origen y comprendido entre los radios 1 y 2, en el plano y ≥ 0.&lt;br /&gt;
* Función temperatura en la placa: &amp;lt;math&amp;gt; T(x,y) = x^2 + (y-1)^2 &amp;lt;/math&amp;gt;.&lt;br /&gt;
* Campo de deformaciones: &amp;lt;math&amp;gt;\vec u(ρ,θ) = \frac{ρ}{10} sin(θ) + \frac{ρ}{5} cos(θ) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Julia Portada.png|400x300px|miniaturadeimagen|centro|Portada programa Julia]]&lt;br /&gt;
&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
Este trabajo tiene como objetivo el estudio de las tensiones y fuerzas que producen desplazamientos y deformaciones en una placa, así como su campo de temperaturas a partir de un campo de desplazamientos y una función escalar de temperaturas. Además, se va a estudiar el cálculo de derivadas y operadores diferenciales mediante métodos computacionales.&lt;br /&gt;
&lt;br /&gt;
=== Diferenciación automática===&lt;br /&gt;
====Métodos habituales: Aproximación numérica====&lt;br /&gt;
Normalmente cuando se quiere obtener el valor de la derivada de una función en un punto mediante un ordenador se realiza una aproximación a partir de la definición de derivada. $\frac{f(x+h) - f(x)}{h}$ dando un valor concreto lo menor posible para $h$.&lt;br /&gt;
Un ejemplo del método con la función $f(x) = x^{2}$ y $h = 10^{-10}$ en x = 3&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
h = 10^-10&lt;br /&gt;
f(x) = x^2&lt;br /&gt;
derivada = (f(3+h) - f(3)) / h&lt;br /&gt;
}}&lt;br /&gt;
El resultado dado no es exáctamente 6 pero se consiguen 6 decimales de precisión por lo que es una buena aproximación. Este algoritmo realiza 3 operaciones. Evaluar $f$ en $x + h$, evaluar $f$ en $x$ y dividir todo ello entre $h$.&lt;br /&gt;
&lt;br /&gt;
Un problema del método es si se emplea una $h$ demasiado pequeña puede dar problemas.&lt;br /&gt;
&lt;br /&gt;
Si se supera el número más pequeño que se puede expresar con el tipo de dato utilizado (Float64 en nuestro caso) el resultado mostrado será 0. Por lo tanto un manejo correcto de los valores de $h$ es esencial y complica el método bastante.&lt;br /&gt;
&lt;br /&gt;
====Números duales====&lt;br /&gt;
&lt;br /&gt;
El método empleado en este trabajo es exacto. No se realiza ninguna aproximación. Para ello es necesario definir un nuevo tipo de número distinto de los reales o los complejos, los números duales.&lt;br /&gt;
&lt;br /&gt;
Los números duales son números del tipo $a + b\epsilon$ siendo $a$ y $b$ números reales o duales. &lt;br /&gt;
&lt;br /&gt;
Denominamos parte real al número $a$ y parte derivada al número $b$&lt;br /&gt;
&lt;br /&gt;
Además se define la siguiente propiedad: $\epsilon \neq 0$ tal que $\epsilon^{2} = 0$. $\epsilon$ por lo tanto no es un número real.&lt;br /&gt;
&lt;br /&gt;
Las operaciones aritméticas básicas se definen de manera sencilla.&lt;br /&gt;
* Suma: $(a + b\epsilon) + (c + d\epsilon) = (a + c) + (b + d)\epsilon$&lt;br /&gt;
* Producto $(a + b\epsilon) * (c + d\epsilon) = ac + (bc + ad)\epsilon + (bd)^{2}\epsilon^{2}$, como $\epsilon^{2} = 0$ el resultado final es $(a + b\epsilon) * (c + d\epsilon) = ac + (bc + ad)\epsilon$&lt;br /&gt;
&lt;br /&gt;
====Series de Taylor y números duales====&lt;br /&gt;
Sea $f$ una función cualquiera y $a$ un punto del dominio de $f$ la serie de Taylor de $f$ en el punto $a$ es&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
$f(x) = f(a) + \frac{f'(a)}{1!}(x-a) + \frac{f''(a)}{2!}(x-a)^{2} + ... = \sum_{i=0}^\infty \frac{f^{i}(a)}{i!}(x-a)^{i}$&lt;br /&gt;
}}&lt;br /&gt;
Si se evalúa la serie de Taylor de $f$ en el valor dual $x = a + \epsilon$ se obtiene &lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
$f(a + \epsilon) = f(a) + f'(a)\epsilon + \frac{f''(a)}{2!}\epsilon^{2} + ...$ y como $\epsilon^{2} = 0$ el resultado final es&lt;br /&gt;
}}&lt;br /&gt;
$f(a + \epsilon) = f(a) + f'(a)\epsilon$&lt;br /&gt;
&lt;br /&gt;
La parte real de $f(a + \epsilon)$ es $f$ evaluado en $a$, es decir $f(a)$ y la parte derivada de $f(a + \epsilon)$ es la derivada de $f$ evaluada en $a$, es decir $f'(a)$.&lt;br /&gt;
&lt;br /&gt;
====Cálculo de drivadas por números duales====&lt;br /&gt;
&lt;br /&gt;
Gracias a las propiedades comentadas en la sección anterior podemos establecer un nuevo método esta vez exacto para calcular derivadas. &lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
$f'(a) = parte Derivada[f(a + \epsilon)]$&lt;br /&gt;
}}&lt;br /&gt;
Este método consiste en únicamtente una operación siendo no solamente exacto sino además más rápido que el método aproximado.&lt;br /&gt;
&lt;br /&gt;
====Programación====&lt;br /&gt;
&lt;br /&gt;
En primer lugar se define un nuevo tipo de dato Dual, con las propiedades de parte real $x$ y parte derivada $\epsilon$.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
mutable struct Dual{T&amp;lt;:Real} &amp;lt;: Real &lt;br /&gt;
    x::T&lt;br /&gt;
    ϵ::T&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
Ahora se definen las operaciones básicas sobre el tipo de dato dual. Aquí se muestran algunas de ellas.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
#negacion &lt;br /&gt;
Base.:-(a::Dual) = Dual(-1 * a.x, -1* a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#suma&lt;br /&gt;
Base.:+(a::Dual, b::Dual) = Dual(a.x + b.x, a.ϵ .+ b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#diferencia&lt;br /&gt;
Base.:-(a::Dual, b::Dual) = Dual(a.x - b.x, a.ϵ - b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#producto&lt;br /&gt;
Base.:*(a::Dual, b::Dual) = Dual(a.x * b.x, b.x * a.ϵ + a.x * b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#reciproco &lt;br /&gt;
recip = a::Dual -&amp;gt; Dual(1. / a.x, (-1* a.ϵ) / (a.x ^2))&lt;br /&gt;
&lt;br /&gt;
#cociente&lt;br /&gt;
Base.:/(a::Dual, b::Dual) = a * recip(b)&lt;br /&gt;
&lt;br /&gt;
#exponencial, potencia y raiz_cuadrada&lt;br /&gt;
Base.:exp(a::Dual) = exp(a.x) * Dual(1.,a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#logaritmo &lt;br /&gt;
Base.:log(a::Dual) = Dual(log(a.x), a.ϵ / a.x)&lt;br /&gt;
&lt;br /&gt;
#trigonometria&lt;br /&gt;
Base.:sin(d::Dual) = Dual(sin(d.x), d.ϵ * cos(d.x))&lt;br /&gt;
Base.:cos(d::Dual) = Dual(cos(d.x), - d.ϵ * sin(d.x))&lt;br /&gt;
}}&lt;br /&gt;
Y ya podríamos calcular derivadas. Por ejeplo creando la función f(x) = x^2 y evaluándola en el punto Dual(4, 1) se obtiene el número Dual(16, 8), 8 es la derivada de x^2 en el punto 4.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
f(x) = x^2 &lt;br /&gt;
f(Dual(4., 1.))&lt;br /&gt;
}}&lt;br /&gt;
A partir de este código se programa una librería capaz de calcular gradientes, divergencias y rotacionales de cualquier función. Además es capaz de trabajar en coordenadas cilíndricas esféricas y cartesianas.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo el tensor gradiente de una función u en un punto en la librería se calcula con el comando:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
u.grad(punto)&lt;br /&gt;
}}&lt;br /&gt;
Existen algoritmos más avanzados que hacen este proceso aún más rápido pero para cubrir nuestras necesidades la velocidad aportada por esta librería es suficiente.&lt;br /&gt;
&lt;br /&gt;
Para realizar el trabajo se define la placa, la función de temperaturas y el campo de desplazamientos y el programa crea todas las gráficas necesarias, por lo que nuestro programa es capaz de resolver cualquiera de los trabajos que se han planteado de manera instantánea.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
λ = 1&lt;br /&gt;
μ = 1&lt;br /&gt;
&lt;br /&gt;
rango = 0.1&lt;br /&gt;
&lt;br /&gt;
ρ_s = range(1, 2, 11) # discretizacion de variables&lt;br /&gt;
θ_s = range(0, pi, 32)&lt;br /&gt;
z_s = zeros(size(ρ_s))&lt;br /&gt;
&lt;br /&gt;
#campo de temperaturas&lt;br /&gt;
t = x -&amp;gt; x[1]^2 +(x[2] - 1)^2 #cartesianas&lt;br /&gt;
&lt;br /&gt;
T = funcion_escalar(t, tipo = 1)&lt;br /&gt;
&lt;br /&gt;
u = funcion_vectorial(x -&amp;gt; [(x[1] / 10) * sin(x[2]), (x[1] / 5) * cos(x[2]), 0], tipo = 2) # cilindricas&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Dibujo del mallado==&lt;br /&gt;
&lt;br /&gt;
En primer lugar es necesario dibujar la placa que se va a estudiar. &lt;br /&gt;
La placa se define en coordenadas cilíndricas (base física cilíndrica) con la siguiente parametrización: &amp;lt;math&amp;gt; ρ = u -&amp;gt; [0,2] ; θ = v -&amp;gt; [0, π]; z = 0&amp;lt;/math&amp;gt;. &lt;br /&gt;
En el caso de que la placa fuese más compleja, nuestro programa también aceptaría definirla mediante una función que tomando un punto como entrada, devuelva 1 o 0 dependiendo de si dicho punto se encuentra en la placa o no.&lt;br /&gt;
&lt;br /&gt;
Los ejes tomados para dibujar las gráficas han sido [−2, 2] × [0, 2] y se ha dibujado un mallado con el comando &amp;quot;wireframe&amp;quot;.&lt;br /&gt;
Por otra parte, el muestreo utilizado ha sido &amp;lt;math&amp;gt;h= \frac{1}{10}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Placa Nuestra.jpg|400x300px|miniaturadeimagen|centro|Placa representada]]&lt;br /&gt;
&lt;br /&gt;
==Campo de las temperaturas en la placa==&lt;br /&gt;
&lt;br /&gt;
===Dibujo de las curvas de nivel===&lt;br /&gt;
Una vez definida la función temperatura T(x,y) en cartesianas, una parametrización para la placa y habiendo elegido el número de curvas a representar, (20), mediante la función &amp;quot;contour&amp;quot; se han dibujado las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Curvas Temperatura.jpg|400x300px|miniaturadeimagen|centro|Curvas de nivel de la Temperatura]]&lt;br /&gt;
&lt;br /&gt;
===Máximo de temperatura===&lt;br /&gt;
Para obtener el máximo de la temperatura con precisión la función &amp;quot;dibujar2D&amp;quot; que empleamos para dibujar las gráficas devuelve el mayor valor e indica dicho punto mediante un aspa roja.&lt;br /&gt;
&lt;br /&gt;
===Dibujo del gradiente como campo vectorial (&amp;lt;math&amp;gt; \nabla &amp;lt;/math&amp;gt;T)===&lt;br /&gt;
De la función de la temperatura dada, se ha obtenido el gradiente: &amp;lt;math&amp;gt; 2x \vec i + 2 (y - 1) \vec j &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dibujado junto a las curvas de nivel, se observa fácilmente la perpendicularidad entre dichas curvas y los vectores representados.&lt;br /&gt;
Esto tiene sentido puesto que el gradiente indica la dirección de mayor crecimiento mientras que su perpendicular indica el crecimiento nulo. &lt;br /&gt;
Esta última dirección es, por tanto, tangente a las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Gradiente Nuestro.jpg|400x300px|miniaturadeimagen|centro|Gradiente]]&lt;br /&gt;
&lt;br /&gt;
==Tensiones y fuerzas==&lt;br /&gt;
&lt;br /&gt;
===Posición inicial y final de la placa===&lt;br /&gt;
&lt;br /&gt;
Como punto de partida se dibuja la posición inicial y final de la placa. &lt;br /&gt;
Los puntos de la posición final se han calculado sumando a cada punto de la placa inicial su vector desplazamiento dado por la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt;. &lt;br /&gt;
Además, restando a la placa final la media de los desplazamientos en todos los puntos se ha obtenido una gráfica que muestra únicamente las deformaciones que la placa experimenta.&lt;br /&gt;
De esta forma, permite ver que la placa final está achatada y deja de ser circular.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación placa inicial y final con deformación sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Comparación de la placa inicial y final con deformación de la placa sin desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El objetivo final es conocer el campo de fuerzas que ha producido este desplazamiento. &lt;br /&gt;
Para ello a partir del campo de desplazamientos se calculan las tensiones que experimenta la placa y a partir de éstas, el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
===Representación del campo vectorial de desplazamientos===&lt;br /&gt;
Tras definir la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt; en el código, y mediante el uso de la función &amp;quot;arrows&amp;quot; (gracias a que el campo no dispone de componente vertical), se obtiene la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
===Divergencia y rotacional===&lt;br /&gt;
&lt;br /&gt;
Calcular la divergencia y el rotacional del campo de desplazamientos es de gran utilidad, ya que estos aportan información muy valiosa sobre las características de la deformación que experimenta la placa. &lt;br /&gt;
&lt;br /&gt;
El rotacional mide cuánto rotan los puntos de la placa. Su módulo cuantifica la rotación, mientras que su dirección y sentido dan el eje de rotación.&lt;br /&gt;
La divergencia en cambio, mide cuánto cambia el área en un entrono de cada punto. &lt;br /&gt;
&lt;br /&gt;
La deformación de un entorno de un punto de la placa, no su desplazamiento, es por lo tanto la rotación y el cambio de tamaño de ese entorno. &lt;br /&gt;
&lt;br /&gt;
Para tener una mejor intuición de lo que esto significa, se ha dibujado el módulo del rotacional y la divergencia de una rotación de ángulo π/2, una escala de la placa del factor 2 y un desplazamiento sin deformación de dirección 2 &amp;lt;math&amp;gt; \vec i &amp;lt;/math&amp;gt;. En el desplazamiento como no hay deformación, el rotacional y la divergencia deben valer cero. &lt;br /&gt;
El rotacional es mayor que cero e igual en todos los puntos y la divergencia es cero. Esto se debe a que todos los puntos rotan por igual (π/2) y su área no cambia. En la escala por el factor 2, el rotacional debe ser nulo y la divergencia 4, ya que cada lado se duplica produciendo una cuadruplicación del área.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Explicación divergencia y rotacional.jpg|400x300px|miniaturadeimagen|centro|Explicación divergencia y rotacional]]&lt;br /&gt;
&lt;br /&gt;
====Divergencia del campo desplazamientos====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Calculando la divergencia de forma manual y con diferenciación automática, se ha concluido que esta es nula en cualquier punto: &amp;lt;math&amp;gt; ∇ ⋅ \vec u =  \frac{1}{ρ} [\frac{δ}{δρ} (ρ (\frac{ρ}{10} sen θ)) + \frac{δ}{δθ} (\frac{ρ}{5} cos θ) + \frac{δ}{δz} (ρ 0)] = 0 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lo que indica la divergencia es la variación del diferencial de área. En este caso concreto en que es nula, se puede apreciar en la gráfica del punto anterior como aunque los cuadrados del mallado de la placa puedan ser deformados mantienen el mismo tamaño, es decir, ni se dilatan ni se contraen.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Divergencia Nuestra.jpg|400x300px|miniaturadeimagen|centro|Divergencia del campo]]&lt;br /&gt;
&lt;br /&gt;
====Visualización del módulo del rotacional del campo desplazamiento====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mediante el cálculo manual se ha obtenido el siguiente rotacional: &amp;lt;math&amp;gt; V × \vec u = \frac{1}{ρ} \left| \begin{matrix} \vec e_ρ &amp;amp; ρ \vec e_θ &amp;amp; \vec e_z \\ \frac{δ}{δρ} &amp;amp; \frac{δ}{δθ} &amp;amp; \frac{δ}{δz} \\ \frac{ρ}{10} sen θ &amp;amp; ρ \frac{ρ}{5} cos θ &amp;amp; 0 \end{matrix} \right| = \frac{3}{10} cos(θ) \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto su módulo es: &amp;lt;math&amp;gt; |V × \vec u| = |\frac{3}{10} cos(θ)| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El resultado de representarlo sobre el plano XY es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Rotacional nuestro.jpg|400x300px|miniaturadeimagen|centro|Rotacional del campo desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El rotacional indica el giro experimentado por la placa en su deformación, lo que se puede apreciar en la representación anterior y teniendo en cuenta el punto 4.3.&lt;br /&gt;
Así, los extremos de la placa, que experimentan un giro, tienen el mayor valor del rotacional. &lt;br /&gt;
Cabe decir que estos valores tendrán signo contrario, pues los giros son opuestos.&lt;br /&gt;
Esto no se tiene en consideración para la representación gráfica, pues en ella buscamos el módulo del rotacional, que siempre es positivo.&lt;br /&gt;
&lt;br /&gt;
===Tensor de tensiones===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este apartado, sabiendo que nos encontramos en un medio lineal, isótropo y homogéneo (así lo indica el enunciado), la función del tensor de tensiones viene descrita de la siguiente forma: &amp;lt;math&amp;gt; σ = λ ∇ ⋅ \vec u 1 + 2 μ ε &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En dicha fórmula conocemos que los Coeficientes de Lamé (λ y μ) que dependen de las propiedades elásticas de cada material. Tomando en este caso que ambos son 1.&lt;br /&gt;
&lt;br /&gt;
La parte simétrica del tensor gradiente del campo  de deplazamientos, queda también definida de la siguiente manera: &amp;lt;math&amp;gt; ε(\vec u) = \frac{∇ \vec u + ∇ \vec u ^t}{2} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
De forma manual se ha obtenido que el gradiente del campo es &amp;lt;math&amp;gt; ∇ \vec u(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; - \frac{ρ}{10} cos θ &amp;amp; 0 \\ \frac{1}{5} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto, la matriz traspuesta del gradiente del campo es: &amp;lt;math&amp;gt; ∇ \vec u^t(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; \frac{1}{5} cos θ &amp;amp; 0 \\ - \frac{ρ}{10} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Resolviendo la parte simétrica del tensor gradiente de forma manual, se obtiene como resultado: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; cos θ (\frac{1}{10} - \frac{ρ}{20} ) &amp;amp; 0 \\ cos θ (\frac{1}{10} - \frac{ρ}{20}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De esta forma, se concluye que el tensor de tensiones viene representado de la siguiente forma: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{5} sen θ &amp;amp; cos θ (\frac{1}{5} - \frac{ρ}{10} ) &amp;amp; 0 \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Representación de las tensiones normales====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tensiones comparación.jpg|400x300px|miniaturadeimagen|centro|Representación de las tensiones normales]]&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_ρ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_ρ ⋅ σ ⋅ \vec e_ρ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; \frac {1}{5} sen θ \vec e_ρ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_θ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_θ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_θ ⋅ σ ⋅ \vec e_θ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_z, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt;  \vec e_z ⋅ σ ⋅ \vec e_z &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; 0 \vec e_z &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Tensiones tangenciales respecto al plano ortogonal &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este caso, simplemente se ha aplicado la fórmula correspondiente que es la siguiente: &amp;lt;math&amp;gt; |σ ⋅ \vec e_ρ - \vec e_ρ ⋅ σ ⋅ \vec e_ρ| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Desarrollando la fórmula: &amp;lt;math&amp;gt; \begin{pmatrix} \frac{1}{5} sen θ \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) \\ 0 \end{pmatrix} - \begin{pmatrix} \frac {1}{5} sen θ \\ 0 \\ 0 \end{pmatrix} =  cos θ (\frac {1}{5} - \frac {ρ}{10}) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación Tensiones tangenciales.jpg|400x300px|miniaturadeimagen|centro|Comparación Tensiones tangenciales]]&lt;br /&gt;
&lt;br /&gt;
===Tensión de Von Mises===&lt;br /&gt;
&lt;br /&gt;
La tensión de Von Mises viene determinada por la fórmula: &amp;lt;math&amp;gt; σ_{VM} = \sqrt{\frac{(\vec σ_1 - \vec σ_2)^2 + (\vec σ_2 - \vec σ_3)^2 + (\vec σ_3 - \vec σ_1)^2}{2}} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Puesto que cada punto de la placa lleva asociado un tensor de la tensión, siendo  &amp;lt;math&amp;gt; \vec σ_1, \vec σ_2, \vec σ_3;  &amp;lt;/math&amp;gt; los autovalores de dicha matriz, se debe ir punto a punto calculándolos, por tanto es necesario un bucle que rellene una matriz con los valores de la tensión Von Mises para cada punto. &lt;br /&gt;
&lt;br /&gt;
La tensión de Von Mises muestra los puntos donde se produciría la rotura de la placa. En este caso rompería la parte superior de la placa.&lt;br /&gt;
&lt;br /&gt;
La representación es la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tensión Von Mises.jpg|400x300px|miniaturadeimagen|centro|Tensión Von Mises]]&lt;br /&gt;
&lt;br /&gt;
===Fuerza causante del desplazamiento===&lt;br /&gt;
&lt;br /&gt;
Conociendo que la placa viene deformada por la función vectorial dada, se puede obtener la fuerza que motiva el desplazamiento. Esa viene definida por: &amp;lt;math&amp;gt; \vec F = - \nabla ⋅ \vec u &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El resultado de la fuerza obtenido manualmente es el descrito a continuación: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_ρ + \frac {1}{5} (\frac {1}{ρ} - 2) cos θ \vec e_θ &amp;lt;/math&amp;gt;. La componente según &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt; es nula.&lt;br /&gt;
&lt;br /&gt;
Calculado por diferenciación automática queda la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas]]&lt;br /&gt;
&lt;br /&gt;
Si de dibuja el campo de fuerzas y la las posiciones inicial y final no queda del todo claro que éste sea el campo que motiva el desplazamiento y la deformación de la placa. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas y desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de Fuerzas y desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
Si se dibuja la resultante de las fuerzas el desplazamiento de la placa queda explicado, mientras que dibujando únicamente la placa final deformada, sin considerar el desplazamiento y el campo de fuerzas, se pueden apreciar claramente que deformaciones como el achatamiento de la forma circular de la placa son causadas por el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Desplazamiento y resultante concampo de fuerzas sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas, desplazamiento y deformación de la placa]]&lt;br /&gt;
&lt;br /&gt;
==Anexo==&lt;br /&gt;
&lt;br /&gt;
===Librería de Julia desarrollada para el trabajo===&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Teoría de Campos]][[Categoría:TC21/22]]&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=47972</id>
		<title>Grupo B12 Trabajo 5: Estudio de tensiones sobre una placa mediante diferenciación automática</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=47972"/>
				<updated>2021-12-10T18:40:46Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: /* Programación */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Estudio de tensiones sobre una placa mediante diferenciación automática. Grupo B12 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC21/22|2021-2022]] | Víctor Sillero González&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Rodrigo Vázquez Pérez }}&lt;br /&gt;
&lt;br /&gt;
El trabajo correspondiente a este grupo es el número 5, en particular consiste en el estudio de temperaturas, deformaciones y tensiones sobre una placa compuesta de medio anillo circular.&lt;br /&gt;
La peculiaridad de este trabajo radica en que se ha realizado mediante diferenciación automática gracias a una librería realizada por los componentes del grupo.&lt;br /&gt;
Dicho programa ha sido realizado en el leguaje de programación &amp;quot;Julia&amp;quot;, y por ende todo el desarrollo ha sido realizado mediante dicho lenguaje.&lt;br /&gt;
&lt;br /&gt;
Todos los gráficos se han creado a partir de la librería Makie de Julia. Se ha creado una función con los estilos que queríamos usar que toma como input campos y funciones así como una lista de puntos y algunos parámetros de estilo y dibuja la gráfica correspondiente. Al ser tanto el programa para las gráficas como la librería de diferenciación automática demasiado largos para ser publicados en esta página se adjunta un link donde se pueden descargar y ver. Aunque todos las gráficas mostradas se han producido por métodos computacionales se también se han realizado los cálculos a mano.&lt;br /&gt;
&lt;br /&gt;
La librería utilizada a lo largo de todo el trabajo queda adjunta en el anexo.&lt;br /&gt;
&lt;br /&gt;
En este caso los datos aportados por el enunciado han sido los siguientes:&lt;br /&gt;
* Placa plana que ocupa la mitad de un anillo circular centrado en el origen y comprendido entre los radios 1 y 2, en el plano y ≥ 0.&lt;br /&gt;
* Función temperatura en la placa: &amp;lt;math&amp;gt; T(x,y) = x^2 + (y-1)^2 &amp;lt;/math&amp;gt;.&lt;br /&gt;
* Campo de deformaciones: &amp;lt;math&amp;gt;\vec u(ρ,θ) = \frac{ρ}{10} sin(θ) + \frac{ρ}{5} cos(θ) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Julia Portada.png|400x300px|miniaturadeimagen|centro|Portada programa Julia]]&lt;br /&gt;
&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
Este trabajo tiene como objetivo el estudio de las tensiones y fuerzas que producen desplazamientos y deformaciones en una placa, así como su campo de temperaturas a partir de un campo de desplazamientos y una función escalar de temperaturas. Además, se va a estudiar el cálculo de derivadas y operadores diferenciales mediante métodos computacionales.&lt;br /&gt;
&lt;br /&gt;
=== Diferenciación automática===&lt;br /&gt;
====Métodos habituales: Aproximación numérica====&lt;br /&gt;
Normalmente cuando se quiere obtener el valor de la derivada de una función en un punto mediante un ordenador se realiza una aproximación a partir de la definición de derivada. $\frac{f(x+h) - f(x)}{h}$ dando un valor concreto lo menor posible para $h$.&lt;br /&gt;
Un ejemplo del método con la función $f(x) = x^{2}$ y $h = 10^{-10}$ en x = 3&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
h = 10^-10&lt;br /&gt;
f(x) = x^2&lt;br /&gt;
derivada = (f(3+h) - f(3)) / h&lt;br /&gt;
}}&lt;br /&gt;
El resultado dado no es exáctamente 6 pero se consiguen 6 decimales de precisión por lo que es una buena aproximación. Este algoritmo realiza 3 operaciones. Evaluar $f$ en $x + h$, evaluar $f$ en $x$ y dividir todo ello entre $h$.&lt;br /&gt;
&lt;br /&gt;
Un problema del método es si se emplea una $h$ demasiado pequeña puede dar problemas.&lt;br /&gt;
&lt;br /&gt;
Si se supera el número más pequeño que se puede expresar con el tipo de dato utilizado (Float64 en nuestro caso) el resultado mostrado será 0. Por lo tanto un manejo correcto de los valores de $h$ es esencial y complica el método bastante.&lt;br /&gt;
&lt;br /&gt;
====Números duales====&lt;br /&gt;
&lt;br /&gt;
El método empleado en este trabajo es exacto. No se realiza ninguna aproximación. Para ello es necesario definir un nuevo tipo de número distinto de los reales o los complejos, los números duales.&lt;br /&gt;
&lt;br /&gt;
Los números duales son números del tipo $a + b\epsilon$ siendo $a$ y $b$ números reales o duales. &lt;br /&gt;
&lt;br /&gt;
Denominamos parte real al número $a$ y parte derivada al número $b$&lt;br /&gt;
&lt;br /&gt;
Además se define la siguiente propiedad: $\epsilon \neq 0$ tal que $\epsilon^{2} = 0$. $\epsilon$ por lo tanto no es un número real.&lt;br /&gt;
&lt;br /&gt;
Las operaciones aritméticas básicas se definen de manera sencilla.&lt;br /&gt;
* Suma: $(a + b\epsilon) + (c + d\epsilon) = (a + c) + (b + d)\epsilon$&lt;br /&gt;
* Producto $(a + b\epsilon) * (c + d\epsilon) = ac + (bc + ad)\epsilon + (bd)^{2}\epsilon^{2}$, como $\epsilon^{2} = 0$ el resultado final es $(a + b\epsilon) * (c + d\epsilon) = ac + (bc + ad)\epsilon$&lt;br /&gt;
&lt;br /&gt;
====Series de Taylor y números duales====&lt;br /&gt;
Sea $f$ una función cualquiera y $a$ un punto del dominio de $f$ la serie de Taylor de $f$ en el punto $a$ es&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
$f(x) = f(a) + \frac{f'(a)}{1!}(x-a) + \frac{f''(a)}{2!}(x-a)^{2} + ... = \sum_{i=0}^\infty \frac{f^{i}(a)}{i!}(x-a)^{i}$&lt;br /&gt;
}}&lt;br /&gt;
Si se evalúa la serie de Taylor de $f$ en el valor dual $x = a + \epsilon$ se obtiene &lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
$f(a + \epsilon) = f(a) + f'(a)\epsilon + \frac{f''(a)}{2!}\epsilon^{2} + ...$ y como $\epsilon^{2} = 0$ el resultado final es&lt;br /&gt;
}}&lt;br /&gt;
$f(a + \epsilon) = f(a) + f'(a)\epsilon$&lt;br /&gt;
&lt;br /&gt;
La parte real de $f(a + \epsilon)$ es $f$ evaluado en $a$, es decir $f(a)$ y la parte derivada de $f(a + \epsilon)$ es la derivada de $f$ evaluada en $a$, es decir $f'(a)$.&lt;br /&gt;
&lt;br /&gt;
====Cálculo de drivadas por números duales====&lt;br /&gt;
&lt;br /&gt;
Gracias a las propiedades comentadas en la sección anterior podemos establecer un nuevo método esta vez exacto para calcular derivadas. &lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
$f'(a) = parte Derivada[f(a + \epsilon)]$&lt;br /&gt;
}}&lt;br /&gt;
Este método consiste en únicamtente una operación siendo no solamente exacto sino además más rápido que el método aproximado.&lt;br /&gt;
&lt;br /&gt;
====Programación====&lt;br /&gt;
&lt;br /&gt;
En primer lugar se define un nuevo tipo de dato Dual, con las propiedades de parte real $x$ y parte derivada $\epsilon$.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
mutable struct Dual{T&amp;lt;:Real} &amp;lt;: Real &lt;br /&gt;
    x::T&lt;br /&gt;
    ϵ::T&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
Ahora se definen las operaciones básicas sobre el tipo de dato dual. Aquí se muestran algunas de ellas.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
#negacion &lt;br /&gt;
Base.:-(a::Dual) = Dual(-1 * a.x, -1* a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#suma&lt;br /&gt;
Base.:+(a::Dual, b::Dual) = Dual(a.x + b.x, a.ϵ .+ b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#diferencia&lt;br /&gt;
Base.:-(a::Dual, b::Dual) = Dual(a.x - b.x, a.ϵ - b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#producto&lt;br /&gt;
Base.:*(a::Dual, b::Dual) = Dual(a.x * b.x, b.x * a.ϵ + a.x * b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#reciproco &lt;br /&gt;
recip = a::Dual -&amp;gt; Dual(1. / a.x, (-1* a.ϵ) / (a.x ^2))&lt;br /&gt;
&lt;br /&gt;
#cociente&lt;br /&gt;
Base.:/(a::Dual, b::Dual) = a * recip(b)&lt;br /&gt;
&lt;br /&gt;
#exponencial, potencia y raiz_cuadrada&lt;br /&gt;
Base.:exp(a::Dual) = exp(a.x) * Dual(1.,a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#logaritmo &lt;br /&gt;
Base.:log(a::Dual) = Dual(log(a.x), a.ϵ / a.x)&lt;br /&gt;
&lt;br /&gt;
#trigonometria&lt;br /&gt;
Base.:sin(d::Dual) = Dual(sin(d.x), d.ϵ * cos(d.x))&lt;br /&gt;
Base.:cos(d::Dual) = Dual(cos(d.x), - d.ϵ * sin(d.x))&lt;br /&gt;
}}&lt;br /&gt;
Y ya podríamos calcular derivadas. Por ejeplo creando la función f(x) = x^2 y evaluándola en el punto Dual(4, 1) se obtiene el número Dual(16, 8), 8 es la derivada de x^2 en el punto 4.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
f(x) = x^2 &lt;br /&gt;
f(Dual(4., 1.))&lt;br /&gt;
}}&lt;br /&gt;
A partir de este código se programa una librería capaz de calcular gradientes, divergencias y rotacionales de cualquier función. Además es capaz de trabajar en coordenadas cilíndricas esféricas y cartesianas.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo el tensor gradiente de una función u en un punto en la librería se calcula con el comando:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
u.grad(punto)&lt;br /&gt;
}}&lt;br /&gt;
Existen algoritmos más avanzados que hacen este proceso aún más rápido pero para cubrir nuestras necesidades la velocidad aportada por esta librería es suficiente.&lt;br /&gt;
&lt;br /&gt;
Para realizar el trabajo se define la placa, la función de temperaturas y el campo de desplazamientos y el programa crea todas las gráficas necesarias, por lo que nuestro programa es capaz de resolver cualquiera de los trabajos que se han planteado de manera instantánea.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
λ = 1&lt;br /&gt;
μ = 1&lt;br /&gt;
&lt;br /&gt;
rango = 0.1&lt;br /&gt;
&lt;br /&gt;
ρ_s = range(1, 2, 11) # discretizacion de variables&lt;br /&gt;
θ_s = range(0, pi, 32)&lt;br /&gt;
z_s = zeros(size(ρ_s))&lt;br /&gt;
&lt;br /&gt;
#campo de temperaturas&lt;br /&gt;
t = x -&amp;gt; x[1]^2 +(x[2] - 1)^2 #cartesianas&lt;br /&gt;
&lt;br /&gt;
T = funcion_escalar(t, tipo = 1)&lt;br /&gt;
&lt;br /&gt;
u = funcion_vectorial(x -&amp;gt; [(x[1] / 10) * sin(x[2]), (x[1] / 5) * cos(x[2]), 0], tipo = 2) # cilindricas&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Dibujo del mallado==&lt;br /&gt;
&lt;br /&gt;
En primer lugar es necesario dibujar la placa que se va a estudiar. &lt;br /&gt;
La placa se define en coordenadas cilíndricas (base física cilíndrica) con la siguiente parametrización: &amp;lt;math&amp;gt; ρ = u -&amp;gt; [0,2] ; θ = v -&amp;gt; [0, π]; z = 0&amp;lt;/math&amp;gt;. &lt;br /&gt;
En el caso de que la placa fuese más compleja, nuestro programa también aceptaría definirla mediante una función que tomando un punto como entrada, devuelva 1 o 0 dependiendo de si dicho punto se encuentra en la placa o no.&lt;br /&gt;
&lt;br /&gt;
Los ejes tomados para dibujar las gráficas han sido [−2, 2] × [0, 2] y se ha dibujado un mallado con el comando &amp;quot;wireframe&amp;quot;.&lt;br /&gt;
Por otra parte, el muestreo utilizado ha sido &amp;lt;math&amp;gt;h= \frac{1}{10}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Placa Nuestra.jpg|400x300px|miniaturadeimagen|centro|Placa representada]]&lt;br /&gt;
&lt;br /&gt;
==Campo de las temperaturas en la placa==&lt;br /&gt;
&lt;br /&gt;
===Dibujo de las curvas de nivel===&lt;br /&gt;
Una vez definida la función temperatura T(x,y) en cartesianas, una parametrización para la placa y habiendo elegido el número de curvas a representar, (20), mediante la función &amp;quot;contour&amp;quot; se han dibujado las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Curvas Temperatura.jpg|400x300px|miniaturadeimagen|centro|Curvas de nivel de la Temperatura]]&lt;br /&gt;
&lt;br /&gt;
===Máximo de temperatura===&lt;br /&gt;
Para obtener el máximo de la temperatura con precisión la función &amp;quot;dibujar2D&amp;quot; que empleamos para dibujar las gráficas devuelve el mayor valor e indica dicho punto mediante un aspa roja.&lt;br /&gt;
&lt;br /&gt;
===Dibujo del gradiente como campo vectorial (&amp;lt;math&amp;gt; \nabla &amp;lt;/math&amp;gt;T)===&lt;br /&gt;
De la función de la temperatura dada, se ha obtenido el gradiente: &amp;lt;math&amp;gt; 2x \vec i + 2 (y - 1) \vec j &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dibujado junto a las curvas de nivel, se observa fácilmente la perpendicularidad entre dichas curvas y los vectores representados.&lt;br /&gt;
Esto tiene sentido puesto que el gradiente indica la dirección de mayor crecimiento mientras que su perpendicular indica el crecimiento nulo. &lt;br /&gt;
Esta última dirección es, por tanto, tangente a las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Gradiente Nuestro.jpg|400x300px|miniaturadeimagen|centro|Gradiente]]&lt;br /&gt;
&lt;br /&gt;
==Tensiones y fuerzas==&lt;br /&gt;
&lt;br /&gt;
===Posición inicial y final de la placa===&lt;br /&gt;
&lt;br /&gt;
Como punto de partida se dibuja la posición inicial y final de la placa. &lt;br /&gt;
Los puntos de la posición final se han calculado sumando a cada punto de la placa inicial su vector desplazamiento dado por la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt;. &lt;br /&gt;
Además, restando a la placa final la media de los desplazamientos en todos los puntos se ha obtenido una gráfica que muestra únicamente las deformaciones que la placa experimenta.&lt;br /&gt;
De esta forma, permite ver que la placa final está achatada y deja de ser circular.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación placa inicial y final con deformación sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Comparación de la placa inicial y final con deformación de la placa sin desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El objetivo final es conocer el campo de fuerzas que ha producido este desplazamiento. &lt;br /&gt;
Para ello a partir del campo de desplazamientos se calculan las tensiones que experimenta la placa y a partir de éstas, el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
===Representación del campo vectorial de desplazamientos===&lt;br /&gt;
Tras definir la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt; en el código, y mediante el uso de la función &amp;quot;arrows&amp;quot; (gracias a que el campo no dispone de componente vertical), se obtiene la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
===Divergencia y rotacional===&lt;br /&gt;
&lt;br /&gt;
Calcular la divergencia y el rotacional del campo de desplazamientos es de gran utilidad, ya que estos aportan información muy valiosa sobre las características de la deformación que experimenta la placa. &lt;br /&gt;
&lt;br /&gt;
El rotacional mide cuánto rotan los puntos de la placa. Su módulo cuantifica la rotación, mientras que su dirección y sentido dan el eje de rotación.&lt;br /&gt;
La divergencia en cambio, mide cuánto cambia el área en un entrono de cada punto. &lt;br /&gt;
&lt;br /&gt;
La deformación de un entorno de un punto de la placa, no su desplazamiento, es por lo tanto la rotación y el cambio de tamaño de ese entorno. &lt;br /&gt;
&lt;br /&gt;
Para tener una mejor intuición de lo que esto significa, se ha dibujado el módulo del rotacional y la divergencia de una rotación de ángulo π/2, una escala de la placa del factor 2 y un desplazamiento sin deformación de dirección 2 &amp;lt;math&amp;gt; \vec i &amp;lt;/math&amp;gt;. En el desplazamiento como no hay deformación, el rotacional y la divergencia deben valer cero. &lt;br /&gt;
El rotacional es mayor que cero e igual en todos los puntos y la divergencia es cero. Esto se debe a que todos los puntos rotan por igual (π/2) y su área no cambia. En la escala por el factor 2, el rotacional debe ser nulo y la divergencia 4, ya que cada lado se duplica produciendo una cuadruplicación del área.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Explicación divergencia y rotacional.jpg|400x300px|miniaturadeimagen|centro|Explicación divergencia y rotacional]]&lt;br /&gt;
&lt;br /&gt;
====Divergencia del campo desplazamientos====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Calculando la divergencia de forma manual y con diferenciación automática, se ha concluido que esta es nula en cualquier punto: &amp;lt;math&amp;gt; ∇ ⋅ \vec u =  \frac{1}{ρ} [\frac{δ}{δρ} (ρ (\frac{ρ}{10} sen θ)) + \frac{δ}{δθ} (\frac{ρ}{5} cos θ) + \frac{δ}{δz} (ρ 0)] = 0 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lo que indica la divergencia es la variación del diferencial de área. En este caso concreto en que es nula, se puede apreciar en la gráfica del punto anterior como aunque los cuadrados del mallado de la placa puedan ser deformados mantienen el mismo tamaño, es decir, ni se dilatan ni se contraen.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Divergencia Nuestra.jpg|400x300px|miniaturadeimagen|centro|Divergencia del campo]]&lt;br /&gt;
&lt;br /&gt;
====Visualización del módulo del rotacional del campo desplazamiento====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mediante el cálculo manual se ha obtenido el siguiente rotacional: &amp;lt;math&amp;gt; V × \vec u = \frac{1}{ρ} \left| \begin{matrix} \vec e_ρ &amp;amp; ρ \vec e_θ &amp;amp; \vec e_z \\ \frac{δ}{δρ} &amp;amp; \frac{δ}{δθ} &amp;amp; \frac{δ}{δz} \\ \frac{ρ}{10} sen θ &amp;amp; ρ \frac{ρ}{5} cos θ &amp;amp; 0 \end{matrix} \right| = \frac{3}{10} cos(θ) \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto su módulo es: &amp;lt;math&amp;gt; |V × \vec u| = |\frac{3}{10} cos(θ)| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, de nuevo se utiliza diferenciación automática de forma que el valor del módulo del rotacional para cada punto, se calcula directamente a partir de la función del campo de desplazamientos como se aprecia en el código.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El resultado de representarlo sobre el plano XY es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Rotacional nuestro.jpg|400x300px|miniaturadeimagen|centro|Rotacional del campo desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El rotacional indica el giro experimentado por la placa en su deformación, lo que se puede apreciar en la representación anterior y teniendo en cuenta el punto 4.3.&lt;br /&gt;
Así, los extremos de la placa, que experimentan un giro, tienen el mayor valor del rotacional. &lt;br /&gt;
Cabe decir que estos valores tendrán signo contrario, pues los giros son opuestos.&lt;br /&gt;
Esto no se tiene en consideración para la representación gráfica, pues en ella buscamos el módulo del rotacional, que siempre es positivo.&lt;br /&gt;
&lt;br /&gt;
===Tensor de tensiones===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este apartado, sabiendo que nos encontramos en un medio lineal, isótropo y homogéneo (así lo indica el enunciado), la función del tensor de tensiones viene descrita de la siguiente forma: &amp;lt;math&amp;gt; σ = λ ∇ ⋅ \vec u 1 + 2 μ ε &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En dicha fórmula conocemos que los Coeficientes de Lamé (λ y μ) que dependen de las propiedades elásticas de cada material. Tomando en este caso que ambos son 1.&lt;br /&gt;
&lt;br /&gt;
La parte simétrica del tensor gradiente del campo  de deplazamientos, queda también definida de la siguiente manera: &amp;lt;math&amp;gt; ε(\vec u) = \frac{∇ \vec u + ∇ \vec u ^t}{2} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
De forma manual se ha obtenido que el gradiente del campo es &amp;lt;math&amp;gt; ∇ \vec u(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; - \frac{ρ}{10} cos θ &amp;amp; 0 \\ \frac{1}{5} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto, la matriz traspuesta del gradiente del campo es: &amp;lt;math&amp;gt; ∇ \vec u^t(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; \frac{1}{5} cos θ &amp;amp; 0 \\ - \frac{ρ}{10} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Resolviendo la parte simétrica del tensor gradiente de forma manual, se obtiene como resultado: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; cos θ (\frac{1}{10} - \frac{ρ}{20} ) &amp;amp; 0 \\ cos θ (\frac{1}{10} - \frac{ρ}{20}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De esta forma, se concluye que el tensor de tensiones viene representado de la siguiente forma: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{5} sen θ &amp;amp; cos θ (\frac{1}{5} - \frac{ρ}{10} ) &amp;amp; 0 \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Representación de las tensiones normales====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tensiones comparación.jpg|400x300px|miniaturadeimagen|centro|Representación de las tensiones normales]]&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_ρ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_ρ ⋅ σ ⋅ \vec e_ρ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; \frac {1}{5} sen θ \vec e_ρ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_θ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_θ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_θ ⋅ σ ⋅ \vec e_θ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_z, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt;  \vec e_z ⋅ σ ⋅ \vec e_z &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; 0 \vec e_z &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Tensiones tangenciales respecto al plano ortogonal &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este caso, simplemente se ha aplicado la fórmula correspondiente que es la siguiente: &amp;lt;math&amp;gt; |σ ⋅ \vec e_ρ - \vec e_ρ ⋅ σ ⋅ \vec e_ρ| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Desarrollando la fórmula: &amp;lt;math&amp;gt; \begin{pmatrix} \frac{1}{5} sen θ \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) \\ 0 \end{pmatrix} - \begin{pmatrix} \frac {1}{5} sen θ \\ 0 \\ 0 \end{pmatrix} =  cos θ (\frac {1}{5} - \frac {ρ}{10}) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación Tensiones tangenciales.jpg|400x300px|miniaturadeimagen|centro|Comparación Tensiones tangenciales]]&lt;br /&gt;
&lt;br /&gt;
===Tensión de Von Mises===&lt;br /&gt;
&lt;br /&gt;
La tensión de Von Mises viene determinada por la fórmula: &amp;lt;math&amp;gt; σ_{VM} = \sqrt{\frac{(\vec σ_1 - \vec σ_2)^2 + (\vec σ_2 - \vec σ_3)^2 + (\vec σ_3 - \vec σ_1)^2}{2}} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Puesto que cada punto de la placa lleva asociado un tensor de la tensión, siendo  &amp;lt;math&amp;gt; \vec σ_1, \vec σ_2, \vec σ_3;  &amp;lt;/math&amp;gt; los autovalores de dicha matriz, se debe ir punto a punto calculándolos, por tanto es necesario un bucle que rellene una matriz con los valores de la tensión Von Mises para cada punto. &lt;br /&gt;
&lt;br /&gt;
La tensión de Von Mises muestra los puntos donde se produciría la rotura de la placa. En este caso rompería la parte superior de la placa.&lt;br /&gt;
&lt;br /&gt;
La representación es la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tensión Von Mises.jpg|400x300px|miniaturadeimagen|centro|Tensión Von Mises]]&lt;br /&gt;
&lt;br /&gt;
===Fuerza causante del desplazamiento===&lt;br /&gt;
&lt;br /&gt;
Conociendo que la placa viene deformada por la función vectorial dada, se puede obtener la fuerza que motiva el desplazamiento. Esa viene definida por: &amp;lt;math&amp;gt; \vec F = - \nabla ⋅ \vec u &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El resultado de la fuerza obtenido manualmente es el descrito a continuación: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_ρ + \frac {1}{5} (\frac {1}{ρ} - 2) cos θ \vec e_θ &amp;lt;/math&amp;gt;. La componente según &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt; es nula.&lt;br /&gt;
&lt;br /&gt;
Calculado por diferenciación automática queda la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas]]&lt;br /&gt;
&lt;br /&gt;
Si de dibuja el campo de fuerzas y la las posiciones inicial y final no queda del todo claro que éste sea el campo que motiva el desplazamiento y la deformación de la placa. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas y desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de Fuerzas y desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
Si se dibuja la resultante de las fuerzas el desplazamiento de la placa queda explicado, mientras que dibujando únicamente la placa final deformada, sin considerar el desplazamiento y el campo de fuerzas, se pueden apreciar claramente que deformaciones como el achatamiento de la forma circular de la placa son causadas por el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Desplazamiento y resultante concampo de fuerzas sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas, desplazamiento y deformación de la placa]]&lt;br /&gt;
&lt;br /&gt;
==Anexo==&lt;br /&gt;
&lt;br /&gt;
===Librería de Julia desarrollada para el trabajo===&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Teoría de Campos]][[Categoría:TC21/22]]&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=47970</id>
		<title>Grupo B12 Trabajo 5: Estudio de tensiones sobre una placa mediante diferenciación automática</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=47970"/>
				<updated>2021-12-10T18:39:57Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: /* Programación */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Estudio de tensiones sobre una placa mediante diferenciación automática. Grupo B12 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC21/22|2021-2022]] | Víctor Sillero González&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Rodrigo Vázquez Pérez }}&lt;br /&gt;
&lt;br /&gt;
El trabajo correspondiente a este grupo es el número 5, en particular consiste en el estudio de temperaturas, deformaciones y tensiones sobre una placa compuesta de medio anillo circular.&lt;br /&gt;
La peculiaridad de este trabajo radica en que se ha realizado mediante diferenciación automática gracias a una librería realizada por los componentes del grupo.&lt;br /&gt;
Dicho programa ha sido realizado en el leguaje de programación &amp;quot;Julia&amp;quot;, y por ende todo el desarrollo ha sido realizado mediante dicho lenguaje.&lt;br /&gt;
&lt;br /&gt;
Todos los gráficos se han creado a partir de la librería Makie de Julia. Se ha creado una función con los estilos que queríamos usar que toma como input campos y funciones así como una lista de puntos y algunos parámetros de estilo y dibuja la gráfica correspondiente. Al ser tanto el programa para las gráficas como la librería de diferenciación automática demasiado largos para ser publicados en esta página se adjunta un link donde se pueden descargar y ver. Aunque todos las gráficas mostradas se han producido por métodos computacionales se también se han realizado los cálculos a mano.&lt;br /&gt;
&lt;br /&gt;
La librería utilizada a lo largo de todo el trabajo queda adjunta en el anexo.&lt;br /&gt;
&lt;br /&gt;
En este caso los datos aportados por el enunciado han sido los siguientes:&lt;br /&gt;
* Placa plana que ocupa la mitad de un anillo circular centrado en el origen y comprendido entre los radios 1 y 2, en el plano y ≥ 0.&lt;br /&gt;
* Función temperatura en la placa: &amp;lt;math&amp;gt; T(x,y) = x^2 + (y-1)^2 &amp;lt;/math&amp;gt;.&lt;br /&gt;
* Campo de deformaciones: &amp;lt;math&amp;gt;\vec u(ρ,θ) = \frac{ρ}{10} sin(θ) + \frac{ρ}{5} cos(θ) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Julia Portada.png|400x300px|miniaturadeimagen|centro|Portada programa Julia]]&lt;br /&gt;
&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
Este trabajo tiene como objetivo el estudio de las tensiones y fuerzas que producen desplazamientos y deformaciones en una placa, así como su campo de temperaturas a partir de un campo de desplazamientos y una función escalar de temperaturas. Además, se va a estudiar el cálculo de derivadas y operadores diferenciales mediante métodos computacionales.&lt;br /&gt;
&lt;br /&gt;
=== Diferenciación automática===&lt;br /&gt;
====Métodos habituales: Aproximación numérica====&lt;br /&gt;
Normalmente cuando se quiere obtener el valor de la derivada de una función en un punto mediante un ordenador se realiza una aproximación a partir de la definición de derivada. $\frac{f(x+h) - f(x)}{h}$ dando un valor concreto lo menor posible para $h$.&lt;br /&gt;
Un ejemplo del método con la función $f(x) = x^{2}$ y $h = 10^{-10}$ en x = 3&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
h = 10^-10&lt;br /&gt;
f(x) = x^2&lt;br /&gt;
derivada = (f(3+h) - f(3)) / h&lt;br /&gt;
}}&lt;br /&gt;
El resultado dado no es exáctamente 6 pero se consiguen 6 decimales de precisión por lo que es una buena aproximación. Este algoritmo realiza 3 operaciones. Evaluar $f$ en $x + h$, evaluar $f$ en $x$ y dividir todo ello entre $h$.&lt;br /&gt;
&lt;br /&gt;
Un problema del método es si se emplea una $h$ demasiado pequeña puede dar problemas.&lt;br /&gt;
&lt;br /&gt;
Si se supera el número más pequeño que se puede expresar con el tipo de dato utilizado (Float64 en nuestro caso) el resultado mostrado será 0. Por lo tanto un manejo correcto de los valores de $h$ es esencial y complica el método bastante.&lt;br /&gt;
&lt;br /&gt;
====Números duales====&lt;br /&gt;
&lt;br /&gt;
El método empleado en este trabajo es exacto. No se realiza ninguna aproximación. Para ello es necesario definir un nuevo tipo de número distinto de los reales o los complejos, los números duales.&lt;br /&gt;
&lt;br /&gt;
Los números duales son números del tipo $a + b\epsilon$ siendo $a$ y $b$ números reales o duales. &lt;br /&gt;
&lt;br /&gt;
Denominamos parte real al número $a$ y parte derivada al número $b$&lt;br /&gt;
&lt;br /&gt;
Además se define la siguiente propiedad: $\epsilon \neq 0$ tal que $\epsilon^{2} = 0$. $\epsilon$ por lo tanto no es un número real.&lt;br /&gt;
&lt;br /&gt;
Las operaciones aritméticas básicas se definen de manera sencilla.&lt;br /&gt;
* Suma: $(a + b\epsilon) + (c + d\epsilon) = (a + c) + (b + d)\epsilon$&lt;br /&gt;
* Producto $(a + b\epsilon) * (c + d\epsilon) = ac + (bc + ad)\epsilon + (bd)^{2}\epsilon^{2}$, como $\epsilon^{2} = 0$ el resultado final es $(a + b\epsilon) * (c + d\epsilon) = ac + (bc + ad)\epsilon$&lt;br /&gt;
&lt;br /&gt;
====Series de Taylor y números duales====&lt;br /&gt;
Sea $f$ una función cualquiera y $a$ un punto del dominio de $f$ la serie de Taylor de $f$ en el punto $a$ es&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
$f(x) = f(a) + \frac{f'(a)}{1!}(x-a) + \frac{f''(a)}{2!}(x-a)^{2} + ... = \sum_{i=0}^\infty \frac{f^{i}(a)}{i!}(x-a)^{i}$&lt;br /&gt;
}}&lt;br /&gt;
Si se evalúa la serie de Taylor de $f$ en el valor dual $x = a + \epsilon$ se obtiene &lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
$f(a + \epsilon) = f(a) + f'(a)\epsilon + \frac{f''(a)}{2!}\epsilon^{2} + ...$ y como $\epsilon^{2} = 0$ el resultado final es&lt;br /&gt;
}}&lt;br /&gt;
$f(a + \epsilon) = f(a) + f'(a)\epsilon$&lt;br /&gt;
&lt;br /&gt;
La parte real de $f(a + \epsilon)$ es $f$ evaluado en $a$, es decir $f(a)$ y la parte derivada de $f(a + \epsilon)$ es la derivada de $f$ evaluada en $a$, es decir $f'(a)$.&lt;br /&gt;
&lt;br /&gt;
====Cálculo de drivadas por números duales====&lt;br /&gt;
&lt;br /&gt;
Gracias a las propiedades comentadas en la sección anterior podemos establecer un nuevo método esta vez exacto para calcular derivadas. &lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
$f'(a) = parte Derivada[f(a + \epsilon)]$&lt;br /&gt;
}}&lt;br /&gt;
Este método consiste en únicamtente una operación siendo no solamente exacto sino además más rápido que el método aproximado.&lt;br /&gt;
&lt;br /&gt;
====Programación====&lt;br /&gt;
&lt;br /&gt;
En primer lugar se define un nuevo tipo de dato Dual, con las propiedades de parte real $x$ y parte derivada $\epsilon$.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
mutable struct Dual{T&amp;lt;:Real} &amp;lt;: Real &lt;br /&gt;
    x::T&lt;br /&gt;
    ϵ::T&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
Ahora se definen las operaciones básicas sobre el tipo de dato dual. Aquí se muestran algunas de ellas.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
#negacion &lt;br /&gt;
Base.:-(a::Dual) = Dual(-1 * a.x, -1* a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#suma&lt;br /&gt;
Base.:+(a::Dual, b::Dual) = Dual(a.x + b.x, a.ϵ .+ b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#diferencia&lt;br /&gt;
Base.:-(a::Dual, b::Dual) = Dual(a.x - b.x, a.ϵ - b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#producto&lt;br /&gt;
Base.:*(a::Dual, b::Dual) = Dual(a.x * b.x, b.x * a.ϵ + a.x * b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#reciproco &lt;br /&gt;
recip = a::Dual -&amp;gt; Dual(1. / a.x, (-1* a.ϵ) / (a.x ^2))&lt;br /&gt;
&lt;br /&gt;
#cociente&lt;br /&gt;
Base.:/(a::Dual, b::Dual) = a * recip(b)&lt;br /&gt;
&lt;br /&gt;
#exponencial, potencia y raiz_cuadrada&lt;br /&gt;
Base.:exp(a::Dual) = exp(a.x) * Dual(1.,a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#logaritmo &lt;br /&gt;
Base.:log(a::Dual) = Dual(log(a.x), a.ϵ / a.x)&lt;br /&gt;
&lt;br /&gt;
#trigonometria&lt;br /&gt;
Base.:sin(d::Dual) = Dual(sin(d.x), d.ϵ * cos(d.x))&lt;br /&gt;
Base.:cos(d::Dual) = Dual(cos(d.x), - d.ϵ * sin(d.x))&lt;br /&gt;
}}&lt;br /&gt;
Y ya podríamos calcular derivadas. Por ejeplo creando la función f(x) = x^2 y evaluándola en el punto Dual(4, 1) se obtiene el número Dual(16, 8), 8 es la derivada de x^2 en el punto 4.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
f(x) = x^2 &lt;br /&gt;
f(Dual(4., 1.))&lt;br /&gt;
}}&lt;br /&gt;
A partir de este código se programa una librería capaz de calcular gradientes, divergencias y rotacionales de cualquier función. Además es capaz de trabajar en coordenadas cilíndricas esféricas y cartesianas.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo el tensor gradiente de una función u en un punto en la librería se calcula con el comando:&lt;br /&gt;
&lt;br /&gt;
u.grad(punto)&lt;br /&gt;
&lt;br /&gt;
Existen algoritmos más avanzados que hacen este proceso aún más rápido pero para cubrir nuestras necesidades la velocidad aportada por esta librería es suficiente.&lt;br /&gt;
&lt;br /&gt;
Para realizar el trabajo se define la placa, la función de temperaturas y el campo de desplazamientos y el programa crea todas las gráficas necesarias, por lo que nuestro programa es capaz de resolver cualquiera de los trabajos que se han planteado de manera instantánea.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
λ = 1&lt;br /&gt;
μ = 1&lt;br /&gt;
&lt;br /&gt;
rango = 0.1&lt;br /&gt;
&lt;br /&gt;
ρ_s = range(1, 2, 11) # discretizacion de variables&lt;br /&gt;
θ_s = range(0, pi, 32)&lt;br /&gt;
z_s = zeros(size(ρ_s))&lt;br /&gt;
&lt;br /&gt;
#campo de temperaturas&lt;br /&gt;
t = x -&amp;gt; x[1]^2 +(x[2] - 1)^2 #cartesianas&lt;br /&gt;
&lt;br /&gt;
T = funcion_escalar(t, tipo = 1)&lt;br /&gt;
&lt;br /&gt;
u = funcion_vectorial(x -&amp;gt; [(x[1] / 10) * sin(x[2]), (x[1] / 5) * cos(x[2]), 0], tipo = 2) # cilindricas&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Dibujo del mallado==&lt;br /&gt;
&lt;br /&gt;
En primer lugar es necesario dibujar la placa que se va a estudiar. &lt;br /&gt;
La placa se define en coordenadas cilíndricas (base física cilíndrica) con la siguiente parametrización: &amp;lt;math&amp;gt; ρ = u -&amp;gt; [0,2] ; θ = v -&amp;gt; [0, π]; z = 0&amp;lt;/math&amp;gt;. &lt;br /&gt;
En el caso de que la placa fuese más compleja, nuestro programa también aceptaría definirla mediante una función que tomando un punto como entrada, devuelva 1 o 0 dependiendo de si dicho punto se encuentra en la placa o no.&lt;br /&gt;
&lt;br /&gt;
Los ejes tomados para dibujar las gráficas han sido [−2, 2] × [0, 2] y se ha dibujado un mallado con el comando &amp;quot;wireframe&amp;quot;.&lt;br /&gt;
Por otra parte, el muestreo utilizado ha sido &amp;lt;math&amp;gt;h= \frac{1}{10}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Placa Nuestra.jpg|400x300px|miniaturadeimagen|centro|Placa representada]]&lt;br /&gt;
&lt;br /&gt;
==Campo de las temperaturas en la placa==&lt;br /&gt;
&lt;br /&gt;
===Dibujo de las curvas de nivel===&lt;br /&gt;
Una vez definida la función temperatura T(x,y) en cartesianas, una parametrización para la placa y habiendo elegido el número de curvas a representar, (20), mediante la función &amp;quot;contour&amp;quot; se han dibujado las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Curvas Temperatura.jpg|400x300px|miniaturadeimagen|centro|Curvas de nivel de la Temperatura]]&lt;br /&gt;
&lt;br /&gt;
===Máximo de temperatura===&lt;br /&gt;
Para obtener el máximo de la temperatura con precisión la función &amp;quot;dibujar2D&amp;quot; que empleamos para dibujar las gráficas devuelve el mayor valor e indica dicho punto mediante un aspa roja.&lt;br /&gt;
&lt;br /&gt;
===Dibujo del gradiente como campo vectorial (&amp;lt;math&amp;gt; \nabla &amp;lt;/math&amp;gt;T)===&lt;br /&gt;
De la función de la temperatura dada, se ha obtenido el gradiente: &amp;lt;math&amp;gt; 2x \vec i + 2 (y - 1) \vec j &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dibujado junto a las curvas de nivel, se observa fácilmente la perpendicularidad entre dichas curvas y los vectores representados.&lt;br /&gt;
Esto tiene sentido puesto que el gradiente indica la dirección de mayor crecimiento mientras que su perpendicular indica el crecimiento nulo. &lt;br /&gt;
Esta última dirección es, por tanto, tangente a las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Gradiente Nuestro.jpg|400x300px|miniaturadeimagen|centro|Gradiente]]&lt;br /&gt;
&lt;br /&gt;
==Tensiones y fuerzas==&lt;br /&gt;
&lt;br /&gt;
===Posición inicial y final de la placa===&lt;br /&gt;
&lt;br /&gt;
Como punto de partida se dibuja la posición inicial y final de la placa. &lt;br /&gt;
Los puntos de la posición final se han calculado sumando a cada punto de la placa inicial su vector desplazamiento dado por la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt;. &lt;br /&gt;
Además, restando a la placa final la media de los desplazamientos en todos los puntos se ha obtenido una gráfica que muestra únicamente las deformaciones que la placa experimenta.&lt;br /&gt;
De esta forma, permite ver que la placa final está achatada y deja de ser circular.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación placa inicial y final con deformación sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Comparación de la placa inicial y final con deformación de la placa sin desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El objetivo final es conocer el campo de fuerzas que ha producido este desplazamiento. &lt;br /&gt;
Para ello a partir del campo de desplazamientos se calculan las tensiones que experimenta la placa y a partir de éstas, el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
===Representación del campo vectorial de desplazamientos===&lt;br /&gt;
Tras definir la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt; en el código, y mediante el uso de la función &amp;quot;arrows&amp;quot; (gracias a que el campo no dispone de componente vertical), se obtiene la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
===Divergencia y rotacional===&lt;br /&gt;
&lt;br /&gt;
Calcular la divergencia y el rotacional del campo de desplazamientos es de gran utilidad, ya que estos aportan información muy valiosa sobre las características de la deformación que experimenta la placa. &lt;br /&gt;
&lt;br /&gt;
El rotacional mide cuánto rotan los puntos de la placa. Su módulo cuantifica la rotación, mientras que su dirección y sentido dan el eje de rotación.&lt;br /&gt;
La divergencia en cambio, mide cuánto cambia el área en un entrono de cada punto. &lt;br /&gt;
&lt;br /&gt;
La deformación de un entorno de un punto de la placa, no su desplazamiento, es por lo tanto la rotación y el cambio de tamaño de ese entorno. &lt;br /&gt;
&lt;br /&gt;
Para tener una mejor intuición de lo que esto significa, se ha dibujado el módulo del rotacional y la divergencia de una rotación de ángulo π/2, una escala de la placa del factor 2 y un desplazamiento sin deformación de dirección 2 &amp;lt;math&amp;gt; \vec i &amp;lt;/math&amp;gt;. En el desplazamiento como no hay deformación, el rotacional y la divergencia deben valer cero. &lt;br /&gt;
El rotacional es mayor que cero e igual en todos los puntos y la divergencia es cero. Esto se debe a que todos los puntos rotan por igual (π/2) y su área no cambia. En la escala por el factor 2, el rotacional debe ser nulo y la divergencia 4, ya que cada lado se duplica produciendo una cuadruplicación del área.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Explicación divergencia y rotacional.jpg|400x300px|miniaturadeimagen|centro|Explicación divergencia y rotacional]]&lt;br /&gt;
&lt;br /&gt;
====Divergencia del campo desplazamientos====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Calculando la divergencia de forma manual y con diferenciación automática, se ha concluido que esta es nula en cualquier punto: &amp;lt;math&amp;gt; ∇ ⋅ \vec u =  \frac{1}{ρ} [\frac{δ}{δρ} (ρ (\frac{ρ}{10} sen θ)) + \frac{δ}{δθ} (\frac{ρ}{5} cos θ) + \frac{δ}{δz} (ρ 0)] = 0 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lo que indica la divergencia es la variación del diferencial de área. En este caso concreto en que es nula, se puede apreciar en la gráfica del punto anterior como aunque los cuadrados del mallado de la placa puedan ser deformados mantienen el mismo tamaño, es decir, ni se dilatan ni se contraen.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Divergencia Nuestra.jpg|400x300px|miniaturadeimagen|centro|Divergencia del campo]]&lt;br /&gt;
&lt;br /&gt;
====Visualización del módulo del rotacional del campo desplazamiento====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mediante el cálculo manual se ha obtenido el siguiente rotacional: &amp;lt;math&amp;gt; V × \vec u = \frac{1}{ρ} \left| \begin{matrix} \vec e_ρ &amp;amp; ρ \vec e_θ &amp;amp; \vec e_z \\ \frac{δ}{δρ} &amp;amp; \frac{δ}{δθ} &amp;amp; \frac{δ}{δz} \\ \frac{ρ}{10} sen θ &amp;amp; ρ \frac{ρ}{5} cos θ &amp;amp; 0 \end{matrix} \right| = \frac{3}{10} cos(θ) \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto su módulo es: &amp;lt;math&amp;gt; |V × \vec u| = |\frac{3}{10} cos(θ)| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, de nuevo se utiliza diferenciación automática de forma que el valor del módulo del rotacional para cada punto, se calcula directamente a partir de la función del campo de desplazamientos como se aprecia en el código.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El resultado de representarlo sobre el plano XY es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Rotacional nuestro.jpg|400x300px|miniaturadeimagen|centro|Rotacional del campo desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El rotacional indica el giro experimentado por la placa en su deformación, lo que se puede apreciar en la representación anterior y teniendo en cuenta el punto 4.3.&lt;br /&gt;
Así, los extremos de la placa, que experimentan un giro, tienen el mayor valor del rotacional. &lt;br /&gt;
Cabe decir que estos valores tendrán signo contrario, pues los giros son opuestos.&lt;br /&gt;
Esto no se tiene en consideración para la representación gráfica, pues en ella buscamos el módulo del rotacional, que siempre es positivo.&lt;br /&gt;
&lt;br /&gt;
===Tensor de tensiones===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este apartado, sabiendo que nos encontramos en un medio lineal, isótropo y homogéneo (así lo indica el enunciado), la función del tensor de tensiones viene descrita de la siguiente forma: &amp;lt;math&amp;gt; σ = λ ∇ ⋅ \vec u 1 + 2 μ ε &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En dicha fórmula conocemos que los Coeficientes de Lamé (λ y μ) que dependen de las propiedades elásticas de cada material. Tomando en este caso que ambos son 1.&lt;br /&gt;
&lt;br /&gt;
La parte simétrica del tensor gradiente del campo  de deplazamientos, queda también definida de la siguiente manera: &amp;lt;math&amp;gt; ε(\vec u) = \frac{∇ \vec u + ∇ \vec u ^t}{2} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
De forma manual se ha obtenido que el gradiente del campo es &amp;lt;math&amp;gt; ∇ \vec u(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; - \frac{ρ}{10} cos θ &amp;amp; 0 \\ \frac{1}{5} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto, la matriz traspuesta del gradiente del campo es: &amp;lt;math&amp;gt; ∇ \vec u^t(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; \frac{1}{5} cos θ &amp;amp; 0 \\ - \frac{ρ}{10} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Resolviendo la parte simétrica del tensor gradiente de forma manual, se obtiene como resultado: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; cos θ (\frac{1}{10} - \frac{ρ}{20} ) &amp;amp; 0 \\ cos θ (\frac{1}{10} - \frac{ρ}{20}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De esta forma, se concluye que el tensor de tensiones viene representado de la siguiente forma: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{5} sen θ &amp;amp; cos θ (\frac{1}{5} - \frac{ρ}{10} ) &amp;amp; 0 \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Representación de las tensiones normales====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tensiones comparación.jpg|400x300px|miniaturadeimagen|centro|Representación de las tensiones normales]]&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_ρ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_ρ ⋅ σ ⋅ \vec e_ρ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; \frac {1}{5} sen θ \vec e_ρ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_θ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_θ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_θ ⋅ σ ⋅ \vec e_θ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_z, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt;  \vec e_z ⋅ σ ⋅ \vec e_z &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; 0 \vec e_z &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Tensiones tangenciales respecto al plano ortogonal &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este caso, simplemente se ha aplicado la fórmula correspondiente que es la siguiente: &amp;lt;math&amp;gt; |σ ⋅ \vec e_ρ - \vec e_ρ ⋅ σ ⋅ \vec e_ρ| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Desarrollando la fórmula: &amp;lt;math&amp;gt; \begin{pmatrix} \frac{1}{5} sen θ \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) \\ 0 \end{pmatrix} - \begin{pmatrix} \frac {1}{5} sen θ \\ 0 \\ 0 \end{pmatrix} =  cos θ (\frac {1}{5} - \frac {ρ}{10}) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación Tensiones tangenciales.jpg|400x300px|miniaturadeimagen|centro|Comparación Tensiones tangenciales]]&lt;br /&gt;
&lt;br /&gt;
===Tensión de Von Mises===&lt;br /&gt;
&lt;br /&gt;
La tensión de Von Mises viene determinada por la fórmula: &amp;lt;math&amp;gt; σ_{VM} = \sqrt{\frac{(\vec σ_1 - \vec σ_2)^2 + (\vec σ_2 - \vec σ_3)^2 + (\vec σ_3 - \vec σ_1)^2}{2}} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Puesto que cada punto de la placa lleva asociado un tensor de la tensión, siendo  &amp;lt;math&amp;gt; \vec σ_1, \vec σ_2, \vec σ_3;  &amp;lt;/math&amp;gt; los autovalores de dicha matriz, se debe ir punto a punto calculándolos, por tanto es necesario un bucle que rellene una matriz con los valores de la tensión Von Mises para cada punto. &lt;br /&gt;
&lt;br /&gt;
La tensión de Von Mises muestra los puntos donde se produciría la rotura de la placa. En este caso rompería la parte superior de la placa.&lt;br /&gt;
&lt;br /&gt;
La representación es la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tensión Von Mises.jpg|400x300px|miniaturadeimagen|centro|Tensión Von Mises]]&lt;br /&gt;
&lt;br /&gt;
===Fuerza causante del desplazamiento===&lt;br /&gt;
&lt;br /&gt;
Conociendo que la placa viene deformada por la función vectorial dada, se puede obtener la fuerza que motiva el desplazamiento. Esa viene definida por: &amp;lt;math&amp;gt; \vec F = - \nabla ⋅ \vec u &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El resultado de la fuerza obtenido manualmente es el descrito a continuación: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_ρ + \frac {1}{5} (\frac {1}{ρ} - 2) cos θ \vec e_θ &amp;lt;/math&amp;gt;. La componente según &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt; es nula.&lt;br /&gt;
&lt;br /&gt;
Calculado por diferenciación automática queda la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas]]&lt;br /&gt;
&lt;br /&gt;
Si de dibuja el campo de fuerzas y la las posiciones inicial y final no queda del todo claro que éste sea el campo que motiva el desplazamiento y la deformación de la placa. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas y desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de Fuerzas y desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
Si se dibuja la resultante de las fuerzas el desplazamiento de la placa queda explicado, mientras que dibujando únicamente la placa final deformada, sin considerar el desplazamiento y el campo de fuerzas, se pueden apreciar claramente que deformaciones como el achatamiento de la forma circular de la placa son causadas por el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Desplazamiento y resultante concampo de fuerzas sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas, desplazamiento y deformación de la placa]]&lt;br /&gt;
&lt;br /&gt;
==Anexo==&lt;br /&gt;
&lt;br /&gt;
===Librería de Julia desarrollada para el trabajo===&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Teoría de Campos]][[Categoría:TC21/22]]&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=47969</id>
		<title>Grupo B12 Trabajo 5: Estudio de tensiones sobre una placa mediante diferenciación automática</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=47969"/>
				<updated>2021-12-10T18:39:21Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Estudio de tensiones sobre una placa mediante diferenciación automática. Grupo B12 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC21/22|2021-2022]] | Víctor Sillero González&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Rodrigo Vázquez Pérez }}&lt;br /&gt;
&lt;br /&gt;
El trabajo correspondiente a este grupo es el número 5, en particular consiste en el estudio de temperaturas, deformaciones y tensiones sobre una placa compuesta de medio anillo circular.&lt;br /&gt;
La peculiaridad de este trabajo radica en que se ha realizado mediante diferenciación automática gracias a una librería realizada por los componentes del grupo.&lt;br /&gt;
Dicho programa ha sido realizado en el leguaje de programación &amp;quot;Julia&amp;quot;, y por ende todo el desarrollo ha sido realizado mediante dicho lenguaje.&lt;br /&gt;
&lt;br /&gt;
Todos los gráficos se han creado a partir de la librería Makie de Julia. Se ha creado una función con los estilos que queríamos usar que toma como input campos y funciones así como una lista de puntos y algunos parámetros de estilo y dibuja la gráfica correspondiente. Al ser tanto el programa para las gráficas como la librería de diferenciación automática demasiado largos para ser publicados en esta página se adjunta un link donde se pueden descargar y ver. Aunque todos las gráficas mostradas se han producido por métodos computacionales se también se han realizado los cálculos a mano.&lt;br /&gt;
&lt;br /&gt;
La librería utilizada a lo largo de todo el trabajo queda adjunta en el anexo.&lt;br /&gt;
&lt;br /&gt;
En este caso los datos aportados por el enunciado han sido los siguientes:&lt;br /&gt;
* Placa plana que ocupa la mitad de un anillo circular centrado en el origen y comprendido entre los radios 1 y 2, en el plano y ≥ 0.&lt;br /&gt;
* Función temperatura en la placa: &amp;lt;math&amp;gt; T(x,y) = x^2 + (y-1)^2 &amp;lt;/math&amp;gt;.&lt;br /&gt;
* Campo de deformaciones: &amp;lt;math&amp;gt;\vec u(ρ,θ) = \frac{ρ}{10} sin(θ) + \frac{ρ}{5} cos(θ) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Julia Portada.png|400x300px|miniaturadeimagen|centro|Portada programa Julia]]&lt;br /&gt;
&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
Este trabajo tiene como objetivo el estudio de las tensiones y fuerzas que producen desplazamientos y deformaciones en una placa, así como su campo de temperaturas a partir de un campo de desplazamientos y una función escalar de temperaturas. Además, se va a estudiar el cálculo de derivadas y operadores diferenciales mediante métodos computacionales.&lt;br /&gt;
&lt;br /&gt;
=== Diferenciación automática===&lt;br /&gt;
====Métodos habituales: Aproximación numérica====&lt;br /&gt;
Normalmente cuando se quiere obtener el valor de la derivada de una función en un punto mediante un ordenador se realiza una aproximación a partir de la definición de derivada. $\frac{f(x+h) - f(x)}{h}$ dando un valor concreto lo menor posible para $h$.&lt;br /&gt;
Un ejemplo del método con la función $f(x) = x^{2}$ y $h = 10^{-10}$ en x = 3&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
h = 10^-10&lt;br /&gt;
f(x) = x^2&lt;br /&gt;
derivada = (f(3+h) - f(3)) / h&lt;br /&gt;
}}&lt;br /&gt;
El resultado dado no es exáctamente 6 pero se consiguen 6 decimales de precisión por lo que es una buena aproximación. Este algoritmo realiza 3 operaciones. Evaluar $f$ en $x + h$, evaluar $f$ en $x$ y dividir todo ello entre $h$.&lt;br /&gt;
&lt;br /&gt;
Un problema del método es si se emplea una $h$ demasiado pequeña puede dar problemas.&lt;br /&gt;
&lt;br /&gt;
Si se supera el número más pequeño que se puede expresar con el tipo de dato utilizado (Float64 en nuestro caso) el resultado mostrado será 0. Por lo tanto un manejo correcto de los valores de $h$ es esencial y complica el método bastante.&lt;br /&gt;
&lt;br /&gt;
====Números duales====&lt;br /&gt;
&lt;br /&gt;
El método empleado en este trabajo es exacto. No se realiza ninguna aproximación. Para ello es necesario definir un nuevo tipo de número distinto de los reales o los complejos, los números duales.&lt;br /&gt;
&lt;br /&gt;
Los números duales son números del tipo $a + b\epsilon$ siendo $a$ y $b$ números reales o duales. &lt;br /&gt;
&lt;br /&gt;
Denominamos parte real al número $a$ y parte derivada al número $b$&lt;br /&gt;
&lt;br /&gt;
Además se define la siguiente propiedad: $\epsilon \neq 0$ tal que $\epsilon^{2} = 0$. $\epsilon$ por lo tanto no es un número real.&lt;br /&gt;
&lt;br /&gt;
Las operaciones aritméticas básicas se definen de manera sencilla.&lt;br /&gt;
* Suma: $(a + b\epsilon) + (c + d\epsilon) = (a + c) + (b + d)\epsilon$&lt;br /&gt;
* Producto $(a + b\epsilon) * (c + d\epsilon) = ac + (bc + ad)\epsilon + (bd)^{2}\epsilon^{2}$, como $\epsilon^{2} = 0$ el resultado final es $(a + b\epsilon) * (c + d\epsilon) = ac + (bc + ad)\epsilon$&lt;br /&gt;
&lt;br /&gt;
====Series de Taylor y números duales====&lt;br /&gt;
Sea $f$ una función cualquiera y $a$ un punto del dominio de $f$ la serie de Taylor de $f$ en el punto $a$ es&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
$f(x) = f(a) + \frac{f'(a)}{1!}(x-a) + \frac{f''(a)}{2!}(x-a)^{2} + ... = \sum_{i=0}^\infty \frac{f^{i}(a)}{i!}(x-a)^{i}$&lt;br /&gt;
}}&lt;br /&gt;
Si se evalúa la serie de Taylor de $f$ en el valor dual $x = a + \epsilon$ se obtiene &lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
$f(a + \epsilon) = f(a) + f'(a)\epsilon + \frac{f''(a)}{2!}\epsilon^{2} + ...$ y como $\epsilon^{2} = 0$ el resultado final es&lt;br /&gt;
}}&lt;br /&gt;
$f(a + \epsilon) = f(a) + f'(a)\epsilon$&lt;br /&gt;
&lt;br /&gt;
La parte real de $f(a + \epsilon)$ es $f$ evaluado en $a$, es decir $f(a)$ y la parte derivada de $f(a + \epsilon)$ es la derivada de $f$ evaluada en $a$, es decir $f'(a)$.&lt;br /&gt;
&lt;br /&gt;
====Cálculo de drivadas por números duales====&lt;br /&gt;
&lt;br /&gt;
Gracias a las propiedades comentadas en la sección anterior podemos establecer un nuevo método esta vez exacto para calcular derivadas. &lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
$f'(a) = parte Derivada[f(a + \epsilon)]$&lt;br /&gt;
}}&lt;br /&gt;
Este método consiste en únicamtente una operación siendo no solamente exacto sino además más rápido que el método aproximado.&lt;br /&gt;
&lt;br /&gt;
====Programación====&lt;br /&gt;
&lt;br /&gt;
En primer lugar se define un nuevo tipo de dato Dual, con las propiedades de parte real $x$ y parte derivada $\epsilon$.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
mutable struct Dual{T&amp;lt;:Real} &amp;lt;: Real &lt;br /&gt;
    x::T&lt;br /&gt;
    ϵ::T&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
Ahora se definen las operaciones básicas sobre el tipo de dato dual. Aquí se muestran algunas pero se definieron muchas más.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
#negacion &lt;br /&gt;
Base.:-(a::Dual) = Dual(-1 * a.x, -1* a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#suma&lt;br /&gt;
Base.:+(a::Dual, b::Dual) = Dual(a.x + b.x, a.ϵ .+ b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#diferencia&lt;br /&gt;
Base.:-(a::Dual, b::Dual) = Dual(a.x - b.x, a.ϵ - b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#producto&lt;br /&gt;
Base.:*(a::Dual, b::Dual) = Dual(a.x * b.x, b.x * a.ϵ + a.x * b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#reciproco &lt;br /&gt;
recip = a::Dual -&amp;gt; Dual(1. / a.x, (-1* a.ϵ) / (a.x ^2))&lt;br /&gt;
&lt;br /&gt;
#cociente&lt;br /&gt;
Base.:/(a::Dual, b::Dual) = a * recip(b)&lt;br /&gt;
&lt;br /&gt;
#exponencial, potencia y raiz_cuadrada&lt;br /&gt;
Base.:exp(a::Dual) = exp(a.x) * Dual(1.,a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#logaritmo &lt;br /&gt;
Base.:log(a::Dual) = Dual(log(a.x), a.ϵ / a.x)&lt;br /&gt;
&lt;br /&gt;
#trigonometria&lt;br /&gt;
Base.:sin(d::Dual) = Dual(sin(d.x), d.ϵ * cos(d.x))&lt;br /&gt;
Base.:cos(d::Dual) = Dual(cos(d.x), - d.ϵ * sin(d.x))&lt;br /&gt;
}}&lt;br /&gt;
Y ya podríamos calcular derivadas. Por ejeplo creando la función f(x) = x^2 y evaluándola en el punto Dual(4, 1) se obtiene el número Dual(16, 8), 8 es la derivada de x^2 en el punto 4.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
f(x) = x^2 &lt;br /&gt;
f(Dual(4., 1.))&lt;br /&gt;
}}&lt;br /&gt;
A partir de este código se programa una librería capaz de calcular gradientes, divergencias y rotacionales de cualquier función. Además es capaz de trabajar en coordenadas cilíndricas esféricas y cartesianas.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo el tensor gradiente de una función u en un punto en la librería se calcula con el comando:&lt;br /&gt;
&lt;br /&gt;
u.grad(punto)&lt;br /&gt;
&lt;br /&gt;
Existen algoritmos más avanzados que hacen este proceso aún más rápido pero para cubrir nuestras necesidades la velocidad aportada por esta librería es suficiente.&lt;br /&gt;
&lt;br /&gt;
Para realizar el trabajo se define la placa, la función de temperaturas y el campo de desplazamientos y el programa crea todas las gráficas necesarias, por lo que nuestro programa es capaz de resolver cualquiera de los trabajos que se han planteado de manera instantánea.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
λ = 1&lt;br /&gt;
μ = 1&lt;br /&gt;
&lt;br /&gt;
rango = 0.1&lt;br /&gt;
&lt;br /&gt;
ρ_s = range(1, 2, 11) # discretizacion de variables&lt;br /&gt;
θ_s = range(0, pi, 32)&lt;br /&gt;
z_s = zeros(size(ρ_s))&lt;br /&gt;
&lt;br /&gt;
#campo de temperaturas&lt;br /&gt;
t = x -&amp;gt; x[1]^2 +(x[2] - 1)^2 #cartesianas&lt;br /&gt;
&lt;br /&gt;
T = funcion_escalar(t, tipo = 1)&lt;br /&gt;
&lt;br /&gt;
u = funcion_vectorial(x -&amp;gt; [(x[1] / 10) * sin(x[2]), (x[1] / 5) * cos(x[2]), 0], tipo = 2) # cilindricas&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Dibujo del mallado==&lt;br /&gt;
&lt;br /&gt;
En primer lugar es necesario dibujar la placa que se va a estudiar. &lt;br /&gt;
La placa se define en coordenadas cilíndricas (base física cilíndrica) con la siguiente parametrización: &amp;lt;math&amp;gt; ρ = u -&amp;gt; [0,2] ; θ = v -&amp;gt; [0, π]; z = 0&amp;lt;/math&amp;gt;. &lt;br /&gt;
En el caso de que la placa fuese más compleja, nuestro programa también aceptaría definirla mediante una función que tomando un punto como entrada, devuelva 1 o 0 dependiendo de si dicho punto se encuentra en la placa o no.&lt;br /&gt;
&lt;br /&gt;
Los ejes tomados para dibujar las gráficas han sido [−2, 2] × [0, 2] y se ha dibujado un mallado con el comando &amp;quot;wireframe&amp;quot;.&lt;br /&gt;
Por otra parte, el muestreo utilizado ha sido &amp;lt;math&amp;gt;h= \frac{1}{10}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Placa Nuestra.jpg|400x300px|miniaturadeimagen|centro|Placa representada]]&lt;br /&gt;
&lt;br /&gt;
==Campo de las temperaturas en la placa==&lt;br /&gt;
&lt;br /&gt;
===Dibujo de las curvas de nivel===&lt;br /&gt;
Una vez definida la función temperatura T(x,y) en cartesianas, una parametrización para la placa y habiendo elegido el número de curvas a representar, (20), mediante la función &amp;quot;contour&amp;quot; se han dibujado las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Curvas Temperatura.jpg|400x300px|miniaturadeimagen|centro|Curvas de nivel de la Temperatura]]&lt;br /&gt;
&lt;br /&gt;
===Máximo de temperatura===&lt;br /&gt;
Para obtener el máximo de la temperatura con precisión la función &amp;quot;dibujar2D&amp;quot; que empleamos para dibujar las gráficas devuelve el mayor valor e indica dicho punto mediante un aspa roja.&lt;br /&gt;
&lt;br /&gt;
===Dibujo del gradiente como campo vectorial (&amp;lt;math&amp;gt; \nabla &amp;lt;/math&amp;gt;T)===&lt;br /&gt;
De la función de la temperatura dada, se ha obtenido el gradiente: &amp;lt;math&amp;gt; 2x \vec i + 2 (y - 1) \vec j &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dibujado junto a las curvas de nivel, se observa fácilmente la perpendicularidad entre dichas curvas y los vectores representados.&lt;br /&gt;
Esto tiene sentido puesto que el gradiente indica la dirección de mayor crecimiento mientras que su perpendicular indica el crecimiento nulo. &lt;br /&gt;
Esta última dirección es, por tanto, tangente a las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Gradiente Nuestro.jpg|400x300px|miniaturadeimagen|centro|Gradiente]]&lt;br /&gt;
&lt;br /&gt;
==Tensiones y fuerzas==&lt;br /&gt;
&lt;br /&gt;
===Posición inicial y final de la placa===&lt;br /&gt;
&lt;br /&gt;
Como punto de partida se dibuja la posición inicial y final de la placa. &lt;br /&gt;
Los puntos de la posición final se han calculado sumando a cada punto de la placa inicial su vector desplazamiento dado por la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt;. &lt;br /&gt;
Además, restando a la placa final la media de los desplazamientos en todos los puntos se ha obtenido una gráfica que muestra únicamente las deformaciones que la placa experimenta.&lt;br /&gt;
De esta forma, permite ver que la placa final está achatada y deja de ser circular.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación placa inicial y final con deformación sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Comparación de la placa inicial y final con deformación de la placa sin desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El objetivo final es conocer el campo de fuerzas que ha producido este desplazamiento. &lt;br /&gt;
Para ello a partir del campo de desplazamientos se calculan las tensiones que experimenta la placa y a partir de éstas, el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
===Representación del campo vectorial de desplazamientos===&lt;br /&gt;
Tras definir la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt; en el código, y mediante el uso de la función &amp;quot;arrows&amp;quot; (gracias a que el campo no dispone de componente vertical), se obtiene la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
===Divergencia y rotacional===&lt;br /&gt;
&lt;br /&gt;
Calcular la divergencia y el rotacional del campo de desplazamientos es de gran utilidad, ya que estos aportan información muy valiosa sobre las características de la deformación que experimenta la placa. &lt;br /&gt;
&lt;br /&gt;
El rotacional mide cuánto rotan los puntos de la placa. Su módulo cuantifica la rotación, mientras que su dirección y sentido dan el eje de rotación.&lt;br /&gt;
La divergencia en cambio, mide cuánto cambia el área en un entrono de cada punto. &lt;br /&gt;
&lt;br /&gt;
La deformación de un entorno de un punto de la placa, no su desplazamiento, es por lo tanto la rotación y el cambio de tamaño de ese entorno. &lt;br /&gt;
&lt;br /&gt;
Para tener una mejor intuición de lo que esto significa, se ha dibujado el módulo del rotacional y la divergencia de una rotación de ángulo π/2, una escala de la placa del factor 2 y un desplazamiento sin deformación de dirección 2 &amp;lt;math&amp;gt; \vec i &amp;lt;/math&amp;gt;. En el desplazamiento como no hay deformación, el rotacional y la divergencia deben valer cero. &lt;br /&gt;
El rotacional es mayor que cero e igual en todos los puntos y la divergencia es cero. Esto se debe a que todos los puntos rotan por igual (π/2) y su área no cambia. En la escala por el factor 2, el rotacional debe ser nulo y la divergencia 4, ya que cada lado se duplica produciendo una cuadruplicación del área.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Explicación divergencia y rotacional.jpg|400x300px|miniaturadeimagen|centro|Explicación divergencia y rotacional]]&lt;br /&gt;
&lt;br /&gt;
====Divergencia del campo desplazamientos====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Calculando la divergencia de forma manual y con diferenciación automática, se ha concluido que esta es nula en cualquier punto: &amp;lt;math&amp;gt; ∇ ⋅ \vec u =  \frac{1}{ρ} [\frac{δ}{δρ} (ρ (\frac{ρ}{10} sen θ)) + \frac{δ}{δθ} (\frac{ρ}{5} cos θ) + \frac{δ}{δz} (ρ 0)] = 0 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lo que indica la divergencia es la variación del diferencial de área. En este caso concreto en que es nula, se puede apreciar en la gráfica del punto anterior como aunque los cuadrados del mallado de la placa puedan ser deformados mantienen el mismo tamaño, es decir, ni se dilatan ni se contraen.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Divergencia Nuestra.jpg|400x300px|miniaturadeimagen|centro|Divergencia del campo]]&lt;br /&gt;
&lt;br /&gt;
====Visualización del módulo del rotacional del campo desplazamiento====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mediante el cálculo manual se ha obtenido el siguiente rotacional: &amp;lt;math&amp;gt; V × \vec u = \frac{1}{ρ} \left| \begin{matrix} \vec e_ρ &amp;amp; ρ \vec e_θ &amp;amp; \vec e_z \\ \frac{δ}{δρ} &amp;amp; \frac{δ}{δθ} &amp;amp; \frac{δ}{δz} \\ \frac{ρ}{10} sen θ &amp;amp; ρ \frac{ρ}{5} cos θ &amp;amp; 0 \end{matrix} \right| = \frac{3}{10} cos(θ) \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto su módulo es: &amp;lt;math&amp;gt; |V × \vec u| = |\frac{3}{10} cos(θ)| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, de nuevo se utiliza diferenciación automática de forma que el valor del módulo del rotacional para cada punto, se calcula directamente a partir de la función del campo de desplazamientos como se aprecia en el código.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El resultado de representarlo sobre el plano XY es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Rotacional nuestro.jpg|400x300px|miniaturadeimagen|centro|Rotacional del campo desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El rotacional indica el giro experimentado por la placa en su deformación, lo que se puede apreciar en la representación anterior y teniendo en cuenta el punto 4.3.&lt;br /&gt;
Así, los extremos de la placa, que experimentan un giro, tienen el mayor valor del rotacional. &lt;br /&gt;
Cabe decir que estos valores tendrán signo contrario, pues los giros son opuestos.&lt;br /&gt;
Esto no se tiene en consideración para la representación gráfica, pues en ella buscamos el módulo del rotacional, que siempre es positivo.&lt;br /&gt;
&lt;br /&gt;
===Tensor de tensiones===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este apartado, sabiendo que nos encontramos en un medio lineal, isótropo y homogéneo (así lo indica el enunciado), la función del tensor de tensiones viene descrita de la siguiente forma: &amp;lt;math&amp;gt; σ = λ ∇ ⋅ \vec u 1 + 2 μ ε &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En dicha fórmula conocemos que los Coeficientes de Lamé (λ y μ) que dependen de las propiedades elásticas de cada material. Tomando en este caso que ambos son 1.&lt;br /&gt;
&lt;br /&gt;
La parte simétrica del tensor gradiente del campo  de deplazamientos, queda también definida de la siguiente manera: &amp;lt;math&amp;gt; ε(\vec u) = \frac{∇ \vec u + ∇ \vec u ^t}{2} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
De forma manual se ha obtenido que el gradiente del campo es &amp;lt;math&amp;gt; ∇ \vec u(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; - \frac{ρ}{10} cos θ &amp;amp; 0 \\ \frac{1}{5} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto, la matriz traspuesta del gradiente del campo es: &amp;lt;math&amp;gt; ∇ \vec u^t(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; \frac{1}{5} cos θ &amp;amp; 0 \\ - \frac{ρ}{10} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Resolviendo la parte simétrica del tensor gradiente de forma manual, se obtiene como resultado: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; cos θ (\frac{1}{10} - \frac{ρ}{20} ) &amp;amp; 0 \\ cos θ (\frac{1}{10} - \frac{ρ}{20}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De esta forma, se concluye que el tensor de tensiones viene representado de la siguiente forma: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{5} sen θ &amp;amp; cos θ (\frac{1}{5} - \frac{ρ}{10} ) &amp;amp; 0 \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Representación de las tensiones normales====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tensiones comparación.jpg|400x300px|miniaturadeimagen|centro|Representación de las tensiones normales]]&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_ρ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_ρ ⋅ σ ⋅ \vec e_ρ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; \frac {1}{5} sen θ \vec e_ρ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_θ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_θ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_θ ⋅ σ ⋅ \vec e_θ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_z, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt;  \vec e_z ⋅ σ ⋅ \vec e_z &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; 0 \vec e_z &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Tensiones tangenciales respecto al plano ortogonal &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este caso, simplemente se ha aplicado la fórmula correspondiente que es la siguiente: &amp;lt;math&amp;gt; |σ ⋅ \vec e_ρ - \vec e_ρ ⋅ σ ⋅ \vec e_ρ| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Desarrollando la fórmula: &amp;lt;math&amp;gt; \begin{pmatrix} \frac{1}{5} sen θ \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) \\ 0 \end{pmatrix} - \begin{pmatrix} \frac {1}{5} sen θ \\ 0 \\ 0 \end{pmatrix} =  cos θ (\frac {1}{5} - \frac {ρ}{10}) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación Tensiones tangenciales.jpg|400x300px|miniaturadeimagen|centro|Comparación Tensiones tangenciales]]&lt;br /&gt;
&lt;br /&gt;
===Tensión de Von Mises===&lt;br /&gt;
&lt;br /&gt;
La tensión de Von Mises viene determinada por la fórmula: &amp;lt;math&amp;gt; σ_{VM} = \sqrt{\frac{(\vec σ_1 - \vec σ_2)^2 + (\vec σ_2 - \vec σ_3)^2 + (\vec σ_3 - \vec σ_1)^2}{2}} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Puesto que cada punto de la placa lleva asociado un tensor de la tensión, siendo  &amp;lt;math&amp;gt; \vec σ_1, \vec σ_2, \vec σ_3;  &amp;lt;/math&amp;gt; los autovalores de dicha matriz, se debe ir punto a punto calculándolos, por tanto es necesario un bucle que rellene una matriz con los valores de la tensión Von Mises para cada punto. &lt;br /&gt;
&lt;br /&gt;
La tensión de Von Mises muestra los puntos donde se produciría la rotura de la placa. En este caso rompería la parte superior de la placa.&lt;br /&gt;
&lt;br /&gt;
La representación es la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tensión Von Mises.jpg|400x300px|miniaturadeimagen|centro|Tensión Von Mises]]&lt;br /&gt;
&lt;br /&gt;
===Fuerza causante del desplazamiento===&lt;br /&gt;
&lt;br /&gt;
Conociendo que la placa viene deformada por la función vectorial dada, se puede obtener la fuerza que motiva el desplazamiento. Esa viene definida por: &amp;lt;math&amp;gt; \vec F = - \nabla ⋅ \vec u &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El resultado de la fuerza obtenido manualmente es el descrito a continuación: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_ρ + \frac {1}{5} (\frac {1}{ρ} - 2) cos θ \vec e_θ &amp;lt;/math&amp;gt;. La componente según &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt; es nula.&lt;br /&gt;
&lt;br /&gt;
Calculado por diferenciación automática queda la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas]]&lt;br /&gt;
&lt;br /&gt;
Si de dibuja el campo de fuerzas y la las posiciones inicial y final no queda del todo claro que éste sea el campo que motiva el desplazamiento y la deformación de la placa. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas y desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de Fuerzas y desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
Si se dibuja la resultante de las fuerzas el desplazamiento de la placa queda explicado, mientras que dibujando únicamente la placa final deformada, sin considerar el desplazamiento y el campo de fuerzas, se pueden apreciar claramente que deformaciones como el achatamiento de la forma circular de la placa son causadas por el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Desplazamiento y resultante concampo de fuerzas sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas, desplazamiento y deformación de la placa]]&lt;br /&gt;
&lt;br /&gt;
==Anexo==&lt;br /&gt;
&lt;br /&gt;
===Librería de Julia desarrollada para el trabajo===&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Teoría de Campos]][[Categoría:TC21/22]]&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=47967</id>
		<title>Grupo B12 Trabajo 5: Estudio de tensiones sobre una placa mediante diferenciación automática</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=47967"/>
				<updated>2021-12-10T18:35:46Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: /* Introducción */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Estudio de tensiones sobre una placa mediante diferenciación automática. Grupo B12 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC21/22|2021-2022]] | Víctor Sillero González&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Rodrigo Vázquez Pérez }}&lt;br /&gt;
&lt;br /&gt;
El trabajo correspondiente a este grupo es el número 5, en particular consiste en el estudio de temperaturas, deformaciones y tensiones sobre una placa compuesta de medio anillo circular.&lt;br /&gt;
La peculiaridad de este trabajo radica en que se ha realizado mediante diferenciación automática gracias a una librería realizada por los componentes del grupo.&lt;br /&gt;
Dicho programa ha sido realizado en el leguaje de programación &amp;quot;Julia&amp;quot;, y por ende todo el desarrollo ha sido realizado mediante dicho lenguaje.&lt;br /&gt;
&lt;br /&gt;
Todos los gráficos se han creado a partir de la librería Makie de Julia. Se ha creado una función con los estilos que queríamos usar que toma como input campos y funciones así como una lista de puntos y algunos parámetros de estilo y dibuja la gráfica correspondiente. Al ser tanto el programa para las gráficas como la librería de diferenciación automática demasiado largos para ser publicados en esta página se adjunta un link donde se pueden descargar y ver.&lt;br /&gt;
&lt;br /&gt;
La librería utilizada a lo largo de todo el trabajo queda adjunta en el anexo.&lt;br /&gt;
&lt;br /&gt;
En este caso los datos aportados por el enunciado han sido los siguientes:&lt;br /&gt;
* Placa plana que ocupa la mitad de un anillo circular centrado en el origen y comprendido entre los radios 1 y 2, en el plano y ≥ 0.&lt;br /&gt;
* Función temperatura en la placa: &amp;lt;math&amp;gt; T(x,y) = x^2 + (y-1)^2 &amp;lt;/math&amp;gt;.&lt;br /&gt;
* Campo de deformaciones: &amp;lt;math&amp;gt;\vec u(ρ,θ) = \frac{ρ}{10} sin(θ) + \frac{ρ}{5} cos(θ) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Julia Portada.png|400x300px|miniaturadeimagen|centro|Portada programa Julia]]&lt;br /&gt;
&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
Este trabajo tiene como objetivo el estudio de las tensiones y fuerzas que producen desplazamientos y deformaciones en una placa, así como su campo de temperaturas a partir de un campo de desplazamientos y una función escalar de temperaturas. Además, se va a estudiar el cálculo de derivadas y operadores diferenciales mediante métodos computacionales.&lt;br /&gt;
&lt;br /&gt;
=== Diferenciación automática===&lt;br /&gt;
====Métodos habituales: Aproximación numérica====&lt;br /&gt;
Normalmente cuando se quiere obtener el valor de la derivada de una función en un punto mediante un ordenador se realiza una aproximación a partir de la definición de derivada. $\frac{f(x+h) - f(x)}{h}$ dando un valor concreto lo menor posible para $h$.&lt;br /&gt;
Un ejemplo del método con la función $f(x) = x^{2}$ y $h = 10^{-10}$ en x = 3&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
h = 10^-10&lt;br /&gt;
f(x) = x^2&lt;br /&gt;
derivada = (f(3+h) - f(3)) / h&lt;br /&gt;
}}&lt;br /&gt;
El resultado dado no es exáctamente 6 pero se consiguen 6 decimales de precisión por lo que es una buena aproximación. Este algoritmo realiza 3 operaciones. Evaluar $f$ en $x + h$, evaluar $f$ en $x$ y dividir todo ello entre $h$.&lt;br /&gt;
&lt;br /&gt;
Un problema del método es si se emplea una $h$ demasiado pequeña puede dar problemas.&lt;br /&gt;
&lt;br /&gt;
Si se supera el número más pequeño que se puede expresar con el tipo de dato utilizado (Float64 en nuestro caso) el resultado mostrado será 0. Por lo tanto un manejo correcto de los valores de $h$ es esencial y complica el método bastante.&lt;br /&gt;
&lt;br /&gt;
====Números duales====&lt;br /&gt;
&lt;br /&gt;
El método empleado en este trabajo es exacto. No se realiza ninguna aproximación. Para ello es necesario definir un nuevo tipo de número distinto de los reales o los complejos, los números duales.&lt;br /&gt;
&lt;br /&gt;
Los números duales son números del tipo $a + b\epsilon$ siendo $a$ y $b$ números reales o duales. &lt;br /&gt;
&lt;br /&gt;
Denominamos parte real al número $a$ y parte derivada al número $b$&lt;br /&gt;
&lt;br /&gt;
Además se define la siguiente propiedad: $\epsilon \neq 0$ tal que $\epsilon^{2} = 0$. $\epsilon$ por lo tanto no es un número real.&lt;br /&gt;
&lt;br /&gt;
Las operaciones aritméticas básicas se definen de manera sencilla.&lt;br /&gt;
* Suma: $(a + b\epsilon) + (c + d\epsilon) = (a + c) + (b + d)\epsilon$&lt;br /&gt;
* Producto $(a + b\epsilon) * (c + d\epsilon) = ac + (bc + ad)\epsilon + (bd)^{2}\epsilon^{2}$, como $\epsilon^{2} = 0$ el resultado final es $(a + b\epsilon) * (c + d\epsilon) = ac + (bc + ad)\epsilon$&lt;br /&gt;
&lt;br /&gt;
====Series de Taylor y números duales====&lt;br /&gt;
Sea $f$ una función cualquiera y $a$ un punto del dominio de $f$ la serie de Taylor de $f$ en el punto $a$ es&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
$f(x) = f(a) + \frac{f'(a)}{1!}(x-a) + \frac{f''(a)}{2!}(x-a)^{2} + ... = \sum_{i=0}^\infty \frac{f^{i}(a)}{i!}(x-a)^{i}$&lt;br /&gt;
}}&lt;br /&gt;
Si se evalúa la serie de Taylor de $f$ en el valor dual $x = a + \epsilon$ se obtiene &lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
$f(a + \epsilon) = f(a) + f'(a)\epsilon + \frac{f''(a)}{2!}\epsilon^{2} + ...$ y como $\epsilon^{2} = 0$ el resultado final es&lt;br /&gt;
}}&lt;br /&gt;
$f(a + \epsilon) = f(a) + f'(a)\epsilon$&lt;br /&gt;
&lt;br /&gt;
La parte real de $f(a + \epsilon)$ es $f$ evaluado en $a$, es decir $f(a)$ y la parte derivada de $f(a + \epsilon)$ es la derivada de $f$ evaluada en $a$, es decir $f'(a)$.&lt;br /&gt;
&lt;br /&gt;
====Cálculo de drivadas por números duales====&lt;br /&gt;
&lt;br /&gt;
Gracias a las propiedades comentadas en la sección anterior podemos establecer un nuevo método esta vez exacto para calcular derivadas. &lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
$f'(a) = parte Derivada[f(a + \epsilon)]$&lt;br /&gt;
}}&lt;br /&gt;
Este método consiste en únicamtente una operación siendo no solamente exacto sino además más rápido que el método aproximado.&lt;br /&gt;
&lt;br /&gt;
====Programación====&lt;br /&gt;
&lt;br /&gt;
En primer lugar se define un nuevo tipo de dato Dual, con las propiedades de parte real $x$ y parte derivada $\epsilon$.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
mutable struct Dual{T&amp;lt;:Real} &amp;lt;: Real &lt;br /&gt;
    x::T&lt;br /&gt;
    ϵ::T&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
Ahora se definen las operaciones básicas sobre el tipo de dato dual. Aquí se muestran algunas pero se definieron muchas más.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
#negacion &lt;br /&gt;
Base.:-(a::Dual) = Dual(-1 * a.x, -1* a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#suma&lt;br /&gt;
Base.:+(a::Dual, b::Dual) = Dual(a.x + b.x, a.ϵ .+ b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#diferencia&lt;br /&gt;
Base.:-(a::Dual, b::Dual) = Dual(a.x - b.x, a.ϵ - b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#producto&lt;br /&gt;
Base.:*(a::Dual, b::Dual) = Dual(a.x * b.x, b.x * a.ϵ + a.x * b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#reciproco &lt;br /&gt;
recip = a::Dual -&amp;gt; Dual(1. / a.x, (-1* a.ϵ) / (a.x ^2))&lt;br /&gt;
&lt;br /&gt;
#cociente&lt;br /&gt;
Base.:/(a::Dual, b::Dual) = a * recip(b)&lt;br /&gt;
&lt;br /&gt;
#exponencial, potencia y raiz_cuadrada&lt;br /&gt;
Base.:exp(a::Dual) = exp(a.x) * Dual(1.,a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#logaritmo &lt;br /&gt;
Base.:log(a::Dual) = Dual(log(a.x), a.ϵ / a.x)&lt;br /&gt;
&lt;br /&gt;
#trigonometria&lt;br /&gt;
Base.:sin(d::Dual) = Dual(sin(d.x), d.ϵ * cos(d.x))&lt;br /&gt;
Base.:cos(d::Dual) = Dual(cos(d.x), - d.ϵ * sin(d.x))&lt;br /&gt;
}}&lt;br /&gt;
Y ya podríamos calcular derivadas. Por ejeplo creando la función f(x) = x^2 y evaluándola en el punto Dual(4, 1) se obtiene el número Dual(16, 8), 8 es la derivada de x^2 en el punto 4.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
f(x) = x^2 &lt;br /&gt;
f(Dual(4., 1.))&lt;br /&gt;
}}&lt;br /&gt;
A partir de este código se programa una librería capaz de calcular gradientes, divergencias y rotacionales de cualquier función. Además es capaz de trabajar en coordenadas cilíndricas esféricas y cartesianas.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo el tensor gradiente de una función u en un punto en la librería se calcula con el comando:&lt;br /&gt;
&lt;br /&gt;
u.grad(punto)&lt;br /&gt;
&lt;br /&gt;
Existen algoritmos más avanzados que hacen este proceso aún más rápido pero para cubrir nuestras necesidades la velocidad aportada por esta librería es suficiente.&lt;br /&gt;
&lt;br /&gt;
Para realizar el trabajo se define la placa, la función de temperaturas y el campo de desplazamientos y el programa crea todas las gráficas necesarias, por lo que nuestro programa es capaz de resolver cualquiera de los trabajos que se han planteado.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
λ = 1&lt;br /&gt;
μ = 1&lt;br /&gt;
&lt;br /&gt;
rango = 0.1&lt;br /&gt;
&lt;br /&gt;
ρ_s = range(1, 2, 11) # discretizacion de variables&lt;br /&gt;
θ_s = range(0, pi, 32)&lt;br /&gt;
z_s = zeros(size(ρ_s))&lt;br /&gt;
&lt;br /&gt;
#campo de temperaturas&lt;br /&gt;
t = x -&amp;gt; x[1]^2 +(x[2] - 1)^2 #cartesianas&lt;br /&gt;
&lt;br /&gt;
T = funcion_escalar(t, tipo = 1)&lt;br /&gt;
&lt;br /&gt;
u = funcion_vectorial(x -&amp;gt; [(x[1] / 10) * sin(x[2]), (x[1] / 5) * cos(x[2]), 0], tipo = 2) # cilindricas&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Dibujo del mallado==&lt;br /&gt;
&lt;br /&gt;
En primer lugar es necesario dibujar la placa que se va a estudiar. &lt;br /&gt;
La placa se define en coordenadas cilíndricas (base física cilíndrica) con la siguiente parametrización: &amp;lt;math&amp;gt; ρ = u -&amp;gt; [0,2] ; θ = v -&amp;gt; [0, π]; z = 0&amp;lt;/math&amp;gt;. &lt;br /&gt;
En el caso de que la placa fuese más compleja, nuestro programa también aceptaría definirla mediante una función que tomando un punto como entrada, devuelva 1 o 0 dependiendo de si dicho punto se encuentra en la placa o no.&lt;br /&gt;
&lt;br /&gt;
Los ejes tomados para dibujar las gráficas han sido [−2, 2] × [0, 2] y se ha dibujado un mallado con el comando &amp;quot;wireframe&amp;quot;.&lt;br /&gt;
Por otra parte, el muestreo utilizado ha sido &amp;lt;math&amp;gt;h= \frac{1}{10}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Placa Nuestra.jpg|400x300px|miniaturadeimagen|centro|Placa representada]]&lt;br /&gt;
&lt;br /&gt;
==Campo de las temperaturas en la placa==&lt;br /&gt;
&lt;br /&gt;
===Dibujo de las curvas de nivel===&lt;br /&gt;
Una vez definida la función temperatura T(x,y) en cartesianas, una parametrización para la placa y habiendo elegido el número de curvas a representar, (20), mediante la función &amp;quot;contour&amp;quot; se han dibujado las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Curvas Temperatura.jpg|400x300px|miniaturadeimagen|centro|Curvas de nivel de la Temperatura]]&lt;br /&gt;
&lt;br /&gt;
===Máximo de temperatura===&lt;br /&gt;
Para obtener el máximo de la temperatura con precisión la función &amp;quot;dibujar2D&amp;quot; que empleamos para dibujar las gráficas devuelve el mayor valor e indica dicho punto mediante un aspa roja.&lt;br /&gt;
&lt;br /&gt;
===Dibujo del gradiente como campo vectorial (&amp;lt;math&amp;gt; \nabla &amp;lt;/math&amp;gt;T)===&lt;br /&gt;
De la función de la temperatura dada, se ha obtenido el gradiente: &amp;lt;math&amp;gt; 2x \vec i + 2 (y - 1) \vec j &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dibujado junto a las curvas de nivel, se observa fácilmente la perpendicularidad entre dichas curvas y los vectores representados.&lt;br /&gt;
Esto tiene sentido puesto que el gradiente indica la dirección de mayor crecimiento mientras que su perpendicular indica el crecimiento nulo. &lt;br /&gt;
Esta última dirección es, por tanto, tangente a las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Gradiente Nuestro.jpg|400x300px|miniaturadeimagen|centro|Gradiente]]&lt;br /&gt;
&lt;br /&gt;
==Tensiones y fuerzas==&lt;br /&gt;
&lt;br /&gt;
===Posición inicial y final de la placa===&lt;br /&gt;
&lt;br /&gt;
Como punto de partida se dibuja la posición inicial y final de la placa. &lt;br /&gt;
Los puntos de la posición final se han calculado sumando a cada punto de la placa inicial su vector desplazamiento dado por la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt;. &lt;br /&gt;
Además, restando a la placa final la media de los desplazamientos en todos los puntos se ha obtenido una gráfica que muestra únicamente las deformaciones que la placa experimenta.&lt;br /&gt;
De esta forma, permite ver que la placa final está achatada y deja de ser circular.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación placa inicial y final con deformación sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Comparación de la placa inicial y final con deformación de la placa sin desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El objetivo final es conocer el campo de fuerzas que ha producido este desplazamiento. &lt;br /&gt;
Para ello a partir del campo de desplazamientos se calculan las tensiones que experimenta la placa y a partir de éstas, el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
===Representación del campo vectorial de desplazamientos===&lt;br /&gt;
Tras definir la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt; en el código, y mediante el uso de la función &amp;quot;arrows&amp;quot; (gracias a que el campo no dispone de componente vertical), se obtiene la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
===Divergencia y rotacional===&lt;br /&gt;
&lt;br /&gt;
Calcular la divergencia y el rotacional del campo de desplazamientos es de gran utilidad, ya que estos aportan información muy valiosa sobre las características de la deformación que experimenta la placa. &lt;br /&gt;
&lt;br /&gt;
El rotacional mide cuánto rotan los puntos de la placa. Su módulo cuantifica la rotación, mientras que su dirección y sentido dan el eje de rotación.&lt;br /&gt;
La divergencia en cambio, mide cuánto cambia el área en un entrono de cada punto. &lt;br /&gt;
&lt;br /&gt;
La deformación de un entorno de un punto de la placa, no su desplazamiento, es por lo tanto la rotación y el cambio de tamaño de ese entorno. &lt;br /&gt;
&lt;br /&gt;
Para tener una mejor intuición de lo que esto significa, se ha dibujado el módulo del rotacional y la divergencia de una rotación de ángulo π/2, una escala de la placa del factor 2 y un desplazamiento sin deformación de dirección 2 &amp;lt;math&amp;gt; \vec i &amp;lt;/math&amp;gt;. En el desplazamiento como no hay deformación, el rotacional y la divergencia deben valer cero. &lt;br /&gt;
El rotacional es mayor que cero e igual en todos los puntos y la divergencia es cero. Esto se debe a que todos los puntos rotan por igual (π/2) y su área no cambia. En la escala por el factor 2, el rotacional debe ser nulo y la divergencia 4, ya que cada lado se duplica produciendo una cuadruplicación del área.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Explicación divergencia y rotacional.jpg|400x300px|miniaturadeimagen|centro|Explicación divergencia y rotacional]]&lt;br /&gt;
&lt;br /&gt;
====Divergencia del campo desplazamientos====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Calculando la divergencia de forma manual y con diferenciación automática, se ha concluido que esta es nula en cualquier punto: &amp;lt;math&amp;gt; ∇ ⋅ \vec u =  \frac{1}{ρ} [\frac{δ}{δρ} (ρ (\frac{ρ}{10} sen θ)) + \frac{δ}{δθ} (\frac{ρ}{5} cos θ) + \frac{δ}{δz} (ρ 0)] = 0 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lo que indica la divergencia es la variación del diferencial de área. En este caso concreto en que es nula, se puede apreciar en la gráfica del punto anterior como aunque los cuadrados del mallado de la placa puedan ser deformados mantienen el mismo tamaño, es decir, ni se dilatan ni se contraen.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Divergencia Nuestra.jpg|400x300px|miniaturadeimagen|centro|Divergencia del campo]]&lt;br /&gt;
&lt;br /&gt;
====Visualización del módulo del rotacional del campo desplazamiento====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mediante el cálculo manual se ha obtenido el siguiente rotacional: &amp;lt;math&amp;gt; V × \vec u = \frac{1}{ρ} \left| \begin{matrix} \vec e_ρ &amp;amp; ρ \vec e_θ &amp;amp; \vec e_z \\ \frac{δ}{δρ} &amp;amp; \frac{δ}{δθ} &amp;amp; \frac{δ}{δz} \\ \frac{ρ}{10} sen θ &amp;amp; ρ \frac{ρ}{5} cos θ &amp;amp; 0 \end{matrix} \right| = \frac{3}{10} cos(θ) \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto su módulo es: &amp;lt;math&amp;gt; |V × \vec u| = |\frac{3}{10} cos(θ)| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, de nuevo se utiliza diferenciación automática de forma que el valor del módulo del rotacional para cada punto, se calcula directamente a partir de la función del campo de desplazamientos como se aprecia en el código.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El resultado de representarlo sobre el plano XY es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Rotacional nuestro.jpg|400x300px|miniaturadeimagen|centro|Rotacional del campo desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El rotacional indica el giro experimentado por la placa en su deformación, lo que se puede apreciar en la representación anterior y teniendo en cuenta el punto 4.3.&lt;br /&gt;
Así, los extremos de la placa, que experimentan un giro, tienen el mayor valor del rotacional. &lt;br /&gt;
Cabe decir que estos valores tendrán signo contrario, pues los giros son opuestos.&lt;br /&gt;
Esto no se tiene en consideración para la representación gráfica, pues en ella buscamos el módulo del rotacional, que siempre es positivo.&lt;br /&gt;
&lt;br /&gt;
===Tensor de tensiones===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este apartado, sabiendo que nos encontramos en un medio lineal, isótropo y homogéneo (así lo indica el enunciado), la función del tensor de tensiones viene descrita de la siguiente forma: &amp;lt;math&amp;gt; σ = λ ∇ ⋅ \vec u 1 + 2 μ ε &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En dicha fórmula conocemos que los Coeficientes de Lamé (λ y μ) que dependen de las propiedades elásticas de cada material. Tomando en este caso que ambos son 1.&lt;br /&gt;
&lt;br /&gt;
La parte simétrica del tensor gradiente del campo  de deplazamientos, queda también definida de la siguiente manera: &amp;lt;math&amp;gt; ε(\vec u) = \frac{∇ \vec u + ∇ \vec u ^t}{2} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
De forma manual se ha obtenido que el gradiente del campo es &amp;lt;math&amp;gt; ∇ \vec u(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; - \frac{ρ}{10} cos θ &amp;amp; 0 \\ \frac{1}{5} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto, la matriz traspuesta del gradiente del campo es: &amp;lt;math&amp;gt; ∇ \vec u^t(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; \frac{1}{5} cos θ &amp;amp; 0 \\ - \frac{ρ}{10} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Resolviendo la parte simétrica del tensor gradiente de forma manual, se obtiene como resultado: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; cos θ (\frac{1}{10} - \frac{ρ}{20} ) &amp;amp; 0 \\ cos θ (\frac{1}{10} - \frac{ρ}{20}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De esta forma, se concluye que el tensor de tensiones viene representado de la siguiente forma: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{5} sen θ &amp;amp; cos θ (\frac{1}{5} - \frac{ρ}{10} ) &amp;amp; 0 \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Representación de las tensiones normales====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tensiones comparación.jpg|400x300px|miniaturadeimagen|centro|Representación de las tensiones normales]]&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_ρ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_ρ ⋅ σ ⋅ \vec e_ρ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; \frac {1}{5} sen θ \vec e_ρ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_θ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_θ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_θ ⋅ σ ⋅ \vec e_θ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_z, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt;  \vec e_z ⋅ σ ⋅ \vec e_z &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; 0 \vec e_z &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Tensiones tangenciales respecto al plano ortogonal &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este caso, simplemente se ha aplicado la fórmula correspondiente que es la siguiente: &amp;lt;math&amp;gt; |σ ⋅ \vec e_ρ - \vec e_ρ ⋅ σ ⋅ \vec e_ρ| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Desarrollando la fórmula: &amp;lt;math&amp;gt; \begin{pmatrix} \frac{1}{5} sen θ \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) \\ 0 \end{pmatrix} - \begin{pmatrix} \frac {1}{5} sen θ \\ 0 \\ 0 \end{pmatrix} =  cos θ (\frac {1}{5} - \frac {ρ}{10}) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación Tensiones tangenciales.jpg|400x300px|miniaturadeimagen|centro|Comparación Tensiones tangenciales]]&lt;br /&gt;
&lt;br /&gt;
===Tensión de Von Mises===&lt;br /&gt;
&lt;br /&gt;
La tensión de Von Mises viene determinada por la fórmula: &amp;lt;math&amp;gt; σ_{VM} = \sqrt{\frac{(\vec σ_1 - \vec σ_2)^2 + (\vec σ_2 - \vec σ_3)^2 + (\vec σ_3 - \vec σ_1)^2}{2}} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Puesto que cada punto de la placa lleva asociado un tensor de la tensión, siendo  &amp;lt;math&amp;gt; \vec σ_1, \vec σ_2, \vec σ_3;  &amp;lt;/math&amp;gt; los autovalores de dicha matriz, se debe ir punto a punto calculándolos, por tanto es necesario un bucle que rellene una matriz con los valores de la tensión Von Mises para cada punto. &lt;br /&gt;
&lt;br /&gt;
La tensión de Von Mises muestra los puntos donde se produciría la rotura de la placa. En este caso rompería la parte superior de la placa.&lt;br /&gt;
&lt;br /&gt;
La representación es la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tensión Von Mises.jpg|400x300px|miniaturadeimagen|centro|Tensión Von Mises]]&lt;br /&gt;
&lt;br /&gt;
===Fuerza causante del desplazamiento===&lt;br /&gt;
&lt;br /&gt;
Conociendo que la placa viene deformada por la función vectorial dada, se puede obtener la fuerza que motiva el desplazamiento. Esa viene definida por: &amp;lt;math&amp;gt; \vec F = - \nabla ⋅ \vec u &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El resultado de la fuerza obtenido manualmente es el descrito a continuación: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_ρ + \frac {1}{5} (\frac {1}{ρ} - 2) cos θ \vec e_θ &amp;lt;/math&amp;gt;. La componente según &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt; es nula.&lt;br /&gt;
&lt;br /&gt;
Calculado por diferenciación automática queda la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas]]&lt;br /&gt;
&lt;br /&gt;
Si de dibuja el campo de fuerzas y la las posiciones inicial y final no queda del todo claro que éste sea el campo que motiva el desplazamiento y la deformación de la placa. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas y desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de Fuerzas y desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
Si se dibuja la resultante de las fuerzas el desplazamiento de la placa queda explicado, mientras que dibujando únicamente la placa final deformada, sin considerar el desplazamiento y el campo de fuerzas, se pueden apreciar claramente que deformaciones como el achatamiento de la forma circular de la placa son causadas por el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Desplazamiento y resultante concampo de fuerzas sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas, desplazamiento y deformación de la placa]]&lt;br /&gt;
&lt;br /&gt;
==Anexo==&lt;br /&gt;
&lt;br /&gt;
===Librería de Julia desarrollada para el trabajo===&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Teoría de Campos]][[Categoría:TC21/22]]&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=47965</id>
		<title>Grupo B12 Trabajo 5: Estudio de tensiones sobre una placa mediante diferenciación automática</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=47965"/>
				<updated>2021-12-10T18:33:02Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Estudio de tensiones sobre una placa mediante diferenciación automática. Grupo B12 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC21/22|2021-2022]] | Víctor Sillero González&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Rodrigo Vázquez Pérez }}&lt;br /&gt;
&lt;br /&gt;
El trabajo correspondiente a este grupo es el número 5, en particular consiste en el estudio de temperaturas, deformaciones y tensiones sobre una placa compuesta de medio anillo circular.&lt;br /&gt;
La peculiaridad de este trabajo radica en que se ha realizado mediante diferenciación automática gracias a una librería realizada por los componentes del grupo.&lt;br /&gt;
Dicho programa ha sido realizado en el leguaje de programación &amp;quot;Julia&amp;quot;, y por ende todo el desarrollo ha sido realizado mediante dicho lenguaje.&lt;br /&gt;
&lt;br /&gt;
Todos los gráficos se han creado a partir de la librería Makie de Julia. Se ha creado una función con los estilos que queríamos usar que toma como input campos y funciones así como una lista de puntos y algunos parámetros de estilo y dibuja la gráfica correspondiente. Al ser tanto el programa para las gráficas como la librería de diferenciación automática demasiado largos para ser publicados en esta página se adjunta un link donde se pueden descargar y ver.&lt;br /&gt;
&lt;br /&gt;
La librería utilizada a lo largo de todo el trabajo queda adjunta en el anexo.&lt;br /&gt;
&lt;br /&gt;
En este caso los datos aportados por el enunciado han sido los siguientes:&lt;br /&gt;
* Placa plana que ocupa la mitad de un anillo circular centrado en el origen y comprendido entre los radios 1 y 2, en el plano y ≥ 0.&lt;br /&gt;
* Función temperatura en la placa: &amp;lt;math&amp;gt; T(x,y) = x^2 + (y-1)^2 &amp;lt;/math&amp;gt;.&lt;br /&gt;
* Campo de deformaciones: &amp;lt;math&amp;gt;\vec u(ρ,θ) = \frac{ρ}{10} sin(θ) + \frac{ρ}{5} cos(θ) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Julia Portada.png|400x300px|miniaturadeimagen|centro|Portada programa Julia]]&lt;br /&gt;
&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
Este trabajo tiene como objetivo el estudio de las tensiones y fuerzas que producen desplazamientos y deformaciones en una placa, así como su campo de temperaturas a partir de un campo de desplazamientos y una función escalar de temperaturas. Además, se va a estudiar el cálculo de derivadas y operadores diferenciales mediante métodos computacionales.&lt;br /&gt;
&lt;br /&gt;
=== Diferenciación automática===&lt;br /&gt;
====Métodos habituales: Aproximación numérica====&lt;br /&gt;
Normalmente cuando se quiere obtener el valor de la derivada de una función en un punto mediante un ordenador se realiza una aproximación a partir de la definición de derivada. $\frac{f(x+h) - f(x)}{h}$ dando un valor concreto lo menor posible para $h$.&lt;br /&gt;
Un ejemplo del método con la función $f(x) = x^{2}$ y $h = 10^{-10}$ en x = 3&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
h = 10^-10&lt;br /&gt;
f(x) = x^2&lt;br /&gt;
derivada = (f(3+h) - f(3)) / h&lt;br /&gt;
}}&lt;br /&gt;
El resultado dado no es exáctamente 6 pero se consiguen 6 decimales de precisión por lo que es una buena aproximación. Este algoritmo realiza 3 operaciones. Evaluar $f$ en $x + h$, evaluar $f$ en $x$ y dividir todo ello entre $h$.&lt;br /&gt;
&lt;br /&gt;
Un problema del método es si se emplea una $h$ demasiado pequeña puede dar problemas.&lt;br /&gt;
&lt;br /&gt;
Si se supera el número más pequeño que se puede expresar con el tipo de dato utilizado (Float64 en nuestro caso) el resultado mostrado será 0. Por lo tanto un manejo correcto de los valores de $h$ es esencial y complica el método bastante.&lt;br /&gt;
&lt;br /&gt;
====Números duales====&lt;br /&gt;
&lt;br /&gt;
El método empleado en este trabajo es exacto. No se realiza ninguna aproximación. Para ello es necesario definir un nuevo tipo de número distinto de los reales o los complejos, los números duales.&lt;br /&gt;
&lt;br /&gt;
Los números duales son números del tipo $a + b\epsilon$ siendo $a$ y $b$ números reales o duales. &lt;br /&gt;
&lt;br /&gt;
Denominamos parte real al número $a$ y parte derivada al número $b$&lt;br /&gt;
&lt;br /&gt;
Además se define la siguiente propiedad: $\epsilon \neq 0$ tal que $\epsilon^{2} = 0$. $\epsilon$ por lo tanto no es un número real.&lt;br /&gt;
&lt;br /&gt;
Las operaciones aritméticas básicas se definen de manera sencilla.&lt;br /&gt;
* Suma: $(a + b\epsilon) + (c + d\epsilon) = (a + c) + (b + d)\epsilon$&lt;br /&gt;
* Producto $(a + b\epsilon) * (c + d\epsilon) = ac + (bc + ad)\epsilon + (bd)^{2}\epsilon^{2}$, como $\epsilon^{2} = 0$ el resultado final es $(a + b\epsilon) * (c + d\epsilon) = ac + (bc + ad)\epsilon$&lt;br /&gt;
&lt;br /&gt;
====Series de Taylor y números duales====&lt;br /&gt;
Sea $f$ una función cualquiera y $a$ un punto del dominio de $f$ la serie de Taylor de $f$ en el punto $a$ es&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
$f(x) = f(a) + \frac{f'(a)}{1!}(x-a) + \frac{f''(a)}{2!}(x-a)^{2} + ... = \sum_{i=0}^\infty \frac{f^{i}(a)}{i!}(x-a)^{i}$&lt;br /&gt;
}}&lt;br /&gt;
Si se evalúa la serie de Taylor de $f$ en el valor dual $x = a + \epsilon$ se obtiene &lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
$f(a + \epsilon) = f(a) + f'(a)\epsilon + \frac{f''(a)}{2!}\epsilon^{2} + ...$ y como $\epsilon^{2} = 0$ el resultado final es&lt;br /&gt;
}}&lt;br /&gt;
$f(a + \epsilon) = f(a) + f'(a)\epsilon$&lt;br /&gt;
&lt;br /&gt;
La parte real de $f(a + \epsilon)$ es $f$ evaluado en $a$, es decir $f(a)$ y la parte derivada de $f(a + \epsilon)$ es la derivada de $f$ evaluada en $a$, es decir $f'(a)$.&lt;br /&gt;
&lt;br /&gt;
====Cálculo de drivadas por números duales====&lt;br /&gt;
&lt;br /&gt;
Gracias a las propiedades comentadas en la sección anterior podemos establecer un nuevo método esta vez exacto para calcular derivadas. &lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
$f'(a) = parte Derivada[f(a + \epsilon)]$&lt;br /&gt;
}}&lt;br /&gt;
Este método consiste en únicamtente una operación siendo no solamente exacto sino además más rápido que el método aproximado.&lt;br /&gt;
&lt;br /&gt;
====Programación====&lt;br /&gt;
&lt;br /&gt;
En primer lugar se define un nuevo tipo de dato Dual, con las propiedades de parte real $x$ y parte derivada $\epsilon$.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
mutable struct Dual{T&amp;lt;:Real} &amp;lt;: Real &lt;br /&gt;
    x::T&lt;br /&gt;
    ϵ::T&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
Ahora se definen las operaciones básicas sobre el tipo de dato dual. Aquí se muestran algunas pero se definieron muchas más.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
#negacion &lt;br /&gt;
Base.:-(a::Dual) = Dual(-1 * a.x, -1* a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#suma&lt;br /&gt;
Base.:+(a::Dual, b::Dual) = Dual(a.x + b.x, a.ϵ .+ b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#diferencia&lt;br /&gt;
Base.:-(a::Dual, b::Dual) = Dual(a.x - b.x, a.ϵ - b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#producto&lt;br /&gt;
Base.:*(a::Dual, b::Dual) = Dual(a.x * b.x, b.x * a.ϵ + a.x * b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#reciproco &lt;br /&gt;
recip = a::Dual -&amp;gt; Dual(1. / a.x, (-1* a.ϵ) / (a.x ^2))&lt;br /&gt;
&lt;br /&gt;
#cociente&lt;br /&gt;
Base.:/(a::Dual, b::Dual) = a * recip(b)&lt;br /&gt;
&lt;br /&gt;
#exponencial, potencia y raiz_cuadrada&lt;br /&gt;
Base.:exp(a::Dual) = exp(a.x) * Dual(1.,a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#logaritmo &lt;br /&gt;
Base.:log(a::Dual) = Dual(log(a.x), a.ϵ / a.x)&lt;br /&gt;
&lt;br /&gt;
#trigonometria&lt;br /&gt;
Base.:sin(d::Dual) = Dual(sin(d.x), d.ϵ * cos(d.x))&lt;br /&gt;
Base.:cos(d::Dual) = Dual(cos(d.x), - d.ϵ * sin(d.x))&lt;br /&gt;
}}&lt;br /&gt;
Y ya podríamos calcular derivadas. Por ejeplo creando la función f(x) = x^2 y evaluándola en el punto Dual(4, 1) se obtiene el número Dual(16, 8), 8 es la derivada de x^2 en el punto 4.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
f(x) = x^2 &lt;br /&gt;
f(Dual(4., 1.))&lt;br /&gt;
}}&lt;br /&gt;
A partir de este código se programa una librería capaz de calcular gradientes, divergencias y rotacionales de cualquier función.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo el tensor gradiente de una función u en un punto en la librería se calcula con el comando:&lt;br /&gt;
&lt;br /&gt;
u.grad(punto)&lt;br /&gt;
&lt;br /&gt;
Existen algoritmos más avanzados que hacen este proceso aún más rápido pero para cubrir nuestras necesidades la velocidad aportada por esta librería es suficiente.&lt;br /&gt;
&lt;br /&gt;
==Dibujo del mallado==&lt;br /&gt;
&lt;br /&gt;
En primer lugar es necesario dibujar la placa que se va a estudiar. &lt;br /&gt;
La placa se define en coordenadas cilíndricas (base física cilíndrica) con la siguiente parametrización: &amp;lt;math&amp;gt; ρ = u -&amp;gt; [0,2] ; θ = v -&amp;gt; [0, π]; z = 0&amp;lt;/math&amp;gt;. &lt;br /&gt;
En el caso de que la placa fuese más compleja, nuestro programa también aceptaría definirla mediante una función que tomando un punto como entrada, devuelva 1 o 0 dependiendo de si dicho punto se encuentra en la placa o no.&lt;br /&gt;
&lt;br /&gt;
Los ejes tomados para dibujar las gráficas han sido [−2, 2] × [0, 2] y se ha dibujado un mallado con el comando &amp;quot;wireframe&amp;quot;.&lt;br /&gt;
Por otra parte, el muestreo utilizado ha sido &amp;lt;math&amp;gt;h= \frac{1}{10}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Placa Nuestra.jpg|400x300px|miniaturadeimagen|centro|Placa representada]]&lt;br /&gt;
&lt;br /&gt;
==Campo de las temperaturas en la placa==&lt;br /&gt;
&lt;br /&gt;
===Dibujo de las curvas de nivel===&lt;br /&gt;
Una vez definida la función temperatura T(x,y) en cartesianas, una parametrización para la placa y habiendo elegido el número de curvas a representar, (20), mediante la función &amp;quot;contour&amp;quot; se han dibujado las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Curvas Temperatura.jpg|400x300px|miniaturadeimagen|centro|Curvas de nivel de la Temperatura]]&lt;br /&gt;
&lt;br /&gt;
===Máximo de temperatura===&lt;br /&gt;
Para obtener el máximo de la temperatura con precisión la función &amp;quot;dibujar2D&amp;quot; que empleamos para dibujar las gráficas devuelve el mayor valor e indica dicho punto mediante un aspa roja.&lt;br /&gt;
&lt;br /&gt;
===Dibujo del gradiente como campo vectorial (&amp;lt;math&amp;gt; \nabla &amp;lt;/math&amp;gt;T)===&lt;br /&gt;
De la función de la temperatura dada, se ha obtenido el gradiente: &amp;lt;math&amp;gt; 2x \vec i + 2 (y - 1) \vec j &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dibujado junto a las curvas de nivel, se observa fácilmente la perpendicularidad entre dichas curvas y los vectores representados.&lt;br /&gt;
Esto tiene sentido puesto que el gradiente indica la dirección de mayor crecimiento mientras que su perpendicular indica el crecimiento nulo. &lt;br /&gt;
Esta última dirección es, por tanto, tangente a las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Gradiente Nuestro.jpg|400x300px|miniaturadeimagen|centro|Gradiente]]&lt;br /&gt;
&lt;br /&gt;
==Tensiones y fuerzas==&lt;br /&gt;
&lt;br /&gt;
===Posición inicial y final de la placa===&lt;br /&gt;
&lt;br /&gt;
Como punto de partida se dibuja la posición inicial y final de la placa. &lt;br /&gt;
Los puntos de la posición final se han calculado sumando a cada punto de la placa inicial su vector desplazamiento dado por la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt;. &lt;br /&gt;
Además, restando a la placa final la media de los desplazamientos en todos los puntos se ha obtenido una gráfica que muestra únicamente las deformaciones que la placa experimenta.&lt;br /&gt;
De esta forma, permite ver que la placa final está achatada y deja de ser circular.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación placa inicial y final con deformación sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Comparación de la placa inicial y final con deformación de la placa sin desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El objetivo final es conocer el campo de fuerzas que ha producido este desplazamiento. &lt;br /&gt;
Para ello a partir del campo de desplazamientos se calculan las tensiones que experimenta la placa y a partir de éstas, el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
===Representación del campo vectorial de desplazamientos===&lt;br /&gt;
Tras definir la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt; en el código, y mediante el uso de la función &amp;quot;arrows&amp;quot; (gracias a que el campo no dispone de componente vertical), se obtiene la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
===Divergencia y rotacional===&lt;br /&gt;
&lt;br /&gt;
Calcular la divergencia y el rotacional del campo de desplazamientos es de gran utilidad, ya que estos aportan información muy valiosa sobre las características de la deformación que experimenta la placa. &lt;br /&gt;
&lt;br /&gt;
El rotacional mide cuánto rotan los puntos de la placa. Su módulo cuantifica la rotación, mientras que su dirección y sentido dan el eje de rotación.&lt;br /&gt;
La divergencia en cambio, mide cuánto cambia el área en un entrono de cada punto. &lt;br /&gt;
&lt;br /&gt;
La deformación de un entorno de un punto de la placa, no su desplazamiento, es por lo tanto la rotación y el cambio de tamaño de ese entorno. &lt;br /&gt;
&lt;br /&gt;
Para tener una mejor intuición de lo que esto significa, se ha dibujado el módulo del rotacional y la divergencia de una rotación de ángulo π/2, una escala de la placa del factor 2 y un desplazamiento sin deformación de dirección 2 &amp;lt;math&amp;gt; \vec i &amp;lt;/math&amp;gt;. En el desplazamiento como no hay deformación, el rotacional y la divergencia deben valer cero. &lt;br /&gt;
El rotacional es mayor que cero e igual en todos los puntos y la divergencia es cero. Esto se debe a que todos los puntos rotan por igual (π/2) y su área no cambia. En la escala por el factor 2, el rotacional debe ser nulo y la divergencia 4, ya que cada lado se duplica produciendo una cuadruplicación del área.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Explicación divergencia y rotacional.jpg|400x300px|miniaturadeimagen|centro|Explicación divergencia y rotacional]]&lt;br /&gt;
&lt;br /&gt;
====Divergencia del campo desplazamientos====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Calculando la divergencia de forma manual y con diferenciación automática, se ha concluido que esta es nula en cualquier punto: &amp;lt;math&amp;gt; ∇ ⋅ \vec u =  \frac{1}{ρ} [\frac{δ}{δρ} (ρ (\frac{ρ}{10} sen θ)) + \frac{δ}{δθ} (\frac{ρ}{5} cos θ) + \frac{δ}{δz} (ρ 0)] = 0 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lo que indica la divergencia es la variación del diferencial de área. En este caso concreto en que es nula, se puede apreciar en la gráfica del punto anterior como aunque los cuadrados del mallado de la placa puedan ser deformados mantienen el mismo tamaño, es decir, ni se dilatan ni se contraen.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Divergencia Nuestra.jpg|400x300px|miniaturadeimagen|centro|Divergencia del campo]]&lt;br /&gt;
&lt;br /&gt;
====Visualización del módulo del rotacional del campo desplazamiento====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mediante el cálculo manual se ha obtenido el siguiente rotacional: &amp;lt;math&amp;gt; V × \vec u = \frac{1}{ρ} \left| \begin{matrix} \vec e_ρ &amp;amp; ρ \vec e_θ &amp;amp; \vec e_z \\ \frac{δ}{δρ} &amp;amp; \frac{δ}{δθ} &amp;amp; \frac{δ}{δz} \\ \frac{ρ}{10} sen θ &amp;amp; ρ \frac{ρ}{5} cos θ &amp;amp; 0 \end{matrix} \right| = \frac{3}{10} cos(θ) \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto su módulo es: &amp;lt;math&amp;gt; |V × \vec u| = |\frac{3}{10} cos(θ)| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, de nuevo se utiliza diferenciación automática de forma que el valor del módulo del rotacional para cada punto, se calcula directamente a partir de la función del campo de desplazamientos como se aprecia en el código.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El resultado de representarlo sobre el plano XY es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Rotacional nuestro.jpg|400x300px|miniaturadeimagen|centro|Rotacional del campo desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El rotacional indica el giro experimentado por la placa en su deformación, lo que se puede apreciar en la representación anterior y teniendo en cuenta el punto 4.3.&lt;br /&gt;
Así, los extremos de la placa, que experimentan un giro, tienen el mayor valor del rotacional. &lt;br /&gt;
Cabe decir que estos valores tendrán signo contrario, pues los giros son opuestos.&lt;br /&gt;
Esto no se tiene en consideración para la representación gráfica, pues en ella buscamos el módulo del rotacional, que siempre es positivo.&lt;br /&gt;
&lt;br /&gt;
===Tensor de tensiones===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este apartado, sabiendo que nos encontramos en un medio lineal, isótropo y homogéneo (así lo indica el enunciado), la función del tensor de tensiones viene descrita de la siguiente forma: &amp;lt;math&amp;gt; σ = λ ∇ ⋅ \vec u 1 + 2 μ ε &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En dicha fórmula conocemos que los Coeficientes de Lamé (λ y μ) que dependen de las propiedades elásticas de cada material. Tomando en este caso que ambos son 1.&lt;br /&gt;
&lt;br /&gt;
La parte simétrica del tensor gradiente del campo  de deplazamientos, queda también definida de la siguiente manera: &amp;lt;math&amp;gt; ε(\vec u) = \frac{∇ \vec u + ∇ \vec u ^t}{2} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
De forma manual se ha obtenido que el gradiente del campo es &amp;lt;math&amp;gt; ∇ \vec u(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; - \frac{ρ}{10} cos θ &amp;amp; 0 \\ \frac{1}{5} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto, la matriz traspuesta del gradiente del campo es: &amp;lt;math&amp;gt; ∇ \vec u^t(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; \frac{1}{5} cos θ &amp;amp; 0 \\ - \frac{ρ}{10} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Resolviendo la parte simétrica del tensor gradiente de forma manual, se obtiene como resultado: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; cos θ (\frac{1}{10} - \frac{ρ}{20} ) &amp;amp; 0 \\ cos θ (\frac{1}{10} - \frac{ρ}{20}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De esta forma, se concluye que el tensor de tensiones viene representado de la siguiente forma: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{5} sen θ &amp;amp; cos θ (\frac{1}{5} - \frac{ρ}{10} ) &amp;amp; 0 \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Representación de las tensiones normales====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tensiones comparación.jpg|400x300px|miniaturadeimagen|centro|Representación de las tensiones normales]]&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_ρ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_ρ ⋅ σ ⋅ \vec e_ρ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; \frac {1}{5} sen θ \vec e_ρ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_θ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_θ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_θ ⋅ σ ⋅ \vec e_θ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_z, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt;  \vec e_z ⋅ σ ⋅ \vec e_z &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; 0 \vec e_z &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Tensiones tangenciales respecto al plano ortogonal &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este caso, simplemente se ha aplicado la fórmula correspondiente que es la siguiente: &amp;lt;math&amp;gt; |σ ⋅ \vec e_ρ - \vec e_ρ ⋅ σ ⋅ \vec e_ρ| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Desarrollando la fórmula: &amp;lt;math&amp;gt; \begin{pmatrix} \frac{1}{5} sen θ \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) \\ 0 \end{pmatrix} - \begin{pmatrix} \frac {1}{5} sen θ \\ 0 \\ 0 \end{pmatrix} =  cos θ (\frac {1}{5} - \frac {ρ}{10}) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación Tensiones tangenciales.jpg|400x300px|miniaturadeimagen|centro|Comparación Tensiones tangenciales]]&lt;br /&gt;
&lt;br /&gt;
===Tensión de Von Mises===&lt;br /&gt;
&lt;br /&gt;
La tensión de Von Mises viene determinada por la fórmula: &amp;lt;math&amp;gt; σ_{VM} = \sqrt{\frac{(\vec σ_1 - \vec σ_2)^2 + (\vec σ_2 - \vec σ_3)^2 + (\vec σ_3 - \vec σ_1)^2}{2}} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Puesto que cada punto de la placa lleva asociado un tensor de la tensión, siendo  &amp;lt;math&amp;gt; \vec σ_1, \vec σ_2, \vec σ_3;  &amp;lt;/math&amp;gt; los autovalores de dicha matriz, se debe ir punto a punto calculándolos, por tanto es necesario un bucle que rellene una matriz con los valores de la tensión Von Mises para cada punto. &lt;br /&gt;
&lt;br /&gt;
La tensión de Von Mises muestra los puntos donde se produciría la rotura de la placa. En este caso rompería la parte superior de la placa.&lt;br /&gt;
&lt;br /&gt;
La representación es la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tensión Von Mises.jpg|400x300px|miniaturadeimagen|centro|Tensión Von Mises]]&lt;br /&gt;
&lt;br /&gt;
===Fuerza causante del desplazamiento===&lt;br /&gt;
&lt;br /&gt;
Conociendo que la placa viene deformada por la función vectorial dada, se puede obtener la fuerza que motiva el desplazamiento. Esa viene definida por: &amp;lt;math&amp;gt; \vec F = - \nabla ⋅ \vec u &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El resultado de la fuerza obtenido manualmente es el descrito a continuación: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_ρ + \frac {1}{5} (\frac {1}{ρ} - 2) cos θ \vec e_θ &amp;lt;/math&amp;gt;. La componente según &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt; es nula.&lt;br /&gt;
&lt;br /&gt;
Calculado por diferenciación automática queda la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas]]&lt;br /&gt;
&lt;br /&gt;
Si de dibuja el campo de fuerzas y la las posiciones inicial y final no queda del todo claro que éste sea el campo que motiva el desplazamiento y la deformación de la placa. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas y desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de Fuerzas y desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
Si se dibuja la resultante de las fuerzas el desplazamiento de la placa queda explicado, mientras que dibujando únicamente la placa final deformada, sin considerar el desplazamiento y el campo de fuerzas, se pueden apreciar claramente que deformaciones como el achatamiento de la forma circular de la placa son causadas por el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Desplazamiento y resultante concampo de fuerzas sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas, desplazamiento y deformación de la placa]]&lt;br /&gt;
&lt;br /&gt;
==Anexo==&lt;br /&gt;
&lt;br /&gt;
===Librería de Julia desarrollada para el trabajo===&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Teoría de Campos]][[Categoría:TC21/22]]&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=47963</id>
		<title>Grupo B12 Trabajo 5: Estudio de tensiones sobre una placa mediante diferenciación automática</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=47963"/>
				<updated>2021-12-10T18:27:18Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: /* Introducción */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Estudio de tensiones sobre una placa mediante diferenciación automática. Grupo B12 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC21/22|2021-2022]] | Víctor Sillero González&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Rodrigo Vázquez Pérez }}&lt;br /&gt;
&lt;br /&gt;
El trabajo correspondiente a este grupo es el número 5, en particular consiste en el estudio de temperaturas, deformaciones y tensiones sobre una placa compuesta de medio anillo circular.&lt;br /&gt;
La peculiaridad de este trabajo radica en que se ha realizado mediante diferenciación automática gracias a una librería realizada por los componentes del grupo.&lt;br /&gt;
Dicho programa ha sido realizado en el leguaje de programación &amp;quot;Julia&amp;quot;, y por ende todo el desarrollo ha sido realizado mediante dicho lenguaje.&lt;br /&gt;
&lt;br /&gt;
La librería utilizada a lo largo de todo el trabajo queda adjunta en el anexo.&lt;br /&gt;
&lt;br /&gt;
En este caso los datos aportados por el enunciado han sido los siguientes:&lt;br /&gt;
* Placa plana que ocupa la mitad de un anillo circular centrado en el origen y comprendido entre los radios 1 y 2, en el plano y ≥ 0.&lt;br /&gt;
* Función temperatura en la placa: &amp;lt;math&amp;gt; T(x,y) = x^2 + (y-1)^2 &amp;lt;/math&amp;gt;.&lt;br /&gt;
* Campo de deformaciones: &amp;lt;math&amp;gt;\vec u(ρ,θ) = \frac{ρ}{10} sin(θ) + \frac{ρ}{5} cos(θ) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Julia Portada.png|400x300px|miniaturadeimagen|centro|Portada programa Julia]]&lt;br /&gt;
&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
Este trabajo tiene como objetivo el estudio de las tensiones y fuerzas que producen desplazamientos y deformaciones en una placa, así como su campo de temperaturas a partir de un campo de desplazamientos y una función escalar de temperaturas. Además, se va a estudiar el cálculo de derivadas y operadores diferenciales mediante métodos computacionales.&lt;br /&gt;
&lt;br /&gt;
=== Diferenciación automática===&lt;br /&gt;
====Métodos habituales: Aproximación numérica====&lt;br /&gt;
Normalmente cuando se quiere obtener el valor de la derivada de una función en un punto mediante un ordenador se realiza una aproximación a partir de la definición de derivada. $\frac{f(x+h) - f(x)}{h}$ dando un valor concreto lo menor posible para $h$.&lt;br /&gt;
Un ejemplo del método con la función $f(x) = x^{2}$ y $h = 10^{-10}$ en x = 3&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
h = 10^-10&lt;br /&gt;
f(x) = x^2&lt;br /&gt;
derivada = (f(3+h) - f(3)) / h&lt;br /&gt;
}}&lt;br /&gt;
El resultado dado no es exáctamente 6 pero se consiguen 6 decimales de precisión por lo que es una buena aproximación. Este algoritmo realiza 3 operaciones. Evaluar $f$ en $x + h$, evaluar $f$ en $x$ y dividir todo ello entre $h$.&lt;br /&gt;
&lt;br /&gt;
Un problema del método es si se emplea una $h$ demasiado pequeña puede dar problemas.&lt;br /&gt;
&lt;br /&gt;
Si se supera el número más pequeño que se puede expresar con el tipo de dato utilizado (Float64 en nuestro caso) el resultado mostrado será 0. Por lo tanto un manejo correcto de los valores de $h$ es esencial y complica el método bastante.&lt;br /&gt;
&lt;br /&gt;
====Números duales====&lt;br /&gt;
&lt;br /&gt;
El método empleado en este trabajo es exacto. No se realiza ninguna aproximación. Para ello es necesario definir un nuevo tipo de número distinto de los reales o los complejos, los números duales.&lt;br /&gt;
&lt;br /&gt;
Los números duales son números del tipo $a + b\epsilon$ siendo $a$ y $b$ números reales o duales. &lt;br /&gt;
&lt;br /&gt;
Denominamos parte real al número $a$ y parte derivada al número $b$&lt;br /&gt;
&lt;br /&gt;
Además se define la siguiente propiedad: $\epsilon \neq 0$ tal que $\epsilon^{2} = 0$. $\epsilon$ por lo tanto no es un número real.&lt;br /&gt;
&lt;br /&gt;
Las operaciones aritméticas básicas se definen de manera sencilla.&lt;br /&gt;
* Suma: $(a + b\epsilon) + (c + d\epsilon) = (a + c) + (b + d)\epsilon$&lt;br /&gt;
* Producto $(a + b\epsilon) * (c + d\epsilon) = ac + (bc + ad)\epsilon + (bd)^{2}\epsilon^{2}$, como $\epsilon^{2} = 0$ el resultado final es $(a + b\epsilon) * (c + d\epsilon) = ac + (bc + ad)\epsilon$&lt;br /&gt;
&lt;br /&gt;
====Series de Taylor y números duales====&lt;br /&gt;
Sea $f$ una función cualquiera y $a$ un punto del dominio de $f$ la serie de Taylor de $f$ en el punto $a$ es&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
$f(x) = f(a) + \frac{f'(a)}{1!}(x-a) + \frac{f''(a)}{2!}(x-a)^{2} + ... = \sum_{i=0}^\infty \frac{f^{i}(a)}{i!}(x-a)^{i}$&lt;br /&gt;
}}&lt;br /&gt;
Si se evalúa la serie de Taylor de $f$ en el valor dual $x = a + \epsilon$ se obtiene &lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
$f(a + \epsilon) = f(a) + f'(a)\epsilon + \frac{f''(a)}{2!}\epsilon^{2} + ...$ y como $\epsilon^{2} = 0$ el resultado final es&lt;br /&gt;
}}&lt;br /&gt;
$f(a + \epsilon) = f(a) + f'(a)\epsilon$&lt;br /&gt;
&lt;br /&gt;
La parte real de $f(a + \epsilon)$ es $f$ evaluado en $a$, es decir $f(a)$ y la parte derivada de $f(a + \epsilon)$ es la derivada de $f$ evaluada en $a$, es decir $f'(a)$.&lt;br /&gt;
&lt;br /&gt;
====Cálculo de drivadas por números duales====&lt;br /&gt;
&lt;br /&gt;
Gracias a las propiedades comentadas en la sección anterior podemos establecer un nuevo método esta vez exacto para calcular derivadas. &lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
$f'(a) = parte Derivada[f(a + \epsilon)]$&lt;br /&gt;
}}&lt;br /&gt;
Este método consiste en únicamtente una operación siendo no solamente exacto sino además más rápido que el método aproximado.&lt;br /&gt;
&lt;br /&gt;
====Programación====&lt;br /&gt;
&lt;br /&gt;
En primer lugar se define un nuevo tipo de dato Dual, con las propiedades de parte real $x$ y parte derivada $\epsilon$.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
mutable struct Dual{T&amp;lt;:Real} &amp;lt;: Real &lt;br /&gt;
    x::T&lt;br /&gt;
    ϵ::T&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
Ahora se definen las operaciones básicas sobre el tipo de dato dual. Aquí se muestran algunas pero se definieron muchas más.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
#negacion &lt;br /&gt;
Base.:-(a::Dual) = Dual(-1 * a.x, -1* a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#suma&lt;br /&gt;
Base.:+(a::Dual, b::Dual) = Dual(a.x + b.x, a.ϵ .+ b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#diferencia&lt;br /&gt;
Base.:-(a::Dual, b::Dual) = Dual(a.x - b.x, a.ϵ - b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#producto&lt;br /&gt;
Base.:*(a::Dual, b::Dual) = Dual(a.x * b.x, b.x * a.ϵ + a.x * b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#reciproco &lt;br /&gt;
recip = a::Dual -&amp;gt; Dual(1. / a.x, (-1* a.ϵ) / (a.x ^2))&lt;br /&gt;
&lt;br /&gt;
#cociente&lt;br /&gt;
Base.:/(a::Dual, b::Dual) = a * recip(b)&lt;br /&gt;
&lt;br /&gt;
#exponencial, potencia y raiz_cuadrada&lt;br /&gt;
Base.:exp(a::Dual) = exp(a.x) * Dual(1.,a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#logaritmo &lt;br /&gt;
Base.:log(a::Dual) = Dual(log(a.x), a.ϵ / a.x)&lt;br /&gt;
&lt;br /&gt;
#trigonometria&lt;br /&gt;
Base.:sin(d::Dual) = Dual(sin(d.x), d.ϵ * cos(d.x))&lt;br /&gt;
Base.:cos(d::Dual) = Dual(cos(d.x), - d.ϵ * sin(d.x))&lt;br /&gt;
}}&lt;br /&gt;
Y ya podríamos calcular derivadas. Por ejeplo creando la función f(x) = x^2 y evaluándola en el punto Dual(4, 1) se obtiene el número Dual(16, 8), 8 es la derivada de x^2 en el punto 4.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
f(x) = x^2 &lt;br /&gt;
f(Dual(4., 1.))&lt;br /&gt;
}}&lt;br /&gt;
A partir de este código se programa una librería capaz de calcular gradientes, divergencias y rotacionales de cualquier función.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo el tensor gradiente de una función u en un punto en la librería se calcula con el comando:&lt;br /&gt;
&lt;br /&gt;
u.grad(punto)&lt;br /&gt;
&lt;br /&gt;
Existen algoritmos más avanzados que hacen este proceso aún más rápido pero para cubrir nuestras necesidades la velocidad aportada por esta librería es suficiente.&lt;br /&gt;
&lt;br /&gt;
==Dibujo del mallado==&lt;br /&gt;
&lt;br /&gt;
En primer lugar es necesario dibujar la placa que se va a estudiar. &lt;br /&gt;
La placa se define en coordenadas cilíndricas (base física cilíndrica) con la siguiente parametrización: &amp;lt;math&amp;gt; ρ = u -&amp;gt; [0,2] ; θ = v -&amp;gt; [0, π]; z = 0&amp;lt;/math&amp;gt;. &lt;br /&gt;
En el caso de que la placa fuese más compleja, nuestro programa también aceptaría definirla mediante una función que tomando un punto como entrada, devuelva 1 o 0 dependiendo de si dicho punto se encuentra en la placa o no.&lt;br /&gt;
&lt;br /&gt;
Los ejes tomados para dibujar las gráficas han sido [−2, 2] × [0, 2] y se ha dibujado un mallado con el comando &amp;quot;wireframe&amp;quot;.&lt;br /&gt;
Por otra parte, el muestreo utilizado ha sido &amp;lt;math&amp;gt;h= \frac{1}{10}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Placa Nuestra.jpg|400x300px|miniaturadeimagen|centro|Placa representada]]&lt;br /&gt;
&lt;br /&gt;
==Campo de las temperaturas en la placa==&lt;br /&gt;
&lt;br /&gt;
===Dibujo de las curvas de nivel===&lt;br /&gt;
Una vez definida la función temperatura T(x,y) en cartesianas, una parametrización para la placa y habiendo elegido el número de curvas a representar, (20), mediante la función &amp;quot;contour&amp;quot; se han dibujado las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Curvas Temperatura.jpg|400x300px|miniaturadeimagen|centro|Curvas de nivel de la Temperatura]]&lt;br /&gt;
&lt;br /&gt;
===Máximo de temperatura===&lt;br /&gt;
Para obtener el máximo de la temperatura con precisión la función &amp;quot;dibujar2D&amp;quot; que empleamos para dibujar las gráficas devuelve el mayor valor e indica dicho punto mediante un aspa roja.&lt;br /&gt;
&lt;br /&gt;
===Dibujo del gradiente como campo vectorial (&amp;lt;math&amp;gt; \nabla &amp;lt;/math&amp;gt;T)===&lt;br /&gt;
De la función de la temperatura dada, se ha obtenido el gradiente: &amp;lt;math&amp;gt; 2x \vec i + 2 (y - 1) \vec j &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dibujado junto a las curvas de nivel, se observa fácilmente la perpendicularidad entre dichas curvas y los vectores representados.&lt;br /&gt;
Esto tiene sentido puesto que el gradiente indica la dirección de mayor crecimiento mientras que su perpendicular indica el crecimiento nulo. &lt;br /&gt;
Esta última dirección es, por tanto, tangente a las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Gradiente Nuestro.jpg|400x300px|miniaturadeimagen|centro|Gradiente]]&lt;br /&gt;
&lt;br /&gt;
==Tensiones y fuerzas==&lt;br /&gt;
&lt;br /&gt;
===Posición inicial y final de la placa===&lt;br /&gt;
&lt;br /&gt;
Como punto de partida se dibuja la posición inicial y final de la placa. &lt;br /&gt;
Los puntos de la posición final se han calculado sumando a cada punto de la placa inicial su vector desplazamiento dado por la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt;. &lt;br /&gt;
Además, restando a la placa final la media de los desplazamientos en todos los puntos se ha obtenido una gráfica que muestra únicamente las deformaciones que la placa experimenta.&lt;br /&gt;
De esta forma, permite ver que la placa final está achatada y deja de ser circular.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación placa inicial y final con deformación sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Comparación de la placa inicial y final con deformación de la placa sin desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El objetivo final es conocer el campo de fuerzas que ha producido este desplazamiento. &lt;br /&gt;
Para ello a partir del campo de desplazamientos se calculan las tensiones que experimenta la placa y a partir de éstas, el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
===Representación del campo vectorial de desplazamientos===&lt;br /&gt;
Tras definir la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt; en el código, y mediante el uso de la función &amp;quot;arrows&amp;quot; (gracias a que el campo no dispone de componente vertical), se obtiene la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
===Divergencia y rotacional===&lt;br /&gt;
&lt;br /&gt;
Calcular la divergencia y el rotacional del campo de desplazamientos es de gran utilidad, ya que estos aportan información muy valiosa sobre las características de la deformación que experimenta la placa. &lt;br /&gt;
&lt;br /&gt;
El rotacional mide cuánto rotan los puntos de la placa. Su módulo cuantifica la rotación, mientras que su dirección y sentido dan el eje de rotación.&lt;br /&gt;
La divergencia en cambio, mide cuánto cambia el área en un entrono de cada punto. &lt;br /&gt;
&lt;br /&gt;
La deformación de un entorno de un punto de la placa, no su desplazamiento, es por lo tanto la rotación y el cambio de tamaño de ese entorno. &lt;br /&gt;
&lt;br /&gt;
Para tener una mejor intuición de lo que esto significa, se ha dibujado el módulo del rotacional y la divergencia de una rotación de ángulo π/2, una escala de la placa del factor 2 y un desplazamiento sin deformación de dirección 2 &amp;lt;math&amp;gt; \vec i &amp;lt;/math&amp;gt;. En el desplazamiento como no hay deformación, el rotacional y la divergencia deben valer cero. &lt;br /&gt;
El rotacional es mayor que cero e igual en todos los puntos y la divergencia es cero. Esto se debe a que todos los puntos rotan por igual (π/2) y su área no cambia. En la escala por el factor 2, el rotacional debe ser nulo y la divergencia 4, ya que cada lado se duplica produciendo una cuadruplicación del área.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Explicación divergencia y rotacional.jpg|400x300px|miniaturadeimagen|centro|Explicación divergencia y rotacional]]&lt;br /&gt;
&lt;br /&gt;
====Divergencia del campo desplazamientos====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Calculando la divergencia de forma manual y con diferenciación automática, se ha concluido que esta es nula en cualquier punto: &amp;lt;math&amp;gt; ∇ ⋅ \vec u =  \frac{1}{ρ} [\frac{δ}{δρ} (ρ (\frac{ρ}{10} sen θ)) + \frac{δ}{δθ} (\frac{ρ}{5} cos θ) + \frac{δ}{δz} (ρ 0)] = 0 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lo que indica la divergencia es la variación del diferencial de área. En este caso concreto en que es nula, se puede apreciar en la gráfica del punto anterior como aunque los cuadrados del mallado de la placa puedan ser deformados mantienen el mismo tamaño, es decir, ni se dilatan ni se contraen.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Divergencia Nuestra.jpg|400x300px|miniaturadeimagen|centro|Divergencia del campo]]&lt;br /&gt;
&lt;br /&gt;
====Visualización del módulo del rotacional del campo desplazamiento====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mediante el cálculo manual se ha obtenido el siguiente rotacional: &amp;lt;math&amp;gt; V × \vec u = \frac{1}{ρ} \left| \begin{matrix} \vec e_ρ &amp;amp; ρ \vec e_θ &amp;amp; \vec e_z \\ \frac{δ}{δρ} &amp;amp; \frac{δ}{δθ} &amp;amp; \frac{δ}{δz} \\ \frac{ρ}{10} sen θ &amp;amp; ρ \frac{ρ}{5} cos θ &amp;amp; 0 \end{matrix} \right| = \frac{3}{10} cos(θ) \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto su módulo es: &amp;lt;math&amp;gt; |V × \vec u| = |\frac{3}{10} cos(θ)| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, de nuevo se utiliza diferenciación automática de forma que el valor del módulo del rotacional para cada punto, se calcula directamente a partir de la función del campo de desplazamientos como se aprecia en el código.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El resultado de representarlo sobre el plano XY es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Rotacional nuestro.jpg|400x300px|miniaturadeimagen|centro|Rotacional del campo desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El rotacional indica el giro experimentado por la placa en su deformación, lo que se puede apreciar en la representación anterior y teniendo en cuenta el punto 4.3.&lt;br /&gt;
Así, los extremos de la placa, que experimentan un giro, tienen el mayor valor del rotacional. &lt;br /&gt;
Cabe decir que estos valores tendrán signo contrario, pues los giros son opuestos.&lt;br /&gt;
Esto no se tiene en consideración para la representación gráfica, pues en ella buscamos el módulo del rotacional, que siempre es positivo.&lt;br /&gt;
&lt;br /&gt;
===Tensor de tensiones===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este apartado, sabiendo que nos encontramos en un medio lineal, isótropo y homogéneo (así lo indica el enunciado), la función del tensor de tensiones viene descrita de la siguiente forma: &amp;lt;math&amp;gt; σ = λ ∇ ⋅ \vec u 1 + 2 μ ε &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En dicha fórmula conocemos que los Coeficientes de Lamé (λ y μ) que dependen de las propiedades elásticas de cada material. Tomando en este caso que ambos son 1.&lt;br /&gt;
&lt;br /&gt;
La parte simétrica del tensor gradiente del campo  de deplazamientos, queda también definida de la siguiente manera: &amp;lt;math&amp;gt; ε(\vec u) = \frac{∇ \vec u + ∇ \vec u ^t}{2} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
De forma manual se ha obtenido que el gradiente del campo es &amp;lt;math&amp;gt; ∇ \vec u(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; - \frac{ρ}{10} cos θ &amp;amp; 0 \\ \frac{1}{5} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto, la matriz traspuesta del gradiente del campo es: &amp;lt;math&amp;gt; ∇ \vec u^t(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; \frac{1}{5} cos θ &amp;amp; 0 \\ - \frac{ρ}{10} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Resolviendo la parte simétrica del tensor gradiente de forma manual, se obtiene como resultado: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; cos θ (\frac{1}{10} - \frac{ρ}{20} ) &amp;amp; 0 \\ cos θ (\frac{1}{10} - \frac{ρ}{20}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De esta forma, se concluye que el tensor de tensiones viene representado de la siguiente forma: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{5} sen θ &amp;amp; cos θ (\frac{1}{5} - \frac{ρ}{10} ) &amp;amp; 0 \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Representación de las tensiones normales====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tensiones comparación.jpg|400x300px|miniaturadeimagen|centro|Representación de las tensiones normales]]&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_ρ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_ρ ⋅ σ ⋅ \vec e_ρ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; \frac {1}{5} sen θ \vec e_ρ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_θ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_θ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_θ ⋅ σ ⋅ \vec e_θ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_z, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt;  \vec e_z ⋅ σ ⋅ \vec e_z &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; 0 \vec e_z &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Tensiones tangenciales respecto al plano ortogonal &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este caso, simplemente se ha aplicado la fórmula correspondiente que es la siguiente: &amp;lt;math&amp;gt; |σ ⋅ \vec e_ρ - \vec e_ρ ⋅ σ ⋅ \vec e_ρ| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Desarrollando la fórmula: &amp;lt;math&amp;gt; \begin{pmatrix} \frac{1}{5} sen θ \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) \\ 0 \end{pmatrix} - \begin{pmatrix} \frac {1}{5} sen θ \\ 0 \\ 0 \end{pmatrix} =  cos θ (\frac {1}{5} - \frac {ρ}{10}) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación Tensiones tangenciales.jpg|400x300px|miniaturadeimagen|centro|Comparación Tensiones tangenciales]]&lt;br /&gt;
&lt;br /&gt;
===Tensión de Von Mises===&lt;br /&gt;
&lt;br /&gt;
La tensión de Von Mises viene determinada por la fórmula: &amp;lt;math&amp;gt; σ_{VM} = \sqrt{\frac{(\vec σ_1 - \vec σ_2)^2 + (\vec σ_2 - \vec σ_3)^2 + (\vec σ_3 - \vec σ_1)^2}{2}} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Puesto que cada punto de la placa lleva asociado un tensor de la tensión, siendo  &amp;lt;math&amp;gt; \vec σ_1, \vec σ_2, \vec σ_3;  &amp;lt;/math&amp;gt; los autovalores de dicha matriz, se debe ir punto a punto calculándolos, por tanto es necesario un bucle que rellene una matriz con los valores de la tensión Von Mises para cada punto. &lt;br /&gt;
&lt;br /&gt;
La tensión de Von Mises muestra los puntos donde se produciría la rotura de la placa. En este caso rompería la parte superior de la placa.&lt;br /&gt;
&lt;br /&gt;
La representación es la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tensión Von Mises.jpg|400x300px|miniaturadeimagen|centro|Tensión Von Mises]]&lt;br /&gt;
&lt;br /&gt;
===Fuerza causante del desplazamiento===&lt;br /&gt;
&lt;br /&gt;
Conociendo que la placa viene deformada por la función vectorial dada, se puede obtener la fuerza que motiva el desplazamiento. Esa viene definida por: &amp;lt;math&amp;gt; \vec F = - \nabla ⋅ \vec u &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El resultado de la fuerza obtenido manualmente es el descrito a continuación: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_ρ + \frac {1}{5} (\frac {1}{ρ} - 2) cos θ \vec e_θ &amp;lt;/math&amp;gt;. La componente según &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt; es nula.&lt;br /&gt;
&lt;br /&gt;
Calculado por diferenciación automática queda la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas]]&lt;br /&gt;
&lt;br /&gt;
Si de dibuja el campo de fuerzas y la las posiciones inicial y final no queda del todo claro que éste sea el campo que motiva el desplazamiento y la deformación de la placa. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas y desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de Fuerzas y desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
Si se dibuja la resultante de las fuerzas el desplazamiento de la placa queda explicado, mientras que dibujando únicamente la placa final deformada, sin considerar el desplazamiento y el campo de fuerzas, se pueden apreciar claramente que deformaciones como el achatamiento de la forma circular de la placa son causadas por el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Desplazamiento y resultante concampo de fuerzas sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas, desplazamiento y deformación de la placa]]&lt;br /&gt;
&lt;br /&gt;
==Anexo==&lt;br /&gt;
&lt;br /&gt;
===Librería de Julia desarrollada para el trabajo===&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Teoría de Campos]][[Categoría:TC21/22]]&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=47962</id>
		<title>Grupo B12 Trabajo 5: Estudio de tensiones sobre una placa mediante diferenciación automática</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=47962"/>
				<updated>2021-12-10T18:25:28Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: /* Introducción */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Estudio de tensiones sobre una placa mediante diferenciación automática. Grupo B12 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC21/22|2021-2022]] | Víctor Sillero González&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Rodrigo Vázquez Pérez }}&lt;br /&gt;
&lt;br /&gt;
El trabajo correspondiente a este grupo es el número 5, en particular consiste en el estudio de temperaturas, deformaciones y tensiones sobre una placa compuesta de medio anillo circular.&lt;br /&gt;
La peculiaridad de este trabajo radica en que se ha realizado mediante diferenciación automática gracias a una librería realizada por los componentes del grupo.&lt;br /&gt;
Dicho programa ha sido realizado en el leguaje de programación &amp;quot;Julia&amp;quot;, y por ende todo el desarrollo ha sido realizado mediante dicho lenguaje.&lt;br /&gt;
&lt;br /&gt;
La librería utilizada a lo largo de todo el trabajo queda adjunta en el anexo.&lt;br /&gt;
&lt;br /&gt;
En este caso los datos aportados por el enunciado han sido los siguientes:&lt;br /&gt;
* Placa plana que ocupa la mitad de un anillo circular centrado en el origen y comprendido entre los radios 1 y 2, en el plano y ≥ 0.&lt;br /&gt;
* Función temperatura en la placa: &amp;lt;math&amp;gt; T(x,y) = x^2 + (y-1)^2 &amp;lt;/math&amp;gt;.&lt;br /&gt;
* Campo de deformaciones: &amp;lt;math&amp;gt;\vec u(ρ,θ) = \frac{ρ}{10} sin(θ) + \frac{ρ}{5} cos(θ) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Julia Portada.png|400x300px|miniaturadeimagen|centro|Portada programa Julia]]&lt;br /&gt;
&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
Este trabajo tiene como objetivo el estudio de las tensiones y fuerzas que producen desplazamientos y deformaciones en una placa, así como su campo de temperaturas a partir de un campo de desplazamientos y una función escalar de temperaturas. Además, se va a estudiar el cálculo de derivadas y operadores diferenciales mediante métodos computacionales.&lt;br /&gt;
&lt;br /&gt;
=== Diferenciación automática===&lt;br /&gt;
====Métodos habituales: Aproximación numérica====&lt;br /&gt;
Normalmente cuando se quiere obtener el valor de la derivada de una función en un punto mediante un ordenador se realiza una aproximación a partir de la definición de derivada. $\frac{f(x+h) - f(x)}{h}$ dando un valor concreto lo menor posible para $h$.&lt;br /&gt;
Un ejemplo del método con la función $f(x) = x^{2}$ y $h = 10^{-10}$ en x = 3&lt;br /&gt;
h = 10^-10&lt;br /&gt;
f(x) = x^2&lt;br /&gt;
derivada = (f(3+h) - f(3)) / h&lt;br /&gt;
&lt;br /&gt;
El resultado dado no es exáctamente 6 pero se consiguen 6 decimales de precisión por lo que es una buena aproximación. Este algoritmo realiza 3 operaciones. Evaluar $f$ en $x + h$, evaluar $f$ en $x$ y dividir todo ello entre $h$.&lt;br /&gt;
&lt;br /&gt;
Un problema del método es si se emplea una $h$ demasiado pequeña puede dar problemas.&lt;br /&gt;
&lt;br /&gt;
Si se supera el número más pequeño que se puede expresar con el tipo de dato utilizado (Float64 en nuestro caso) el resultado mostrado será 0. Por lo tanto un manejo correcto de los valores de $h$ es esencial y complica el método bastante.&lt;br /&gt;
&lt;br /&gt;
====Números duales====&lt;br /&gt;
&lt;br /&gt;
El método empleado en este trabajo es exacto. No se realiza ninguna aproximación. Para ello es necesario definir un nuevo tipo de número distinto de los reales o los complejos, los números duales.&lt;br /&gt;
&lt;br /&gt;
Los números duales son números del tipo $a + b\epsilon$ siendo $a$ y $b$ números reales o duales. &lt;br /&gt;
&lt;br /&gt;
Denominamos parte real al número $a$ y parte derivada al número $b$&lt;br /&gt;
&lt;br /&gt;
Además se define la siguiente propiedad: $\epsilon \neq 0$ tal que $\epsilon^{2} = 0$. $\epsilon$ por lo tanto no es un número real.&lt;br /&gt;
&lt;br /&gt;
Las operaciones aritméticas básicas se definen de manera sencilla.&lt;br /&gt;
* Suma: $(a + b\epsilon) + (c + d\epsilon) = (a + c) + (b + d)\epsilon$&lt;br /&gt;
* Producto $(a + b\epsilon) * (c + d\epsilon) = ac + (bc + ad)\epsilon + (bd)^{2}\epsilon^{2}$, como $\epsilon^{2} = 0$ el resultado final es $(a + b\epsilon) * (c + d\epsilon) = ac + (bc + ad)\epsilon$&lt;br /&gt;
&lt;br /&gt;
====Series de Taylor y números duales====&lt;br /&gt;
Sea $f$ una función cualquiera y $a$ un punto del dominio de $f$ la serie de Taylor de $f$ en el punto $a$ es&lt;br /&gt;
&lt;br /&gt;
$f(x) = f(a) + \frac{f'(a)}{1!}(x-a) + \frac{f''(a)}{2!}(x-a)^{2} + ... = \sum_{i=0}^\infty \frac{f^{i}(a)}{i!}(x-a)^{i}$&lt;br /&gt;
&lt;br /&gt;
Si se evalúa la serie de Taylor de $f$ en el valor dual $x = a + \epsilon$ se obtiene &lt;br /&gt;
&lt;br /&gt;
$f(a + \epsilon) = f(a) + f'(a)\epsilon + \frac{f''(a)}{2!}\epsilon^{2} + ...$ y como $\epsilon^{2} = 0$ el resultado final es&lt;br /&gt;
&lt;br /&gt;
$f(a + \epsilon) = f(a) + f'(a)\epsilon$&lt;br /&gt;
&lt;br /&gt;
La parte real de $f(a + \epsilon)$ es $f$ evaluado en $a$, es decir $f(a)$ y la parte derivada de $f(a + \epsilon)$ es la derivada de $f$ evaluada en $a$, es decir $f'(a)$.&lt;br /&gt;
&lt;br /&gt;
====Cálculo de drivadas por números duales====&lt;br /&gt;
&lt;br /&gt;
Gracias a las propiedades comentadas en la sección anterior podemos establecer un nuevo método esta vez exacto para calcular derivadas. &lt;br /&gt;
&lt;br /&gt;
$f'(a) = parte Derivada[f(a + \epsilon)]$&lt;br /&gt;
&lt;br /&gt;
Este método consiste en únicamtente una operación siendo no solamente exacto sino además más rápido que el método aproximado.&lt;br /&gt;
&lt;br /&gt;
====Programación====&lt;br /&gt;
&lt;br /&gt;
En primer lugar se define un nuevo tipo de dato Dual, con las propiedades de parte real $x$ y parte derivada $\epsilon$.&lt;br /&gt;
&lt;br /&gt;
mutable struct Dual{T&amp;lt;:Real} &amp;lt;: Real &lt;br /&gt;
    x::T&lt;br /&gt;
    ϵ::T&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Ahora se definen las operaciones básicas sobre el tipo de dato dual. Aquí se muestran algunas pero se definieron muchas más.&lt;br /&gt;
&lt;br /&gt;
#negacion &lt;br /&gt;
Base.:-(a::Dual) = Dual(-1 * a.x, -1* a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#suma&lt;br /&gt;
Base.:+(a::Dual, b::Dual) = Dual(a.x + b.x, a.ϵ .+ b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#diferencia&lt;br /&gt;
Base.:-(a::Dual, b::Dual) = Dual(a.x - b.x, a.ϵ - b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#producto&lt;br /&gt;
Base.:*(a::Dual, b::Dual) = Dual(a.x * b.x, b.x * a.ϵ + a.x * b.ϵ)&lt;br /&gt;
&lt;br /&gt;
#reciproco &lt;br /&gt;
recip = a::Dual -&amp;gt; Dual(1. / a.x, (-1* a.ϵ) / (a.x ^2))&lt;br /&gt;
&lt;br /&gt;
#cociente&lt;br /&gt;
Base.:/(a::Dual, b::Dual) = a * recip(b)&lt;br /&gt;
&lt;br /&gt;
#exponencial, potencia y raiz_cuadrada&lt;br /&gt;
Base.:exp(a::Dual) = exp(a.x) * Dual(1.,a.ϵ)&lt;br /&gt;
&lt;br /&gt;
#logaritmo &lt;br /&gt;
Base.:log(a::Dual) = Dual(log(a.x), a.ϵ / a.x)&lt;br /&gt;
&lt;br /&gt;
#trigonometria&lt;br /&gt;
Base.:sin(d::Dual) = Dual(sin(d.x), d.ϵ * cos(d.x))&lt;br /&gt;
Base.:cos(d::Dual) = Dual(cos(d.x), - d.ϵ * sin(d.x))&lt;br /&gt;
&lt;br /&gt;
Y ya podríamos calcular derivadas. Por ejeplo creando la función f(x) = x^2 y evaluándola en el punto Dual(4, 1) se obtiene el número Dual(16, 8), 8 es la derivada de x^2 en el punto 4.&lt;br /&gt;
&lt;br /&gt;
f(x) = x^2 &lt;br /&gt;
f(Dual(4., 1.))&lt;br /&gt;
&lt;br /&gt;
A partir de este código se programa una librería capaz de calcular gradientes, divergencias y rotacionales de cualquier función.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo el tensor gradiente de una función u en un punto en la librería se calcula con el comando:&lt;br /&gt;
&lt;br /&gt;
u.grad(punto)&lt;br /&gt;
&lt;br /&gt;
Existen algoritmos más avanzados que hacen este proceso aún más rápido pero para cubrir nuestras necesidades la velocidad aportada por esta librería es suficiente.&lt;br /&gt;
&lt;br /&gt;
==Dibujo del mallado==&lt;br /&gt;
&lt;br /&gt;
En primer lugar es necesario dibujar la placa que se va a estudiar. &lt;br /&gt;
La placa se define en coordenadas cilíndricas (base física cilíndrica) con la siguiente parametrización: &amp;lt;math&amp;gt; ρ = u -&amp;gt; [0,2] ; θ = v -&amp;gt; [0, π]; z = 0&amp;lt;/math&amp;gt;. &lt;br /&gt;
En el caso de que la placa fuese más compleja, nuestro programa también aceptaría definirla mediante una función que tomando un punto como entrada, devuelva 1 o 0 dependiendo de si dicho punto se encuentra en la placa o no.&lt;br /&gt;
&lt;br /&gt;
Los ejes tomados para dibujar las gráficas han sido [−2, 2] × [0, 2] y se ha dibujado un mallado con el comando &amp;quot;wireframe&amp;quot;.&lt;br /&gt;
Por otra parte, el muestreo utilizado ha sido &amp;lt;math&amp;gt;h= \frac{1}{10}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Placa Nuestra.jpg|400x300px|miniaturadeimagen|centro|Placa representada]]&lt;br /&gt;
&lt;br /&gt;
==Campo de las temperaturas en la placa==&lt;br /&gt;
&lt;br /&gt;
===Dibujo de las curvas de nivel===&lt;br /&gt;
Una vez definida la función temperatura T(x,y) en cartesianas, una parametrización para la placa y habiendo elegido el número de curvas a representar, (20), mediante la función &amp;quot;contour&amp;quot; se han dibujado las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Curvas Temperatura.jpg|400x300px|miniaturadeimagen|centro|Curvas de nivel de la Temperatura]]&lt;br /&gt;
&lt;br /&gt;
===Máximo de temperatura===&lt;br /&gt;
Para obtener el máximo de la temperatura con precisión la función &amp;quot;dibujar2D&amp;quot; que empleamos para dibujar las gráficas devuelve el mayor valor e indica dicho punto mediante un aspa roja.&lt;br /&gt;
&lt;br /&gt;
===Dibujo del gradiente como campo vectorial (&amp;lt;math&amp;gt; \nabla &amp;lt;/math&amp;gt;T)===&lt;br /&gt;
De la función de la temperatura dada, se ha obtenido el gradiente: &amp;lt;math&amp;gt; 2x \vec i + 2 (y - 1) \vec j &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dibujado junto a las curvas de nivel, se observa fácilmente la perpendicularidad entre dichas curvas y los vectores representados.&lt;br /&gt;
Esto tiene sentido puesto que el gradiente indica la dirección de mayor crecimiento mientras que su perpendicular indica el crecimiento nulo. &lt;br /&gt;
Esta última dirección es, por tanto, tangente a las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Gradiente Nuestro.jpg|400x300px|miniaturadeimagen|centro|Gradiente]]&lt;br /&gt;
&lt;br /&gt;
==Tensiones y fuerzas==&lt;br /&gt;
&lt;br /&gt;
===Posición inicial y final de la placa===&lt;br /&gt;
&lt;br /&gt;
Como punto de partida se dibuja la posición inicial y final de la placa. &lt;br /&gt;
Los puntos de la posición final se han calculado sumando a cada punto de la placa inicial su vector desplazamiento dado por la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt;. &lt;br /&gt;
Además, restando a la placa final la media de los desplazamientos en todos los puntos se ha obtenido una gráfica que muestra únicamente las deformaciones que la placa experimenta.&lt;br /&gt;
De esta forma, permite ver que la placa final está achatada y deja de ser circular.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación placa inicial y final con deformación sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Comparación de la placa inicial y final con deformación de la placa sin desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El objetivo final es conocer el campo de fuerzas que ha producido este desplazamiento. &lt;br /&gt;
Para ello a partir del campo de desplazamientos se calculan las tensiones que experimenta la placa y a partir de éstas, el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
===Representación del campo vectorial de desplazamientos===&lt;br /&gt;
Tras definir la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt; en el código, y mediante el uso de la función &amp;quot;arrows&amp;quot; (gracias a que el campo no dispone de componente vertical), se obtiene la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
===Divergencia y rotacional===&lt;br /&gt;
&lt;br /&gt;
Calcular la divergencia y el rotacional del campo de desplazamientos es de gran utilidad, ya que estos aportan información muy valiosa sobre las características de la deformación que experimenta la placa. &lt;br /&gt;
&lt;br /&gt;
El rotacional mide cuánto rotan los puntos de la placa. Su módulo cuantifica la rotación, mientras que su dirección y sentido dan el eje de rotación.&lt;br /&gt;
La divergencia en cambio, mide cuánto cambia el área en un entrono de cada punto. &lt;br /&gt;
&lt;br /&gt;
La deformación de un entorno de un punto de la placa, no su desplazamiento, es por lo tanto la rotación y el cambio de tamaño de ese entorno. &lt;br /&gt;
&lt;br /&gt;
Para tener una mejor intuición de lo que esto significa, se ha dibujado el módulo del rotacional y la divergencia de una rotación de ángulo π/2, una escala de la placa del factor 2 y un desplazamiento sin deformación de dirección 2 &amp;lt;math&amp;gt; \vec i &amp;lt;/math&amp;gt;. En el desplazamiento como no hay deformación, el rotacional y la divergencia deben valer cero. &lt;br /&gt;
El rotacional es mayor que cero e igual en todos los puntos y la divergencia es cero. Esto se debe a que todos los puntos rotan por igual (π/2) y su área no cambia. En la escala por el factor 2, el rotacional debe ser nulo y la divergencia 4, ya que cada lado se duplica produciendo una cuadruplicación del área.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Explicación divergencia y rotacional.jpg|400x300px|miniaturadeimagen|centro|Explicación divergencia y rotacional]]&lt;br /&gt;
&lt;br /&gt;
====Divergencia del campo desplazamientos====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Calculando la divergencia de forma manual y con diferenciación automática, se ha concluido que esta es nula en cualquier punto: &amp;lt;math&amp;gt; ∇ ⋅ \vec u =  \frac{1}{ρ} [\frac{δ}{δρ} (ρ (\frac{ρ}{10} sen θ)) + \frac{δ}{δθ} (\frac{ρ}{5} cos θ) + \frac{δ}{δz} (ρ 0)] = 0 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lo que indica la divergencia es la variación del diferencial de área. En este caso concreto en que es nula, se puede apreciar en la gráfica del punto anterior como aunque los cuadrados del mallado de la placa puedan ser deformados mantienen el mismo tamaño, es decir, ni se dilatan ni se contraen.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Divergencia Nuestra.jpg|400x300px|miniaturadeimagen|centro|Divergencia del campo]]&lt;br /&gt;
&lt;br /&gt;
====Visualización del módulo del rotacional del campo desplazamiento====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mediante el cálculo manual se ha obtenido el siguiente rotacional: &amp;lt;math&amp;gt; V × \vec u = \frac{1}{ρ} \left| \begin{matrix} \vec e_ρ &amp;amp; ρ \vec e_θ &amp;amp; \vec e_z \\ \frac{δ}{δρ} &amp;amp; \frac{δ}{δθ} &amp;amp; \frac{δ}{δz} \\ \frac{ρ}{10} sen θ &amp;amp; ρ \frac{ρ}{5} cos θ &amp;amp; 0 \end{matrix} \right| = \frac{3}{10} cos(θ) \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto su módulo es: &amp;lt;math&amp;gt; |V × \vec u| = |\frac{3}{10} cos(θ)| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, de nuevo se utiliza diferenciación automática de forma que el valor del módulo del rotacional para cada punto, se calcula directamente a partir de la función del campo de desplazamientos como se aprecia en el código.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El resultado de representarlo sobre el plano XY es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Rotacional nuestro.jpg|400x300px|miniaturadeimagen|centro|Rotacional del campo desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El rotacional indica el giro experimentado por la placa en su deformación, lo que se puede apreciar en la representación anterior y teniendo en cuenta el punto 4.3.&lt;br /&gt;
Así, los extremos de la placa, que experimentan un giro, tienen el mayor valor del rotacional. &lt;br /&gt;
Cabe decir que estos valores tendrán signo contrario, pues los giros son opuestos.&lt;br /&gt;
Esto no se tiene en consideración para la representación gráfica, pues en ella buscamos el módulo del rotacional, que siempre es positivo.&lt;br /&gt;
&lt;br /&gt;
===Tensor de tensiones===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este apartado, sabiendo que nos encontramos en un medio lineal, isótropo y homogéneo (así lo indica el enunciado), la función del tensor de tensiones viene descrita de la siguiente forma: &amp;lt;math&amp;gt; σ = λ ∇ ⋅ \vec u 1 + 2 μ ε &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En dicha fórmula conocemos que los Coeficientes de Lamé (λ y μ) que dependen de las propiedades elásticas de cada material. Tomando en este caso que ambos son 1.&lt;br /&gt;
&lt;br /&gt;
La parte simétrica del tensor gradiente del campo  de deplazamientos, queda también definida de la siguiente manera: &amp;lt;math&amp;gt; ε(\vec u) = \frac{∇ \vec u + ∇ \vec u ^t}{2} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
De forma manual se ha obtenido que el gradiente del campo es &amp;lt;math&amp;gt; ∇ \vec u(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; - \frac{ρ}{10} cos θ &amp;amp; 0 \\ \frac{1}{5} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto, la matriz traspuesta del gradiente del campo es: &amp;lt;math&amp;gt; ∇ \vec u^t(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; \frac{1}{5} cos θ &amp;amp; 0 \\ - \frac{ρ}{10} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Resolviendo la parte simétrica del tensor gradiente de forma manual, se obtiene como resultado: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; cos θ (\frac{1}{10} - \frac{ρ}{20} ) &amp;amp; 0 \\ cos θ (\frac{1}{10} - \frac{ρ}{20}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De esta forma, se concluye que el tensor de tensiones viene representado de la siguiente forma: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{5} sen θ &amp;amp; cos θ (\frac{1}{5} - \frac{ρ}{10} ) &amp;amp; 0 \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Representación de las tensiones normales====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tensiones comparación.jpg|400x300px|miniaturadeimagen|centro|Representación de las tensiones normales]]&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_ρ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_ρ ⋅ σ ⋅ \vec e_ρ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; \frac {1}{5} sen θ \vec e_ρ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_θ &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_θ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_θ ⋅ σ ⋅ \vec e_θ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt;=====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_z, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt;  \vec e_z ⋅ σ ⋅ \vec e_z &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; 0 \vec e_z &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Tensiones tangenciales respecto al plano ortogonal &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este caso, simplemente se ha aplicado la fórmula correspondiente que es la siguiente: &amp;lt;math&amp;gt; |σ ⋅ \vec e_ρ - \vec e_ρ ⋅ σ ⋅ \vec e_ρ| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Desarrollando la fórmula: &amp;lt;math&amp;gt; \begin{pmatrix} \frac{1}{5} sen θ \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) \\ 0 \end{pmatrix} - \begin{pmatrix} \frac {1}{5} sen θ \\ 0 \\ 0 \end{pmatrix} =  cos θ (\frac {1}{5} - \frac {ρ}{10}) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación Tensiones tangenciales.jpg|400x300px|miniaturadeimagen|centro|Comparación Tensiones tangenciales]]&lt;br /&gt;
&lt;br /&gt;
===Tensión de Von Mises===&lt;br /&gt;
&lt;br /&gt;
La tensión de Von Mises viene determinada por la fórmula: &amp;lt;math&amp;gt; σ_{VM} = \sqrt{\frac{(\vec σ_1 - \vec σ_2)^2 + (\vec σ_2 - \vec σ_3)^2 + (\vec σ_3 - \vec σ_1)^2}{2}} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Puesto que cada punto de la placa lleva asociado un tensor de la tensión, siendo  &amp;lt;math&amp;gt; \vec σ_1, \vec σ_2, \vec σ_3;  &amp;lt;/math&amp;gt; los autovalores de dicha matriz, se debe ir punto a punto calculándolos, por tanto es necesario un bucle que rellene una matriz con los valores de la tensión Von Mises para cada punto. &lt;br /&gt;
&lt;br /&gt;
La tensión de Von Mises muestra los puntos donde se produciría la rotura de la placa. En este caso rompería la parte superior de la placa.&lt;br /&gt;
&lt;br /&gt;
La representación es la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tensión Von Mises.jpg|400x300px|miniaturadeimagen|centro|Tensión Von Mises]]&lt;br /&gt;
&lt;br /&gt;
===Fuerza causante del desplazamiento===&lt;br /&gt;
&lt;br /&gt;
Conociendo que la placa viene deformada por la función vectorial dada, se puede obtener la fuerza que motiva el desplazamiento. Esa viene definida por: &amp;lt;math&amp;gt; \vec F = - \nabla ⋅ \vec u &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El resultado de la fuerza obtenido manualmente es el descrito a continuación: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_ρ + \frac {1}{5} (\frac {1}{ρ} - 2) cos θ \vec e_θ &amp;lt;/math&amp;gt;. La componente según &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt; es nula.&lt;br /&gt;
&lt;br /&gt;
Calculado por diferenciación automática queda la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas]]&lt;br /&gt;
&lt;br /&gt;
Si de dibuja el campo de fuerzas y la las posiciones inicial y final no queda del todo claro que éste sea el campo que motiva el desplazamiento y la deformación de la placa. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas y desplazamientos.jpg|400x300px|miniaturadeimagen|centro|Campo de Fuerzas y desplazamientos]]&lt;br /&gt;
&lt;br /&gt;
Si se dibuja la resultante de las fuerzas el desplazamiento de la placa queda explicado, mientras que dibujando únicamente la placa final deformada, sin considerar el desplazamiento y el campo de fuerzas, se pueden apreciar claramente que deformaciones como el achatamiento de la forma circular de la placa son causadas por el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Desplazamiento y resultante concampo de fuerzas sin desplazamiento.jpg|400x300px|miniaturadeimagen|centro|Campo de fuerzas, desplazamiento y deformación de la placa]]&lt;br /&gt;
&lt;br /&gt;
==Anexo==&lt;br /&gt;
&lt;br /&gt;
===Librería de Julia desarrollada para el trabajo===&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Teoría de Campos]][[Categoría:TC21/22]]&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=47904</id>
		<title>Grupo B12 Trabajo 5: Estudio de tensiones sobre una placa mediante diferenciación automática</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Grupo_B12_Trabajo_5:_Estudio_de_tensiones_sobre_una_placa_mediante_diferenciaci%C3%B3n_autom%C3%A1tica&amp;diff=47904"/>
				<updated>2021-12-10T16:17:49Z</updated>
		
		<summary type="html">&lt;p&gt;MiguelUrena: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Estudio de tensiones sobre una placa mediante diferenciación automática. Grupo B12 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC21/22|2021-2022]] | Víctor Sillero González&amp;lt;br /&amp;gt;Miguel Ureña Pliego&amp;lt;br /&amp;gt;Rodrigo Vázquez Pérez }}&lt;br /&gt;
&lt;br /&gt;
El trabajo correspondiente a este grupo es el número 5, en particular consiste en el estudio de temperaturas, deformaciones y tensiones sobre una placa compuesta de medio anillo circular.&lt;br /&gt;
La peculiaridad de este trabajo radica en que se ha realizado mediante diferenciación automática gracias a una librería realizada por los componentes del grupo.&lt;br /&gt;
Dicho programa ha sido realizado en el leguaje de programación &amp;quot;Julia&amp;quot;, y por ende todo el desarrollo ha sido realizado mediante dicho lenguaje.&lt;br /&gt;
&lt;br /&gt;
La librería utilizada a lo largo de todo el trabajo queda adjunta en el anexo.&lt;br /&gt;
&lt;br /&gt;
En este caso los datos aportados por el enunciado han sido los siguientes:&lt;br /&gt;
* Placa plana que ocupa la mitad de un anillo circular centrado en el origen y comprendido entre los radios 1 y 2, en el plano y ≥ 0.&lt;br /&gt;
* Función temperatura en la placa: &amp;lt;math&amp;gt; T(x,y) = x^2 + (y-1)^2 &amp;lt;/math&amp;gt;.&lt;br /&gt;
* Campo de deformaciones: &amp;lt;math&amp;gt;\vec u(ρ,θ) = \frac{ρ}{10} sin(θ) + \frac{ρ}{5} cos(θ) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Julia Portada.png|miniaturadeimagen|centro|Portada programa Julia]]&lt;br /&gt;
&lt;br /&gt;
==Introducción== &lt;br /&gt;
&lt;br /&gt;
Este trabajo tiene como objetivo el estudio de las tensiones y fuerzas que producen desplazamientos y deformaciones en una placa, así como su campo de temperaturas a partir de un campo de desplazamientos y una función escalar de temperaturas. Además se va a estudiar el cálculo de derivadas y operadores diferenciales mediante métodos computacionales. &lt;br /&gt;
&lt;br /&gt;
==Dibujo del mallado==&lt;br /&gt;
&lt;br /&gt;
En primer lugar es necesario dibujar la placa que se va a estudiar. &lt;br /&gt;
La placa se define en coodenadas cilíndricas (base física cilíndrica) con la siguiente parametrización. &amp;lt;math&amp;gt; ρ = u -&amp;gt; [0,2] ; θ = v -&amp;gt; [0,pi]; z = 0&amp;lt;/math&amp;gt;. Si la placa fuera más compleja, el nuestro programa acepta también definir la placa mediante una función que tomando un punto como entrada devuelva 1 o 0 si dicho punto se encuentra en la placa o no.&lt;br /&gt;
Los ejes tomados para dibujar las gráficas han sido [−2, 2] × [0, 2] y se ha dibujado un mallado con el comando wireframe.&lt;br /&gt;
Por otra parte, el muestro ha sido &amp;lt;math&amp;gt;h= \frac{1}{10}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Placa Nuestra.jpg|miniaturadeimagen|centro|Placa representada]]&lt;br /&gt;
&lt;br /&gt;
==Campo de las temperaturas en la placa==&lt;br /&gt;
&lt;br /&gt;
===Dibujo de las curvas de nivel===&lt;br /&gt;
Una vez definida la función temperatura T(x,y) en cartesianas, una parametrización para la placa y habiendo elegido el número de curvas a representar, (20), mediante la función &amp;quot;contour&amp;quot; se han dibujado las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Curvas Temperatura.jpg|miniaturadeimagen|centro|Curvas de nivel de la Temperatura]]&lt;br /&gt;
&lt;br /&gt;
===Máximo de temperatura===&lt;br /&gt;
Para obtener el máximo de la temperatura con precisión la función dibujar2D que empleamos para dibujar las gráficas devuelve el mayor valor e indica dicho punto mediante un aspa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Dibujo del gradiente como campo vectorial (&amp;lt;math&amp;gt; \nabla &amp;lt;/math&amp;gt;T)===&lt;br /&gt;
De la función de la temperatura dada, se ha obtenido el gradiente: &amp;lt;math&amp;gt; 2x \vec i + 2 (y - 1) \vec j &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dibujado junto a las curvas de nivel, se observa fácilmente la perpendicularidad entre dichas curvas y los vectores representados.&lt;br /&gt;
Esto tiene sentido puesto que el gradiente indica la dirección de mayor crecimiento mientras que su perpendicular indica el crecimiento nulo. Esta última dirección es por tanto tangente a las curvas de nivel.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Gradiente Nuestro.jpg|miniaturadeimagen|centro|Gradiente]]&lt;br /&gt;
&lt;br /&gt;
==Tensiones y fuerzas==&lt;br /&gt;
&lt;br /&gt;
===Posición inicial y final de la placa===&lt;br /&gt;
&lt;br /&gt;
Como punto de partida se dibuja la posición incial y final de la placa. Los puntos de la posición final se calculan sumando a cada punto de la placa inicial su vector desplazamiento dado por la función u. Además restando a la placa final la media de los desplazamientos en todos los puntos se obtiene una gráfica que muestra únicamente las deformaciones que la placa experimenta permitiendo ver, por ejemplo que la placa final está achatada y deja de ser circular.&lt;br /&gt;
&lt;br /&gt;
#Añadir imagen posición inicial y final&lt;br /&gt;
&lt;br /&gt;
El objetivo final es conocer el campo de fuerzas que ha producido este deplazamiento. Para ello a partir del campo de desplazamientos se calculan las tensiones que experimenta la placa y a partir de éstas, el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
===Representación del campo vectorial de desplazamientos===&lt;br /&gt;
Tras definir la función &amp;lt;math&amp;gt; \vec u &amp;lt;/math&amp;gt; en el código, y mediante el uso de la función &amp;quot;arrows&amp;quot; (gracias a que el campo no dispone de componente vertical), se obtiene la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
===Divergencia y rotacional===&lt;br /&gt;
&lt;br /&gt;
Puede ser de gran utilidad calcular la diivergencia y el rotacional del campo de desplazamientos, ya que estos aportan información valiosa sobre las características de la deformación que experimenta la placa. &lt;br /&gt;
El rotacional mide cuánto rotan los puntos de la placa. Su módulo cuantifica la rotación mientras que su dirección y sentido dan el eje de rotación.&lt;br /&gt;
La divergencia mide cuánto cambia el área en un entrono de cada punto. La deformación de un entorno de un punto de la placa, no su desplazamiento, es por lo tanto la rotación y el cambio de tamaño de ese entorno. &lt;br /&gt;
Para tener una mejor intuición de lo que ésto significa se ha dibujado el módulo del rotacional y la divergencia de una rotación de ángulo pi/2, una escala de la placa del factor 2 y un desplazamiento sin deformación de dirección 2i. En el desplazamiento sin deformación rotacional y divergencia deben valer cero. El la rotación el rotacional el mayor que cero e igual en todos los puntos y la divergencia, cero. Esto se debe a que todos los puntos rotan por igual (pi/2) y su área no cambia. En la escala por el factor 2, el rotacional debe ser nulo y la divergencia 4, ya que cada lado se duplica produciendo una cuadruplicación del área.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Explicación divergencia y rotacional.jpg|miniaturadeimagen|centro|Explicación divergencia y rotacional]]&lt;br /&gt;
&lt;br /&gt;
===Divergencia del campo desplazamientos===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Calculando la divergencia de forma manual y con diferenciación automática, se ha concluido que esta es nula en cualquier punto: &amp;lt;math&amp;gt; ∇ ⋅ \vec u =  \frac{1}{ρ} [\frac{δ}{δρ} (ρ (\frac{ρ}{10} sen θ)) + \frac{δ}{δθ} (\frac{ρ}{5} cos θ) + \frac{δ}{δz} (ρ 0)] = 0 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lo que indica la divergencia es la variación del diferencial de área. En este caso concreto en que es nula, se puede apreciar en la gráfica del apartadao anterior como aunque los cuadrados del mallado de la placa puedan ser deformados mantienen el mismo tamaño, ni se dilatan ni se contraen.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Divergencia Nuestra.jpg|miniaturadeimagen|centro|Divergencia del campo]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Visualización del módulo del rotacional del campo desplazamiento===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mediante el cálculo manual se ha obtenido el siguiente rotacional: &amp;lt;math&amp;gt; V × \vec u = \frac{1}{ρ} \left| \begin{matrix} \vec e_ρ &amp;amp; ρ \vec e_θ &amp;amp; \vec e_z \\ \frac{δ}{δρ} &amp;amp; \frac{δ}{δθ} &amp;amp; \frac{δ}{δz} \\ \frac{ρ}{10} sen θ &amp;amp; ρ \frac{ρ}{5} cos θ &amp;amp; 0 \end{matrix} \right| = \frac{3}{10} cos(θ) \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto su módulo es: &amp;lt;math&amp;gt; |V × \vec u| = |\frac{3}{10} cos(θ)| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, de nuevo se utiliza diferenciación automática de forma que el valor del módulo del rotacional para cada punto, se calcula directamente a partir de la función del campo de desplazamientos como se aprecia en el código.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El resultado de representarlo sobre el plano XY es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Rotacional nuestro.jpg|miniaturadeimagen|centro|Rotacional del campo desplazamiento]]&lt;br /&gt;
&lt;br /&gt;
El rotacional indica el giro experimentado por la placa en su deformación, lo que se puede apreciar rn la representación anterior y teniendo en cuenta el apartado .......&lt;br /&gt;
Así, los extremos de la placa, que experimentan un giro, tienen el mayor valor del rotacional. Cabe decir que estos valores tendrán signo contrario, pues los giros son opuestos.&lt;br /&gt;
Esto no se tiene en consideración para la representación gráfica pues en ella buscamos el módulo del rotacional, que siempre es positivo.&lt;br /&gt;
&lt;br /&gt;
===Tensor de tensiones===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este apartado, sabiendo que nos encontramos en un medio lineal, isótropo y homogéneo (así lo indica el enunciado), la función del tensor de tensiones viene descrita de la siguiente forma: &amp;lt;math&amp;gt; σ = λ ∇ ⋅ \vec u 1 + 2 μ ε &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En dicha fórmula conocemos que los Coeficientes de Lamé (λ y μ) que dependen de las propiedades elásticas de cada material. Tomando en este caso que ambos son 1.&lt;br /&gt;
&lt;br /&gt;
La parte simétrica del tensor gradiente del campo  de deplazamientos, queda también definida de la siguiente manera: &amp;lt;math&amp;gt; ε(\vec u) = \frac{∇ \vec u + ∇ \vec u ^t}{2} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
De forma manual se ha obtenido que el gradiente del campo es &amp;lt;math&amp;gt; ∇ \vec u(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; - \frac{ρ}{10} cos θ &amp;amp; 0 \\ \frac{1}{5} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por tanto, la matriz traspuesta del gradiente del campo es: &amp;lt;math&amp;gt; ∇ \vec u^t(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; \frac{1}{5} cos θ &amp;amp; 0 \\ - \frac{ρ}{10} cos θ &amp;amp; - \frac{ρ}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp; 0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Resolviendo la parte simétrica del tensor gradiente de forma manual, se obtiene como resultado: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{10} sen θ &amp;amp; cos θ (\frac{1}{10} - \frac{ρ}{20} ) &amp;amp; 0 \\ cos θ (\frac{1}{10} - \frac{ρ}{20}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De esta forma, se concluye que el tensor de tensiones viene representado de la siguiente forma: &amp;lt;math&amp;gt; ε_{ij}(ρ,θ)=\begin{pmatrix} \frac{1}{5} sen θ &amp;amp; cos θ (\frac{1}{5} - \frac{ρ}{10} ) &amp;amp; 0 \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) &amp;amp; - \frac{1}{10} sen θ &amp;amp; 0 \\ 0 &amp;amp; 0 &amp;amp;0 \end{pmatrix}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Representación de las tensiones normales===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tensiones comparación.jpg|miniaturadeimagen|centro|Representación de las tensiones normales]]&lt;br /&gt;
&lt;br /&gt;
====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_ρ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_ρ ⋅ σ ⋅ \vec e_ρ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; \frac {1}{5} sen θ \vec e_ρ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_θ &amp;lt;/math&amp;gt;====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_θ, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt; \vec e_θ ⋅ σ ⋅ \vec e_θ &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_θ &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Tensión normal en el eje &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt;====&lt;br /&gt;
Conociendo que las tensiones en el eje &amp;lt;math&amp;gt; \vec e_z, &amp;lt;/math&amp;gt; son &amp;lt;math&amp;gt;  \vec e_z ⋅ σ ⋅ \vec e_z &amp;lt;/math&amp;gt;, calculándolo de forma manual se obtiene el siguiente resultado: &amp;lt;math&amp;gt; 0 \vec e_z &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Tensiones tangenciales respecto al plano ortogonal &amp;lt;math&amp;gt; \vec e_ρ &amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este apartado, simplemente se ha aplicado la fórmula correspondiente que es la siguiente: &amp;lt;math&amp;gt; |σ ⋅ \vec e_ρ - \vec e_ρ ⋅ σ ⋅ \vec e_ρ| &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Desarrollando la fórmula: &amp;lt;math&amp;gt; \begin{pmatrix} \frac{1}{5} sen θ \\ cos θ (\frac{1}{5} - \frac{ρ}{10}) \\ 0 \end{pmatrix} - \begin{pmatrix} \frac {1}{5} sen θ \\ 0 \\ 0 \end{pmatrix} =  cos θ (\frac {1}{5} - \frac {ρ}{10}) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Comparación Tensiones tangenciales.jpg|miniaturadeimagen|centro|Comparación Tensiones tangenciales]]&lt;br /&gt;
&lt;br /&gt;
===Tensión de Von Mises===&lt;br /&gt;
&lt;br /&gt;
La tensión de Von Mises viene determinada por la fórmula: &amp;lt;math&amp;gt; σ_{VM} = \sqrt{\frac{(\vec σ_1 - \vec σ_2)^2 + (\vec σ_2 - \vec σ_3)^2 + (\vec σ_3 - \vec σ_1)^2}{2}} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Puesto que cada punto de la placa lleva asociado un tensor de la tensión, siendo  &amp;lt;math&amp;gt; \vec σ_1, \vec σ_2, \vec σ_3;  &amp;lt;/math&amp;gt; los autovalores de dicha matriz, se debe ir punto a punto calculándolos, por tanto es necesario un bucle que rellene una matriz con los valores de la tensión Von Mises para cada punto. La tensión de Von Mises muestra los puntos donde se produciría la rotura de la placa. En este caso rompería la parte superior de la placa.&lt;br /&gt;
&lt;br /&gt;
La representación es la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Tensión Von Mises.jpg|miniaturadeimagen|centro|Tensión Von Mises]]&lt;br /&gt;
&lt;br /&gt;
===Fuerza causante del desplazamiento===&lt;br /&gt;
&lt;br /&gt;
Conociendo que la placa viene deformada por la función vectorial dada, se puede obtener la fuerza que motiva el desplazamiento. Esa viene definida por: &amp;lt;math&amp;gt; \vec F = - \nabla ⋅ \vec u &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El resultado de la fuerza obtenido manualmente es el descrito a continuación: &amp;lt;math&amp;gt; - \frac {1}{10} sen θ \vec e_ρ + \frac {1}{5} (\frac {1}{ρ} - 2) cos θ \vec e_θ &amp;lt;/math&amp;gt;. La componente según &amp;lt;math&amp;gt; \vec e_z &amp;lt;/math&amp;gt; es nula.&lt;br /&gt;
&lt;br /&gt;
Calculado por diferenciación automática queda la siguiente gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campo de Fuerzas.jpg|miniaturadeimagen|centro|Campo de fuerzas]]&lt;br /&gt;
&lt;br /&gt;
Si de dibuja el campo de fuerzas y la las posiciones inicial y final no queda del todo claro que éste sea el campo que motiva el desplazamiento y la deformación de la placa. &lt;br /&gt;
&lt;br /&gt;
#Añadir imagen&lt;br /&gt;
&lt;br /&gt;
En cambio si se dibuja la resultante de las fuerzas el desplazamiento de la placa queda explicado, mientras que dibujando únicamente la placa final deformada, sin considerar el desplazamiento y el campo de fuerzas, se puede apreciar claramente que deformaciones como el achatamiento de la forma circular de la placa son causadas por el campo de fuerzas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Desplazamiento y resultante concampo de fuerzas sin desplazamiento.jpg|miniaturadeimagen|centro|Campo de fuerzas, desplazamiento y deformación de la placa]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Anexo==&lt;br /&gt;
&lt;br /&gt;
===Librería de Julia desarrollada para el trabajo===&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Teoría de Campos]][[Categoría:TC21/22]]&lt;/div&gt;</summary>
		<author><name>MiguelUrena</name></author>	</entry>

	</feed>