<?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=P.salvadores</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=P.salvadores"/>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/wiki/Especial:Contribuciones/P.salvadores"/>
		<updated>2026-04-23T09:25:31Z</updated>
		<subtitle>Contribuciones del usuario</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40658</id>
		<title>Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40658"/>
				<updated>2017-12-15T08:42:01Z</updated>
		
		<summary type="html">&lt;p&gt;P.salvadores: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{ TrabajoED | Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)| [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC17/18|2017-18]] | Pablo Salvadores, Raquel Marco }}&lt;br /&gt;
== Introducción== &lt;br /&gt;
Para la visualización de campos escalares y vectoriales, consideraremos una placa definida por el anillo circular centrado en el origen y comprendidos entre los radios 1/2 y 2, en el plano y≥0. Con esta definición, tendremos una placa formada por un semianillo circular. Consideraremos ademas como ejes los pertenecientes al rectángulo [-3,3]x[-1,3]. &lt;br /&gt;
Para simplificar la tarea de definir la placa, usaremos coordenadas cilindricas.&lt;br /&gt;
&lt;br /&gt;
En la placa vamos a suponer que tenemos definidas dos cantidades físicas: la temperatura &amp;lt;math&amp;gt;T(x,y)&amp;lt;/math&amp;gt; que depende de las dos variables espaciales (x,y), y los desplazamientos &amp;lt;math&amp;gt;u(x,y)&amp;lt;/math&amp;gt; producidos por la acción de una fuerza determinada. De esta forma, si definimos r0(x,y) como el vector posición de los puntos de la placa antes de la deformación, la posición de cada punto (x,y) de la placa después de la deformación viene dada por : &lt;br /&gt;
&amp;lt;math&amp;gt;r ̅(x,y)=(r_0 ) ̅(x,y)+u ̅(x,y)&amp;lt;/math&amp;gt;.&lt;br /&gt;
Vamos a suponer que la fuerza aplicada sobre la placa ha provocado un desplazamiento de los puntos de la misma dado por el vector de desplazamientos&lt;br /&gt;
&amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;&lt;br /&gt;
== Mallado ==&lt;br /&gt;
Comenzaremos planteando en Matlab el mallado de la placa con el fin de poder visualizarla en el espacio con mayor facilidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Paso de muestreo &lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de la parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
%Dibujo del mallado&lt;br /&gt;
mesh(X,Y,0*X) &lt;br /&gt;
title('Mallado')&lt;br /&gt;
%ajustar los ejes&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap.1.jpg|miniaturadeimagen|Figura 1]]&lt;br /&gt;
&lt;br /&gt;
== Temperatura==&lt;br /&gt;
A continuación, escribiremos en matlab el codigo necesario para obtener la funcion temperatura de la placa T(x,y). Para ayudarnos a la visualización, colorearemos la placa con las distintas temperaturas en cada punto de la misma junto con  las curvas de nivel, que unen los putnos con  misma temperatura en la placa. Ademas, obtendremos la temperatura maxima en la placa. La funcion temperatura que definira el campo será: &amp;lt;math&amp;gt;T(x,y)=log⁡((y+x)^2+2)&amp;lt;/math&amp;gt; &lt;br /&gt;
Nota: esta parte del codigo no es un programa en si. Para que funcione debidamente, debemos agregar la parte escrita en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Campo de temperatura&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 &lt;br /&gt;
 %Representación en 2D&lt;br /&gt;
subplot(1,2,1)&lt;br /&gt;
contour(X,Y,T)&lt;br /&gt;
view(2) &lt;br /&gt;
axis([-3,3,-1,3]);&lt;br /&gt;
title('Curvas de nivel de la Temperatura')&lt;br /&gt;
%Representacion Temperatura &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,T);&lt;br /&gt;
title('Temperatura')&lt;br /&gt;
&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
contour(X,Y,T,50);&lt;br /&gt;
colorbar&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
title('Curvas de nivel')&lt;br /&gt;
%Temperatura máxima&lt;br /&gt;
Tmax=max(max(T));&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Gradiente de temperatura==&lt;br /&gt;
El gradiente de la temperatura nos definirá en que direccion se produce la maxima variacion de temperatura en la placa. Para poder mantener el orden dentro de la programacion, abriremos otro programa que repetirá exactamente los mismos comandos que en el apartado 1 de manera que se nos genere un mallado. En este caso le añadiremos el gradiente de la temperatura a toda la placa en forma de campo vectorial con flechas que nos indicará la direccion que sigue el gradiente. Estas flechas serán perpendiculares a las lineas de nivel que habiamos dibujado previamente en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%inicializamos las variables&lt;br /&gt;
 h=0.1;&lt;br /&gt;
 &lt;br /&gt;
 rho=[1:h:2];&lt;br /&gt;
 H=round(pi/h);         &lt;br /&gt;
 theta=linspace(0,pi,H);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos el mallado y la parametrización&lt;br /&gt;
 [RHO,THETA]=meshgrid(rho,theta); &lt;br /&gt;
 &lt;br /&gt;
 X=RHO.*cos(THETA);        &lt;br /&gt;
 Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujamos el mallado&lt;br /&gt;
 mesh(X,Y,0*X) ; &lt;br /&gt;
 axis([-3,3,-1,3]); &lt;br /&gt;
 &lt;br /&gt;
 view(2);&lt;br /&gt;
 &lt;br /&gt;
 %GRADIENTE&lt;br /&gt;
 dx=((2*(Y+X))./(((Y+X).^2)+2));&lt;br /&gt;
 dy=dx;&lt;br /&gt;
 %CAMPO ESCALAR DE TEMPERATURAS&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 %Creación de la subventana primera: gradiente en el campo de temperaturas&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,1);&lt;br /&gt;
 hold on;&lt;br /&gt;
 surf(X,Y,T);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo del gradiente&lt;br /&gt;
 quiver3(X,Y,T,dx,dy,0*T);&lt;br /&gt;
 &lt;br /&gt;
 hold off;&lt;br /&gt;
 &lt;br /&gt;
 %Creación de la segunda subventana: campo vectorial del gradiente&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,2);&lt;br /&gt;
 quiver(X,Y,dx,dy); &lt;br /&gt;
 colorbar;&lt;br /&gt;
}}&lt;br /&gt;
=== Variacion de temperatura===&lt;br /&gt;
Calcularemos ahora la tasa de variacion de la temperatura que se produce al desplazarnos sobre la placa a una velocidad de 2m/s en la direccion del eje &amp;lt;math&amp;gt;i &amp;lt;/math&amp;gt;. Para esto, utilizaremos el gradiente calculado anteriormente y lo aplicaremos a la direccion antes mencionada, multiplicandola por la velocidad de desplazamiento dada.&lt;br /&gt;
De esta forma, la tasa de variacion para este caso específico será calculada del siguiente modo: &lt;br /&gt;
#Calculamos el gradiente de la temperatura(obtenido anteriormente): &amp;lt;math&amp;gt;∇T=(2*(Y+X)/((Y+X)^2)+2)&amp;lt;/math&amp;gt; &lt;br /&gt;
#El vector velocidad sera el siguiente: &amp;lt;math&amp;gt;v=2i &amp;lt;/math&amp;gt; &lt;br /&gt;
#Por ultimo aplicamos el gradiente a la direccion establecida para obtener la tasa: &amp;lt;math&amp;gt;TasaVariacion=∇T v =4/3&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Campo de desplazamientos==&lt;br /&gt;
Tomando el campo de desplazamientos &amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;, lo representaremos igual que el gradiente (flechas) con maor tamaño cuanta mayor es la intensidad del campo en una región.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%CAMPO VECTORIAL DE DESPLAZAMIENTOS&lt;br /&gt;
 %Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Representamos el campo vectorial de desplazamientos&lt;br /&gt;
quiver(X,Y,FX,FY) &lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
xlabel('Eje x')&lt;br /&gt;
ylabel('Eje y')&lt;br /&gt;
title('Campo de desplazamientos sobre la placa')&lt;br /&gt;
}}&lt;br /&gt;
===Campo de desplazamientos sobre la placa===&lt;br /&gt;
Aplicaremos el campo de desplazamientos sobre la placa para poder apreciar la deformacion que sufre esta por una fuerza externa (generadora del campo de desplazamientos).&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestro&lt;br /&gt;
h=0.1;&lt;br /&gt;
% Valores de parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Creación del mallado&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Matriz con las coordenadas en x, después del desplazamiento&lt;br /&gt;
Rx=FX+X;&lt;br /&gt;
%Matriz con las coordenadas en y, después del desplazamiento&lt;br /&gt;
Ry=FY+Y;&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido antes del desplazamiento &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,0*X);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo sin deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido tras del desplazamiento&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
mesh(Rx,Ry,0*Rx);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo con deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
}}&lt;br /&gt;
==Divergencia del campo de desplazamientos==&lt;br /&gt;
Para obtener una medida de la variacion producida en la placa por el campo de desplazamientos, utilizaremos la divergencia de este. Aparecera en el grafico un mapa de colores con la variacion de volumen producida durante la deformación. Además, el programa nos devolverá el maximo valor que alcanza dicha divergencia.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Divergencia&lt;br /&gt;
DIVERGENCIA= [2.*((sin(THETA)).^2).*(RHO.*(cos(THETA)-1)).*(1+(RHO.*cos(THETA))+0.5.*(RHO.*cos(THETA)-1)+cos(THETA))]-[((cos(THETA)).^2).*((RHO.*cos(THETA))-1).^2];&lt;br /&gt;
&lt;br /&gt;
MaxDivergencia=max(max(DIVERGENCIA))&lt;br /&gt;
&lt;br /&gt;
%Representación de la divergencia&lt;br /&gt;
surf(X,Y,DIVERGENCIA) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Divergencia')&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Rotacional del campo de desplazamientos==&lt;br /&gt;
Igual que con la divergencia, visualizaremos el rotacional del campo de desplazamientos con la siguiente programacion.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Rotacional&lt;br /&gt;
ROT= (-2.*(cos(THETA)-1./RHO).*sin(THETA).*cos(THETA).^2) - (2.*sin(THETA).*cos(THETA).*(RHO.*cos(THETA-1)).^2) + (2.*sin(THETA).^3) - (RHO.*(RHO.*cos(THETA)-1));&lt;br /&gt;
&lt;br /&gt;
%Comprobar que está bien sacado el rotacional&lt;br /&gt;
%Representación del rotacional&lt;br /&gt;
surf(X,Y,ROT) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Rotacional')&lt;br /&gt;
}}&lt;br /&gt;
==Tensiones ==&lt;br /&gt;
Definamos &amp;lt;math&amp;gt;e(u ̅ )=(∇u ⃗+〖∇u ⃗〗^t)/2&amp;lt;/math&amp;gt; , la parte simétrica del tensor gradiente de &amp;lt;math&amp;gt; u ̅&amp;lt;/math&amp;gt; conocido como tensor de deformaciones. En un medio elástico ideal, isótropo y homogéneo, los desplazamientos permiten escribir el tensor de tensiones a través de la fórmula &amp;lt;math&amp;gt;  σ=λ∇∙u ̅1+2µe&amp;lt;/math&amp;gt;, donde λ y µ son los conocidos como coeficientes de Lamé que dependen de las propiedades elásticas de cada material. A pesar de que los desplazamientos son planos, (es decir, &amp;lt;math&amp;gt;u ̅ &amp;lt;/math&amp;gt;no tiene componente en la dirección &amp;lt;math&amp;gt;k ̅&amp;lt;/math&amp;gt;) las tensiones no tienen por qué ser planas y puede haber tensiones en la dirección ortogonal al plano de la placa. Tomando λ = µ = 1, dibujar las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt;( g_ρ ) ⃗ &amp;lt;/math&amp;gt;, es decir &amp;lt;math&amp;gt; (g_ρ ) ⃗∙σ∙(g_ρ ) ⃗&amp;lt;/math&amp;gt;, las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt; (g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; (g_θ ) ⃗/ρ∙σ∙(g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, y las correspondientes al eje&amp;lt;math&amp;gt; k ⃗&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; k ⃗∙σ∙k ⃗&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables   &lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%Gradiente de un campo vectorial&lt;br /&gt;
U=[(RHO.*cos(THETA)-1).^2.*RHO.*sin(THETA).^2 , -(RHO.*cos(THETA)-1).^2.*sin(THETA).*cos(THETA)];&lt;br /&gt;
[dx,dy]=gradient(U);&lt;br /&gt;
&lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
subplot(2,3,1);&lt;br /&gt;
&lt;br /&gt;
 %Tomamos el valor (1,1) de la matriz sigma y lo dibujamos&lt;br /&gt;
 r=dx(1,1);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,r)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 view(2)&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
 subplot(2,3,2);   &lt;br /&gt;
     &lt;br /&gt;
 %Tomamos el valor (2,2) de la matriz sigma y lo dibujamos   &lt;br /&gt;
 t=dy(2,2);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,t)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 view(2)&lt;br /&gt;
 &lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a gz&lt;br /&gt;
% subplot(2,3,3)&lt;br /&gt;
 &lt;br /&gt;
 %Tomamos el valor (3,3) de la matriz sigma y lo dibujamos &lt;br /&gt;
 %z=           &lt;br /&gt;
     &lt;br /&gt;
 %surf(X,Y,z)&lt;br /&gt;
 &lt;br /&gt;
 %axis equal&lt;br /&gt;
% view(2)&lt;br /&gt;
% title('Tensiones respecto a gz')&lt;br /&gt;
 %colorbar&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Tensión de Von Mises==&lt;br /&gt;
	La tensión de Von Mises se define con la formula&lt;br /&gt;
&amp;lt;math&amp;gt;σ_VM=√((〖(σ_1-σ_2)〗^2+〖(σ_2-σ_3)〗^2+〖(σ_3-σ_1)〗^2)/2)&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt;σ_1&amp;lt;/math&amp;gt;,&amp;lt;math&amp;gt;σ_2&amp;lt;/math&amp;gt;  y&amp;lt;math&amp;gt;σ_3&amp;lt;/math&amp;gt; son los autovalores de &amp;lt;math&amp;gt; σ &amp;lt;/math&amp;gt;(también conocidos como tensiones superficiales). Se trata de una magnitud escalar que se suele usar como indicador para saber cuando un material inicia un comportamiento plástico (y no elástico puro). Pintar la tensión de Von Mises y señalar en que punto alcanza mayor valor. (Usar comando eig.m para calcular autovalores)&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos la matriz sigma&lt;br /&gt;
 Sig=zeros(3,3);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos la matriz de Von Mises &lt;br /&gt;
 MatrizVonMises=zeros(16,21); &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 %Obtenemos los valores de la tensión de Von Mises a partir de los autovalores&lt;br /&gt;
         for i=1:16&lt;br /&gt;
             for j=1:21&lt;br /&gt;
                r=RHO(i,j)';&lt;br /&gt;
                t=THETA(i,j)';&lt;br /&gt;
 &lt;br /&gt;
                Sig(1,1)=2*t/5+t*(2-1/r)/5;&lt;br /&gt;
 &lt;br /&gt;
                Sig(1,2)=(r-1)/(5*r^2);&lt;br /&gt;
 &lt;br /&gt;
                Sig(2,1)= (r-1)/(5*r^2);&lt;br /&gt;
 &lt;br /&gt;
                Sig(2,2)=2*t*(r-1)/(5*r^3)+t*(2-1/r)/(5);&lt;br /&gt;
                Sig(3,3)=t*(2-1/r)/5;&lt;br /&gt;
 &lt;br /&gt;
              %Obtención de los autovalores de la matriz sigma&lt;br /&gt;
                [v,d]=eig(Sig); &lt;br /&gt;
         &lt;br /&gt;
              %Fórmula de Von Mises&lt;br /&gt;
                MatrizVonMises11(i,j)=sqrt(((d(1,1)-d(2,2))^2+(d(2,2)-d(3,3))^2+(d(3,3)-d(1,1))^2)/2);  &lt;br /&gt;
 &lt;br /&gt;
            end&lt;br /&gt;
         end&lt;br /&gt;
 &lt;br /&gt;
     &lt;br /&gt;
 &lt;br /&gt;
 %Cambiamos a coordenadas cartesianas&lt;br /&gt;
 X=RHO.*cos(THETA);&lt;br /&gt;
 Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujamos la tensión de Von Mises&lt;br /&gt;
 surf(X,Y,MatrizVonMises)&lt;br /&gt;
 &lt;br /&gt;
 colorbar&lt;br /&gt;
 view(2)&lt;br /&gt;
 title('Tensión de Von Mises')&lt;br /&gt;
 &lt;br /&gt;
 %Valor Máximo&lt;br /&gt;
 ValorMaximo=max(max(MatrizVonMises))&lt;br /&gt;
 &lt;br /&gt;
 %Coordenadas del valor Máximo&lt;br /&gt;
 [i,j]=find(MatrizVonMises==ValorMaximo))))&lt;br /&gt;
 &lt;br /&gt;
 RHO(i,j)&lt;br /&gt;
 THETA(i,j)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Masa de la placa==&lt;br /&gt;
Finalmente, calcularemos la masa de la placa objeto de estudio. Esto se realizará mediante la integracion de la densida de la placa &amp;lt;math&amp;gt;d(x,y)=3+log⁡(1+|x|/(y+1)^4 )&amp;lt;/math&amp;gt;&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables    &lt;br /&gt;
h=0.1;&lt;br /&gt;
H=round(pi/h);&lt;br /&gt;
&lt;br /&gt;
rho=[1:h:3];          &lt;br /&gt;
theta=linspace(0,pi,H);&lt;br /&gt;
&lt;br /&gt;
%Creamos la parametrización&lt;br /&gt;
[RHO,THETA]=meshgrid(rho,theta);&lt;br /&gt;
&lt;br /&gt;
X=RHO.*cos(THETA);        &lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
d=3+log(1+abs(X)./(Y+1).^4);&lt;br /&gt;
&lt;br /&gt;
% Representamos graficamente la densidad en cada punto de la malla&lt;br /&gt;
surf(X,Y,d);&lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
axis square&lt;br /&gt;
%Cálculo de la masa total&lt;br /&gt;
MasaTotal=sum(sum(Densidad))&lt;br /&gt;
}}&lt;br /&gt;
[[Categoría:Teoría de Campos]]&lt;br /&gt;
[[Categoría:TC17/18]]&lt;/div&gt;</summary>
		<author><name>P.salvadores</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40657</id>
		<title>Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40657"/>
				<updated>2017-12-15T08:41:26Z</updated>
		
		<summary type="html">&lt;p&gt;P.salvadores: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{ TrabajoED | Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)| [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC17/18|2017-18]] | Pablo Salvadores, Raquel Marco }}&lt;br /&gt;
== Introducción== &lt;br /&gt;
Para la visualización de campos escalares y vectoriales, consideraremos una placa definida por el anillo circular centrado en el origen y comprendidos entre los radios 1/2 y 2, en el plano y≥0. Con esta definición, tendremos una placa formada por un semianillo circular. Consideraremos ademas como ejes los pertenecientes al rectángulo [-3,3]x[-1,3]. &lt;br /&gt;
Para simplificar la tarea de definir la placa, usaremos coordenadas cilindricas.&lt;br /&gt;
&lt;br /&gt;
En la placa vamos a suponer que tenemos definidas dos cantidades físicas: la temperatura &amp;lt;math&amp;gt;T(x,y)&amp;lt;/math&amp;gt; que depende de las dos variables espaciales (x,y), y los desplazamientos &amp;lt;math&amp;gt;u(x,y)&amp;lt;/math&amp;gt; producidos por la acción de una fuerza determinada. De esta forma, si definimos r0(x,y) como el vector posición de los puntos de la placa antes de la deformación, la posición de cada punto (x,y) de la placa después de la deformación viene dada por : &lt;br /&gt;
&amp;lt;math&amp;gt;r ̅(x,y)=(r_0 ) ̅(x,y)+u ̅(x,y)&amp;lt;/math&amp;gt;.&lt;br /&gt;
Vamos a suponer que la fuerza aplicada sobre la placa ha provocado un desplazamiento de los puntos de la misma dado por el vector de desplazamientos&lt;br /&gt;
&amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;&lt;br /&gt;
== Mallado ==&lt;br /&gt;
Comenzaremos planteando en Matlab el mallado de la placa con el fin de poder visualizarla en el espacio con mayor facilidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Paso de muestreo &lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de la parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
%Dibujo del mallado&lt;br /&gt;
mesh(X,Y,0*X) &lt;br /&gt;
title('Mallado')&lt;br /&gt;
%ajustar los ejes&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap.1.jpg|miniaturadeimagen|Figura 1]]&lt;br /&gt;
&lt;br /&gt;
== Temperatura==&lt;br /&gt;
A continuación, escribiremos en matlab el codigo necesario para obtener la funcion temperatura de la placa T(x,y). Para ayudarnos a la visualización, colorearemos la placa con las distintas temperaturas en cada punto de la misma junto con  las curvas de nivel, que unen los putnos con  misma temperatura en la placa. Ademas, obtendremos la temperatura maxima en la placa. La funcion temperatura que definira el campo será: &amp;lt;math&amp;gt;T(x,y)=log⁡((y+x)^2+2)&amp;lt;/math&amp;gt; &lt;br /&gt;
Nota: esta parte del codigo no es un programa en si. Para que funcione debidamente, debemos agregar la parte escrita en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Campo de temperatura&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 &lt;br /&gt;
 %Representación en 2D&lt;br /&gt;
subplot(1,2,1)&lt;br /&gt;
contour(X,Y,T)&lt;br /&gt;
view(2) &lt;br /&gt;
axis([-3,3,-1,3]);&lt;br /&gt;
title('Curvas de nivel de la Temperatura')&lt;br /&gt;
%Representacion Temperatura &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,T);&lt;br /&gt;
title('Temperatura')&lt;br /&gt;
&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
contour(X,Y,T,50);&lt;br /&gt;
colorbar&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
title('Curvas de nivel')&lt;br /&gt;
%Temperatura máxima&lt;br /&gt;
Tmax=max(max(T));&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Gradiente de temperatura==&lt;br /&gt;
El gradiente de la temperatura nos definirá en que direccion se produce la maxima variacion de temperatura en la placa. Para poder mantener el orden dentro de la programacion, abriremos otro programa que repetirá exactamente los mismos comandos que en el apartado 1 de manera que se nos genere un mallado. En este caso le añadiremos el gradiente de la temperatura a toda la placa en forma de campo vectorial con flechas que nos indicará la direccion que sigue el gradiente. Estas flechas serán perpendiculares a las lineas de nivel que habiamos dibujado previamente en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%inicializamos las variables&lt;br /&gt;
 h=0.1;&lt;br /&gt;
 &lt;br /&gt;
 rho=[1:h:2];&lt;br /&gt;
 H=round(pi/h);         &lt;br /&gt;
 theta=linspace(0,pi,H);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos el mallado y la parametrización&lt;br /&gt;
 [RHO,THETA]=meshgrid(rho,theta); &lt;br /&gt;
 &lt;br /&gt;
 X=RHO.*cos(THETA);        &lt;br /&gt;
 Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujamos el mallado&lt;br /&gt;
 mesh(X,Y,0*X) ; &lt;br /&gt;
 axis([-3,3,-1,3]); &lt;br /&gt;
 &lt;br /&gt;
 view(2);&lt;br /&gt;
 &lt;br /&gt;
 %GRADIENTE&lt;br /&gt;
 dx=((2*(Y+X))./(((Y+X).^2)+2));&lt;br /&gt;
 dy=dx;&lt;br /&gt;
 %CAMPO ESCALAR DE TEMPERATURAS&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 %Creación de la subventana primera: gradiente en el campo de temperaturas&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,1);&lt;br /&gt;
 hold on;&lt;br /&gt;
 surf(X,Y,T);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo del gradiente&lt;br /&gt;
 quiver3(X,Y,T,dx,dy,0*T);&lt;br /&gt;
 &lt;br /&gt;
 hold off;&lt;br /&gt;
 &lt;br /&gt;
 %Creación de la segunda subventana: campo vectorial del gradiente&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,2);&lt;br /&gt;
 quiver(X,Y,dx,dy); &lt;br /&gt;
 colorbar;&lt;br /&gt;
}}&lt;br /&gt;
=== Variacion de temperatura===&lt;br /&gt;
Calcularemos ahora la tasa de variacion de la temperatura que se produce al desplazarnos sobre la placa a una velocidad de 2m/s en la direccion del eje &amp;lt;math&amp;gt;i &amp;lt;/math&amp;gt;. Para esto, utilizaremos el gradiente calculado anteriormente y lo aplicaremos a la direccion antes mencionada, multiplicandola por la velocidad de desplazamiento dada.&lt;br /&gt;
De esta forma, la tasa de variacion para este caso específico será calculada del siguiente modo: &lt;br /&gt;
#Calculamos el gradiente de la temperatura(obtenido anteriormente): &amp;lt;math&amp;gt;∇T=(2*(Y+X)/((Y+X)^2)+2)&amp;lt;/math&amp;gt; &lt;br /&gt;
#El vector velocidad sera el siguiente: &amp;lt;math&amp;gt;v=2i &amp;lt;/math&amp;gt; &lt;br /&gt;
#Por ultimo aplicamos el gradiente a la direccion establecida para obtener la tasa: &amp;lt;math&amp;gt;TasaVariacion=∇T v =4/3&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Campo de desplazamientos==&lt;br /&gt;
Tomando el campo de desplazamientos &amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;, lo representaremos igual que el gradiente (flechas) con maor tamaño cuanta mayor es la intensidad del campo en una región.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%CAMPO VECTORIAL DE DESPLAZAMIENTOS&lt;br /&gt;
 %Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Representamos el campo vectorial de desplazamientos&lt;br /&gt;
quiver(X,Y,FX,FY) &lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
xlabel('Eje x')&lt;br /&gt;
ylabel('Eje y')&lt;br /&gt;
title('Campo de desplazamientos sobre la placa')&lt;br /&gt;
}}&lt;br /&gt;
===Campo de desplazamientos sobre la placa===&lt;br /&gt;
Aplicaremos el campo de desplazamientos sobre la placa para poder apreciar la deformacion que sufre esta por una fuerza externa (generadora del campo de desplazamientos).&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestro&lt;br /&gt;
h=0.1;&lt;br /&gt;
% Valores de parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Creación del mallado&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Matriz con las coordenadas en x, después del desplazamiento&lt;br /&gt;
Rx=FX+X;&lt;br /&gt;
%Matriz con las coordenadas en y, después del desplazamiento&lt;br /&gt;
Ry=FY+Y;&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido antes del desplazamiento &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,0*X);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo sin deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido tras del desplazamiento&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
mesh(Rx,Ry,0*Rx);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo con deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
}}&lt;br /&gt;
==Divergencia del campo de desplazamientos==&lt;br /&gt;
Para obtener una medida de la variacion producida en la placa por el campo de desplazamientos, utilizaremos la divergencia de este. Aparecera en el grafico un mapa de colores con la variacion de volumen producida durante la deformación. Además, el programa nos devolverá el maximo valor que alcanza dicha divergencia.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Divergencia&lt;br /&gt;
DIVERGENCIA= [2.*((sin(THETA)).^2).*(RHO.*(cos(THETA)-1)).*(1+(RHO.*cos(THETA))+0.5.*(RHO.*cos(THETA)-1)+cos(THETA))]-[((cos(THETA)).^2).*((RHO.*cos(THETA))-1).^2];&lt;br /&gt;
&lt;br /&gt;
MaxDivergencia=max(max(DIVERGENCIA))&lt;br /&gt;
&lt;br /&gt;
%Representación de la divergencia&lt;br /&gt;
surf(X,Y,DIVERGENCIA) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Divergencia')&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Rotacional del campo de desplazamientos==&lt;br /&gt;
Igual que con la divergencia, visualizaremos el rotacional del campo de desplazamientos con la siguiente programacion.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Rotacional&lt;br /&gt;
ROT= (-2.*(cos(THETA)-1./RHO).*sin(THETA).*cos(THETA).^2) - (2.*sin(THETA).*cos(THETA).*(RHO.*cos(THETA-1)).^2) + (2.*sin(THETA).^3) - (RHO.*(RHO.*cos(THETA)-1));&lt;br /&gt;
&lt;br /&gt;
%Comprobar que está bien sacado el rotacional&lt;br /&gt;
%Representación del rotacional&lt;br /&gt;
surf(X,Y,ROT) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Rotacional')&lt;br /&gt;
}}&lt;br /&gt;
==Tensiones ==&lt;br /&gt;
Definamos &amp;lt;math&amp;gt;e(u ̅ )=(∇u ⃗+〖∇u ⃗〗^t)/2&amp;lt;/math&amp;gt; , la parte simétrica del tensor gradiente de &amp;lt;math&amp;gt; u ̅&amp;lt;/math&amp;gt; conocido como tensor de deformaciones. En un medio elástico ideal, isótropo y homogéneo, los desplazamientos permiten escribir el tensor de tensiones a través de la fórmula &amp;lt;math&amp;gt;  σ=λ∇∙u ̅1+2µe&amp;lt;/math&amp;gt;, donde λ y µ son los conocidos como coeficientes de Lamé que dependen de las propiedades elásticas de cada material. A pesar de que los desplazamientos son planos, (es decir, &amp;lt;math&amp;gt;u ̅ &amp;lt;/math&amp;gt;no tiene componente en la dirección &amp;lt;math&amp;gt;k ̅&amp;lt;/math&amp;gt;) las tensiones no tienen por qué ser planas y puede haber tensiones en la dirección ortogonal al plano de la placa. Tomando λ = µ = 1, dibujar las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt;( g_ρ ) ⃗ &amp;lt;/math&amp;gt;, es decir &amp;lt;math&amp;gt; (g_ρ ) ⃗∙σ∙(g_ρ ) ⃗&amp;lt;/math&amp;gt;, las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt; (g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; (g_θ ) ⃗/ρ∙σ∙(g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, y las correspondientes al eje&amp;lt;math&amp;gt; k ⃗&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; k ⃗∙σ∙k ⃗&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables   &lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%Gradiente de un campo vectorial&lt;br /&gt;
U=[(RHO.*cos(THETA)-1).^2.*RHO.*sin(THETA).^2 , -(RHO.*cos(THETA)-1).^2.*sin(THETA).*cos(THETA)];&lt;br /&gt;
[dx,dy]=gradient(U);&lt;br /&gt;
&lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
subplot(2,3,1);&lt;br /&gt;
&lt;br /&gt;
 %Tomamos el valor (1,1) de la matriz sigma y lo dibujamos&lt;br /&gt;
 r=dx(1,1);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,r)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 view(2)&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
 subplot(2,3,2);   &lt;br /&gt;
     &lt;br /&gt;
 %Tomamos el valor (2,2) de la matriz sigma y lo dibujamos   &lt;br /&gt;
 t=dy(2,2);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,t)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 view(2)&lt;br /&gt;
 &lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a gz&lt;br /&gt;
% subplot(2,3,3)&lt;br /&gt;
 &lt;br /&gt;
 %Tomamos el valor (3,3) de la matriz sigma y lo dibujamos &lt;br /&gt;
 %z=           &lt;br /&gt;
     &lt;br /&gt;
 %surf(X,Y,z)&lt;br /&gt;
 &lt;br /&gt;
 %axis equal&lt;br /&gt;
% view(2)&lt;br /&gt;
% title('Tensiones respecto a gz')&lt;br /&gt;
 %colorbar&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Tensión de Von Mises==&lt;br /&gt;
	La tensión de Von Mises se define con la formula&lt;br /&gt;
&amp;lt;math&amp;gt;σ_VM=√((〖(σ_1-σ_2)〗^2+〖(σ_2-σ_3)〗^2+〖(σ_3-σ_1)〗^2)/2)&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt;σ_1&amp;lt;/math&amp;gt;,&amp;lt;math&amp;gt;σ_2&amp;lt;/math&amp;gt;  y&amp;lt;math&amp;gt;σ_3&amp;lt;/math&amp;gt; son los autovalores de &amp;lt;math&amp;gt; σ &amp;lt;/math&amp;gt;(también conocidos como tensiones superficiales). Se trata de una magnitud escalar que se suele usar como indicador para saber cuando un material inicia un comportamiento plástico (y no elástico puro). Pintar la tensión de Von Mises y señalar en que punto alcanza mayor valor. (Usar comando eig.m para calcular autovalores)&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos la matriz sigma&lt;br /&gt;
 Sig=zeros(3,3);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos la matriz de Von Mises &lt;br /&gt;
 MatrizVonMises=zeros(16,21); &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 %Obtenemos los valores de la tensión de Von Mises a partir de los autovalores&lt;br /&gt;
         for i=1:16&lt;br /&gt;
             for j=1:21&lt;br /&gt;
                r=RHO(i,j)';&lt;br /&gt;
                t=THETA(i,j)';&lt;br /&gt;
 &lt;br /&gt;
                Sig(1,1)=2*t/5+t*(2-1/r)/5;&lt;br /&gt;
 &lt;br /&gt;
                Sig(1,2)=(r-1)/(5*r^2);&lt;br /&gt;
 &lt;br /&gt;
                Sig(2,1)= (r-1)/(5*r^2);&lt;br /&gt;
 &lt;br /&gt;
                Sig(2,2)=2*t*(r-1)/(5*r^3)+t*(2-1/r)/(5);&lt;br /&gt;
                Sig(3,3)=t*(2-1/r)/5;&lt;br /&gt;
 &lt;br /&gt;
              %Obtención de los autovalores de la matriz sigma&lt;br /&gt;
                [v,d]=eig(Sig); &lt;br /&gt;
         &lt;br /&gt;
              %Fórmula de Von Mises&lt;br /&gt;
                MatrizVonMises11(i,j)=sqrt(((d(1,1)-d(2,2))^2+(d(2,2)-d(3,3))^2+(d(3,3)-d(1,1))^2)/2);  &lt;br /&gt;
 &lt;br /&gt;
            end&lt;br /&gt;
         end&lt;br /&gt;
 &lt;br /&gt;
     &lt;br /&gt;
 &lt;br /&gt;
 %Cambiamos a coordenadas cartesianas&lt;br /&gt;
 X=RHO.*cos(THETA);&lt;br /&gt;
 Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujamos la tensión de Von Mises&lt;br /&gt;
 surf(X,Y,MatrizVonMises)&lt;br /&gt;
 &lt;br /&gt;
 colorbar&lt;br /&gt;
 view(2)&lt;br /&gt;
 title('Tensión de Von Mises')&lt;br /&gt;
 &lt;br /&gt;
 %Valor Máximo&lt;br /&gt;
 ValorMaximo=max(max(MatrizVonMises))&lt;br /&gt;
 &lt;br /&gt;
 %Coordenadas del valor Máximo&lt;br /&gt;
 [i,j]=find(MatrizVonMises==ValorMaximo))))&lt;br /&gt;
 &lt;br /&gt;
 RHO(i,j)&lt;br /&gt;
 THETA(i,j)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Masa de la placa==&lt;br /&gt;
Finalmente, calcularemos la masa de la placa objeto de estudio. Esto se realizará mediante la integracion de la densida de la placa &amp;lt;math&amp;gt;d(x,y)=3+log⁡(1+|x|/(y+1)^4 )&amp;lt;/math&amp;gt;&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables    &lt;br /&gt;
h=0.1;&lt;br /&gt;
H=round(pi/h);&lt;br /&gt;
&lt;br /&gt;
rho=[1:h:3];          &lt;br /&gt;
theta=linspace(0,pi,H);&lt;br /&gt;
&lt;br /&gt;
%Creamos la parametrización&lt;br /&gt;
[RHO,THETA]=meshgrid(rho,theta);&lt;br /&gt;
&lt;br /&gt;
X=RHO.*cos(THETA);        &lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
d=3+log(1+abs(X)./(Y+1).^4);&lt;br /&gt;
&lt;br /&gt;
% Representamos graficamente la densidad en cada punto de la malla&lt;br /&gt;
surf(X,Y,d);&lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
axis square&lt;br /&gt;
%Cálculo de la masa total&lt;br /&gt;
MasaTotal=sum(sum(Densidad))&lt;br /&gt;
}}&lt;br /&gt;
[[Categoría:Teoría de Campos]]&lt;/div&gt;</summary>
		<author><name>P.salvadores</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Ap.8.jpg&amp;diff=40656</id>
		<title>Archivo:Ap.8.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Ap.8.jpg&amp;diff=40656"/>
				<updated>2017-12-14T23:13:32Z</updated>
		
		<summary type="html">&lt;p&gt;P.salvadores: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>P.salvadores</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Ap.7.jpg&amp;diff=40655</id>
		<title>Archivo:Ap.7.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Ap.7.jpg&amp;diff=40655"/>
				<updated>2017-12-14T23:13:21Z</updated>
		
		<summary type="html">&lt;p&gt;P.salvadores: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>P.salvadores</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Ap.6.jpg&amp;diff=40654</id>
		<title>Archivo:Ap.6.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Ap.6.jpg&amp;diff=40654"/>
				<updated>2017-12-14T23:13:09Z</updated>
		
		<summary type="html">&lt;p&gt;P.salvadores: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>P.salvadores</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Ap.5.jpg&amp;diff=40653</id>
		<title>Archivo:Ap.5.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Ap.5.jpg&amp;diff=40653"/>
				<updated>2017-12-14T23:12:57Z</updated>
		
		<summary type="html">&lt;p&gt;P.salvadores: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>P.salvadores</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Ap.3.jpg&amp;diff=40652</id>
		<title>Archivo:Ap.3.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Ap.3.jpg&amp;diff=40652"/>
				<updated>2017-12-14T23:12:43Z</updated>
		
		<summary type="html">&lt;p&gt;P.salvadores: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>P.salvadores</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Ap.2.jpg&amp;diff=40651</id>
		<title>Archivo:Ap.2.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Ap.2.jpg&amp;diff=40651"/>
				<updated>2017-12-14T23:12:27Z</updated>
		
		<summary type="html">&lt;p&gt;P.salvadores: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>P.salvadores</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40650</id>
		<title>Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40650"/>
				<updated>2017-12-14T23:02:42Z</updated>
		
		<summary type="html">&lt;p&gt;P.salvadores: /* Mallado */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{ TrabajoED | Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)| [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC17/18|2017-18]] | Pablo Salvadores, Raquel Marco }}&lt;br /&gt;
== Introducción== &lt;br /&gt;
Para la visualización de campos escalares y vectoriales, consideraremos una placa definida por el anillo circular centrado en el origen y comprendidos entre los radios 1/2 y 2, en el plano y≥0. Con esta definición, tendremos una placa formada por un semianillo circular. Consideraremos ademas como ejes los pertenecientes al rectángulo [-3,3]x[-1,3]. &lt;br /&gt;
Para simplificar la tarea de definir la placa, usaremos coordenadas cilindricas.&lt;br /&gt;
&lt;br /&gt;
En la placa vamos a suponer que tenemos definidas dos cantidades físicas: la temperatura &amp;lt;math&amp;gt;T(x,y)&amp;lt;/math&amp;gt; que depende de las dos variables espaciales (x,y), y los desplazamientos &amp;lt;math&amp;gt;u(x,y)&amp;lt;/math&amp;gt; producidos por la acción de una fuerza determinada. De esta forma, si definimos r0(x,y) como el vector posición de los puntos de la placa antes de la deformación, la posición de cada punto (x,y) de la placa después de la deformación viene dada por : &lt;br /&gt;
&amp;lt;math&amp;gt;r ̅(x,y)=(r_0 ) ̅(x,y)+u ̅(x,y)&amp;lt;/math&amp;gt;.&lt;br /&gt;
Vamos a suponer que la fuerza aplicada sobre la placa ha provocado un desplazamiento de los puntos de la misma dado por el vector de desplazamientos&lt;br /&gt;
&amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;&lt;br /&gt;
== Mallado ==&lt;br /&gt;
Comenzaremos planteando en Matlab el mallado de la placa con el fin de poder visualizarla en el espacio con mayor facilidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Paso de muestreo &lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de la parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
%Dibujo del mallado&lt;br /&gt;
mesh(X,Y,0*X) &lt;br /&gt;
title('Mallado')&lt;br /&gt;
%ajustar los ejes&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap.1.jpg|miniaturadeimagen|Figura 1]]&lt;br /&gt;
&lt;br /&gt;
== Temperatura==&lt;br /&gt;
A continuación, escribiremos en matlab el codigo necesario para obtener la funcion temperatura de la placa T(x,y). Para ayudarnos a la visualización, colorearemos la placa con las distintas temperaturas en cada punto de la misma junto con  las curvas de nivel, que unen los putnos con  misma temperatura en la placa. Ademas, obtendremos la temperatura maxima en la placa. La funcion temperatura que definira el campo será: &amp;lt;math&amp;gt;T(x,y)=log⁡((y+x)^2+2)&amp;lt;/math&amp;gt; &lt;br /&gt;
Nota: esta parte del codigo no es un programa en si. Para que funcione debidamente, debemos agregar la parte escrita en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Campo de temperatura&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 &lt;br /&gt;
 %Representación en 2D&lt;br /&gt;
subplot(1,2,1)&lt;br /&gt;
contour(X,Y,T)&lt;br /&gt;
view(2) &lt;br /&gt;
axis([-3,3,-1,3]);&lt;br /&gt;
title('Curvas de nivel de la Temperatura')&lt;br /&gt;
%Representacion Temperatura &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,T);&lt;br /&gt;
title('Temperatura')&lt;br /&gt;
&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
contour(X,Y,T,50);&lt;br /&gt;
colorbar&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
title('Curvas de nivel')&lt;br /&gt;
%Temperatura máxima&lt;br /&gt;
Tmax=max(max(T));&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Gradiente de temperatura==&lt;br /&gt;
El gradiente de la temperatura nos definirá en que direccion se produce la maxima variacion de temperatura en la placa. Para poder mantener el orden dentro de la programacion, abriremos otro programa que repetirá exactamente los mismos comandos que en el apartado 1 de manera que se nos genere un mallado. En este caso le añadiremos el gradiente de la temperatura a toda la placa en forma de campo vectorial con flechas que nos indicará la direccion que sigue el gradiente. Estas flechas serán perpendiculares a las lineas de nivel que habiamos dibujado previamente en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%inicializamos las variables&lt;br /&gt;
 h=0.1;&lt;br /&gt;
 &lt;br /&gt;
 rho=[1:h:2];&lt;br /&gt;
 H=round(pi/h);         &lt;br /&gt;
 theta=linspace(0,pi,H);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos el mallado y la parametrización&lt;br /&gt;
 [RHO,THETA]=meshgrid(rho,theta); &lt;br /&gt;
 &lt;br /&gt;
 X=RHO.*cos(THETA);        &lt;br /&gt;
 Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujamos el mallado&lt;br /&gt;
 mesh(X,Y,0*X) ; &lt;br /&gt;
 axis([-3,3,-1,3]); &lt;br /&gt;
 &lt;br /&gt;
 view(2);&lt;br /&gt;
 &lt;br /&gt;
 %GRADIENTE&lt;br /&gt;
 dx=((2*(Y+X))./(((Y+X).^2)+2));&lt;br /&gt;
 dy=dx;&lt;br /&gt;
 %CAMPO ESCALAR DE TEMPERATURAS&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 %Creación de la subventana primera: gradiente en el campo de temperaturas&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,1);&lt;br /&gt;
 hold on;&lt;br /&gt;
 surf(X,Y,T);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo del gradiente&lt;br /&gt;
 quiver3(X,Y,T,dx,dy,0*T);&lt;br /&gt;
 &lt;br /&gt;
 hold off;&lt;br /&gt;
 &lt;br /&gt;
 %Creación de la segunda subventana: campo vectorial del gradiente&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,2);&lt;br /&gt;
 quiver(X,Y,dx,dy); &lt;br /&gt;
 colorbar;&lt;br /&gt;
}}&lt;br /&gt;
=== Variacion de temperatura===&lt;br /&gt;
Calcularemos ahora la tasa de variacion de la temperatura que se produce al desplazarnos sobre la placa a una velocidad de 2m/s en la direccion del eje &amp;lt;math&amp;gt;i &amp;lt;/math&amp;gt;. Para esto, utilizaremos el gradiente calculado anteriormente y lo aplicaremos a la direccion antes mencionada, multiplicandola por la velocidad de desplazamiento dada.&lt;br /&gt;
De esta forma, la tasa de variacion para este caso específico será calculada del siguiente modo: &lt;br /&gt;
#Calculamos el gradiente de la temperatura(obtenido anteriormente): &amp;lt;math&amp;gt;∇T=(2*(Y+X)/((Y+X)^2)+2)&amp;lt;/math&amp;gt; &lt;br /&gt;
#El vector velocidad sera el siguiente: &amp;lt;math&amp;gt;v=2i &amp;lt;/math&amp;gt; &lt;br /&gt;
#Por ultimo aplicamos el gradiente a la direccion establecida para obtener la tasa: &amp;lt;math&amp;gt;TasaVariacion=∇T v =4/3&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Campo de desplazamientos==&lt;br /&gt;
Tomando el campo de desplazamientos &amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;, lo representaremos igual que el gradiente (flechas) con maor tamaño cuanta mayor es la intensidad del campo en una región.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%CAMPO VECTORIAL DE DESPLAZAMIENTOS&lt;br /&gt;
 %Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Representamos el campo vectorial de desplazamientos&lt;br /&gt;
quiver(X,Y,FX,FY) &lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
xlabel('Eje x')&lt;br /&gt;
ylabel('Eje y')&lt;br /&gt;
title('Campo de desplazamientos sobre la placa')&lt;br /&gt;
}}&lt;br /&gt;
===Campo de desplazamientos sobre la placa===&lt;br /&gt;
Aplicaremos el campo de desplazamientos sobre la placa para poder apreciar la deformacion que sufre esta por una fuerza externa (generadora del campo de desplazamientos).&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestro&lt;br /&gt;
h=0.1;&lt;br /&gt;
% Valores de parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Creación del mallado&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Matriz con las coordenadas en x, después del desplazamiento&lt;br /&gt;
Rx=FX+X;&lt;br /&gt;
%Matriz con las coordenadas en y, después del desplazamiento&lt;br /&gt;
Ry=FY+Y;&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido antes del desplazamiento &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,0*X);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo sin deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido tras del desplazamiento&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
mesh(Rx,Ry,0*Rx);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo con deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
}}&lt;br /&gt;
==Divergencia del campo de desplazamientos==&lt;br /&gt;
Para obtener una medida de la variacion producida en la placa por el campo de desplazamientos, utilizaremos la divergencia de este. Aparecera en el grafico un mapa de colores con la variacion de volumen producida durante la deformación. Además, el programa nos devolverá el maximo valor que alcanza dicha divergencia.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Divergencia&lt;br /&gt;
DIVERGENCIA= [2.*((sin(THETA)).^2).*(RHO.*(cos(THETA)-1)).*(1+(RHO.*cos(THETA))+0.5.*(RHO.*cos(THETA)-1)+cos(THETA))]-[((cos(THETA)).^2).*((RHO.*cos(THETA))-1).^2];&lt;br /&gt;
&lt;br /&gt;
MaxDivergencia=max(max(DIVERGENCIA))&lt;br /&gt;
&lt;br /&gt;
%Representación de la divergencia&lt;br /&gt;
surf(X,Y,DIVERGENCIA) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Divergencia')&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Rotacional del campo de desplazamientos==&lt;br /&gt;
Igual que con la divergencia, visualizaremos el rotacional del campo de desplazamientos con la siguiente programacion.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Rotacional&lt;br /&gt;
ROT= (-2.*(cos(THETA)-1./RHO).*sin(THETA).*cos(THETA).^2) - (2.*sin(THETA).*cos(THETA).*(RHO.*cos(THETA-1)).^2) + (2.*sin(THETA).^3) - (RHO.*(RHO.*cos(THETA)-1));&lt;br /&gt;
&lt;br /&gt;
%Comprobar que está bien sacado el rotacional&lt;br /&gt;
%Representación del rotacional&lt;br /&gt;
surf(X,Y,ROT) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Rotacional')&lt;br /&gt;
}}&lt;br /&gt;
==Tensiones ==&lt;br /&gt;
Definamos &amp;lt;math&amp;gt;e(u ̅ )=(∇u ⃗+〖∇u ⃗〗^t)/2&amp;lt;/math&amp;gt; , la parte simétrica del tensor gradiente de &amp;lt;math&amp;gt; u ̅&amp;lt;/math&amp;gt; conocido como tensor de deformaciones. En un medio elástico ideal, isótropo y homogéneo, los desplazamientos permiten escribir el tensor de tensiones a través de la fórmula &amp;lt;math&amp;gt;  σ=λ∇∙u ̅1+2µe&amp;lt;/math&amp;gt;, donde λ y µ son los conocidos como coeficientes de Lamé que dependen de las propiedades elásticas de cada material. A pesar de que los desplazamientos son planos, (es decir, &amp;lt;math&amp;gt;u ̅ &amp;lt;/math&amp;gt;no tiene componente en la dirección &amp;lt;math&amp;gt;k ̅&amp;lt;/math&amp;gt;) las tensiones no tienen por qué ser planas y puede haber tensiones en la dirección ortogonal al plano de la placa. Tomando λ = µ = 1, dibujar las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt;( g_ρ ) ⃗ &amp;lt;/math&amp;gt;, es decir &amp;lt;math&amp;gt; (g_ρ ) ⃗∙σ∙(g_ρ ) ⃗&amp;lt;/math&amp;gt;, las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt; (g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; (g_θ ) ⃗/ρ∙σ∙(g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, y las correspondientes al eje&amp;lt;math&amp;gt; k ⃗&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; k ⃗∙σ∙k ⃗&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables   &lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%Gradiente de un campo vectorial&lt;br /&gt;
U=[(RHO.*cos(THETA)-1).^2.*RHO.*sin(THETA).^2 , -(RHO.*cos(THETA)-1).^2.*sin(THETA).*cos(THETA)];&lt;br /&gt;
[dx,dy]=gradient(U);&lt;br /&gt;
&lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
subplot(2,3,1);&lt;br /&gt;
&lt;br /&gt;
 %Tomamos el valor (1,1) de la matriz sigma y lo dibujamos&lt;br /&gt;
 r=dx(1,1);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,r)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 view(2)&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
 subplot(2,3,2);   &lt;br /&gt;
     &lt;br /&gt;
 %Tomamos el valor (2,2) de la matriz sigma y lo dibujamos   &lt;br /&gt;
 t=dy(2,2);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,t)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 view(2)&lt;br /&gt;
 &lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a gz&lt;br /&gt;
% subplot(2,3,3)&lt;br /&gt;
 &lt;br /&gt;
 %Tomamos el valor (3,3) de la matriz sigma y lo dibujamos &lt;br /&gt;
 %z=           &lt;br /&gt;
     &lt;br /&gt;
 %surf(X,Y,z)&lt;br /&gt;
 &lt;br /&gt;
 %axis equal&lt;br /&gt;
% view(2)&lt;br /&gt;
% title('Tensiones respecto a gz')&lt;br /&gt;
 %colorbar&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Tensión de Von Mises==&lt;br /&gt;
	La tensión de Von Mises se define con la formula&lt;br /&gt;
&amp;lt;math&amp;gt;σ_VM=√((〖(σ_1-σ_2)〗^2+〖(σ_2-σ_3)〗^2+〖(σ_3-σ_1)〗^2)/2)&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt;σ_1&amp;lt;/math&amp;gt;,&amp;lt;math&amp;gt;σ_2&amp;lt;/math&amp;gt;  y&amp;lt;math&amp;gt;σ_3&amp;lt;/math&amp;gt; son los autovalores de &amp;lt;math&amp;gt; σ &amp;lt;/math&amp;gt;(también conocidos como tensiones superficiales). Se trata de una magnitud escalar que se suele usar como indicador para saber cuando un material inicia un comportamiento plástico (y no elástico puro). Pintar la tensión de Von Mises y señalar en que punto alcanza mayor valor. (Usar comando eig.m para calcular autovalores)&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos la matriz sigma&lt;br /&gt;
 Sig=zeros(3,3);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos la matriz de Von Mises &lt;br /&gt;
 MatrizVonMises=zeros(16,21); &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 %Obtenemos los valores de la tensión de Von Mises a partir de los autovalores&lt;br /&gt;
         for i=1:16&lt;br /&gt;
             for j=1:21&lt;br /&gt;
                r=RHO(i,j)';&lt;br /&gt;
                t=THETA(i,j)';&lt;br /&gt;
 &lt;br /&gt;
                Sig(1,1)=2*t/5+t*(2-1/r)/5;&lt;br /&gt;
 &lt;br /&gt;
                Sig(1,2)=(r-1)/(5*r^2);&lt;br /&gt;
 &lt;br /&gt;
                Sig(2,1)= (r-1)/(5*r^2);&lt;br /&gt;
 &lt;br /&gt;
                Sig(2,2)=2*t*(r-1)/(5*r^3)+t*(2-1/r)/(5);&lt;br /&gt;
                Sig(3,3)=t*(2-1/r)/5;&lt;br /&gt;
 &lt;br /&gt;
              %Obtención de los autovalores de la matriz sigma&lt;br /&gt;
                [v,d]=eig(Sig); &lt;br /&gt;
         &lt;br /&gt;
              %Fórmula de Von Mises&lt;br /&gt;
                MatrizVonMises11(i,j)=sqrt(((d(1,1)-d(2,2))^2+(d(2,2)-d(3,3))^2+(d(3,3)-d(1,1))^2)/2);  &lt;br /&gt;
 &lt;br /&gt;
            end&lt;br /&gt;
         end&lt;br /&gt;
 &lt;br /&gt;
     &lt;br /&gt;
 &lt;br /&gt;
 %Cambiamos a coordenadas cartesianas&lt;br /&gt;
 X=RHO.*cos(THETA);&lt;br /&gt;
 Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujamos la tensión de Von Mises&lt;br /&gt;
 surf(X,Y,MatrizVonMises)&lt;br /&gt;
 &lt;br /&gt;
 colorbar&lt;br /&gt;
 view(2)&lt;br /&gt;
 title('Tensión de Von Mises')&lt;br /&gt;
 &lt;br /&gt;
 %Valor Máximo&lt;br /&gt;
 ValorMaximo=max(max(MatrizVonMises))&lt;br /&gt;
 &lt;br /&gt;
 %Coordenadas del valor Máximo&lt;br /&gt;
 [i,j]=find(MatrizVonMises==ValorMaximo))))&lt;br /&gt;
 &lt;br /&gt;
 RHO(i,j)&lt;br /&gt;
 THETA(i,j)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Masa de la placa==&lt;br /&gt;
Finalmente, calcularemos la masa de la placa objeto de estudio. Esto se realizará mediante la integracion de la densida de la placa &amp;lt;math&amp;gt;d(x,y)=3+log⁡(1+|x|/(y+1)^4 )&amp;lt;/math&amp;gt;&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables    &lt;br /&gt;
h=0.1;&lt;br /&gt;
H=round(pi/h);&lt;br /&gt;
&lt;br /&gt;
rho=[1:h:3];          &lt;br /&gt;
theta=linspace(0,pi,H);&lt;br /&gt;
&lt;br /&gt;
%Creamos la parametrización&lt;br /&gt;
[RHO,THETA]=meshgrid(rho,theta);&lt;br /&gt;
&lt;br /&gt;
X=RHO.*cos(THETA);        &lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
d=3+log(1+abs(X)./(Y+1).^4);&lt;br /&gt;
&lt;br /&gt;
% Representamos graficamente la densidad en cada punto de la malla&lt;br /&gt;
surf(X,Y,d);&lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
axis square&lt;br /&gt;
%Cálculo de la masa total&lt;br /&gt;
MasaTotal=sum(sum(Densidad))&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>P.salvadores</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Ap.1.jpg&amp;diff=40649</id>
		<title>Archivo:Ap.1.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Ap.1.jpg&amp;diff=40649"/>
				<updated>2017-12-14T22:59:48Z</updated>
		
		<summary type="html">&lt;p&gt;P.salvadores: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>P.salvadores</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40648</id>
		<title>Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40648"/>
				<updated>2017-12-14T22:38:38Z</updated>
		
		<summary type="html">&lt;p&gt;P.salvadores: /* Variacion de temperatura */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{ TrabajoED | Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)| [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC17/18|2017-18]] | Pablo Salvadores, Raquel Marco }}&lt;br /&gt;
== Introducción== &lt;br /&gt;
Para la visualización de campos escalares y vectoriales, consideraremos una placa definida por el anillo circular centrado en el origen y comprendidos entre los radios 1/2 y 2, en el plano y≥0. Con esta definición, tendremos una placa formada por un semianillo circular. Consideraremos ademas como ejes los pertenecientes al rectángulo [-3,3]x[-1,3]. &lt;br /&gt;
Para simplificar la tarea de definir la placa, usaremos coordenadas cilindricas.&lt;br /&gt;
&lt;br /&gt;
En la placa vamos a suponer que tenemos definidas dos cantidades físicas: la temperatura &amp;lt;math&amp;gt;T(x,y)&amp;lt;/math&amp;gt; que depende de las dos variables espaciales (x,y), y los desplazamientos &amp;lt;math&amp;gt;u(x,y)&amp;lt;/math&amp;gt; producidos por la acción de una fuerza determinada. De esta forma, si definimos r0(x,y) como el vector posición de los puntos de la placa antes de la deformación, la posición de cada punto (x,y) de la placa después de la deformación viene dada por : &lt;br /&gt;
&amp;lt;math&amp;gt;r ̅(x,y)=(r_0 ) ̅(x,y)+u ̅(x,y)&amp;lt;/math&amp;gt;.&lt;br /&gt;
Vamos a suponer que la fuerza aplicada sobre la placa ha provocado un desplazamiento de los puntos de la misma dado por el vector de desplazamientos&lt;br /&gt;
&amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;&lt;br /&gt;
== Mallado ==&lt;br /&gt;
Comenzaremos planteando en Matlab el mallado de la placa con el fin de poder visualizarla en el espacio con mayor facilidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Paso de muestreo &lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de la parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
%Dibujo del mallado&lt;br /&gt;
mesh(X,Y,0*X) &lt;br /&gt;
title('Mallado')&lt;br /&gt;
%ajustar los ejes&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fig. 1|miniaturadeimagen|Placa]]&lt;br /&gt;
&lt;br /&gt;
== Temperatura==&lt;br /&gt;
A continuación, escribiremos en matlab el codigo necesario para obtener la funcion temperatura de la placa T(x,y). Para ayudarnos a la visualización, colorearemos la placa con las distintas temperaturas en cada punto de la misma junto con  las curvas de nivel, que unen los putnos con  misma temperatura en la placa. Ademas, obtendremos la temperatura maxima en la placa. La funcion temperatura que definira el campo será: &amp;lt;math&amp;gt;T(x,y)=log⁡((y+x)^2+2)&amp;lt;/math&amp;gt; &lt;br /&gt;
Nota: esta parte del codigo no es un programa en si. Para que funcione debidamente, debemos agregar la parte escrita en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Campo de temperatura&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 &lt;br /&gt;
 %Representación en 2D&lt;br /&gt;
subplot(1,2,1)&lt;br /&gt;
contour(X,Y,T)&lt;br /&gt;
view(2) &lt;br /&gt;
axis([-3,3,-1,3]);&lt;br /&gt;
title('Curvas de nivel de la Temperatura')&lt;br /&gt;
%Representacion Temperatura &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,T);&lt;br /&gt;
title('Temperatura')&lt;br /&gt;
&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
contour(X,Y,T,50);&lt;br /&gt;
colorbar&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
title('Curvas de nivel')&lt;br /&gt;
%Temperatura máxima&lt;br /&gt;
Tmax=max(max(T));&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Gradiente de temperatura==&lt;br /&gt;
El gradiente de la temperatura nos definirá en que direccion se produce la maxima variacion de temperatura en la placa. Para poder mantener el orden dentro de la programacion, abriremos otro programa que repetirá exactamente los mismos comandos que en el apartado 1 de manera que se nos genere un mallado. En este caso le añadiremos el gradiente de la temperatura a toda la placa en forma de campo vectorial con flechas que nos indicará la direccion que sigue el gradiente. Estas flechas serán perpendiculares a las lineas de nivel que habiamos dibujado previamente en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%inicializamos las variables&lt;br /&gt;
 h=0.1;&lt;br /&gt;
 &lt;br /&gt;
 rho=[1:h:2];&lt;br /&gt;
 H=round(pi/h);         &lt;br /&gt;
 theta=linspace(0,pi,H);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos el mallado y la parametrización&lt;br /&gt;
 [RHO,THETA]=meshgrid(rho,theta); &lt;br /&gt;
 &lt;br /&gt;
 X=RHO.*cos(THETA);        &lt;br /&gt;
 Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujamos el mallado&lt;br /&gt;
 mesh(X,Y,0*X) ; &lt;br /&gt;
 axis([-3,3,-1,3]); &lt;br /&gt;
 &lt;br /&gt;
 view(2);&lt;br /&gt;
 &lt;br /&gt;
 %GRADIENTE&lt;br /&gt;
 dx=((2*(Y+X))./(((Y+X).^2)+2));&lt;br /&gt;
 dy=dx;&lt;br /&gt;
 %CAMPO ESCALAR DE TEMPERATURAS&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 %Creación de la subventana primera: gradiente en el campo de temperaturas&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,1);&lt;br /&gt;
 hold on;&lt;br /&gt;
 surf(X,Y,T);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo del gradiente&lt;br /&gt;
 quiver3(X,Y,T,dx,dy,0*T);&lt;br /&gt;
 &lt;br /&gt;
 hold off;&lt;br /&gt;
 &lt;br /&gt;
 %Creación de la segunda subventana: campo vectorial del gradiente&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,2);&lt;br /&gt;
 quiver(X,Y,dx,dy); &lt;br /&gt;
 colorbar;&lt;br /&gt;
}}&lt;br /&gt;
=== Variacion de temperatura===&lt;br /&gt;
Calcularemos ahora la tasa de variacion de la temperatura que se produce al desplazarnos sobre la placa a una velocidad de 2m/s en la direccion del eje &amp;lt;math&amp;gt;i &amp;lt;/math&amp;gt;. Para esto, utilizaremos el gradiente calculado anteriormente y lo aplicaremos a la direccion antes mencionada, multiplicandola por la velocidad de desplazamiento dada.&lt;br /&gt;
De esta forma, la tasa de variacion para este caso específico será calculada del siguiente modo: &lt;br /&gt;
#Calculamos el gradiente de la temperatura(obtenido anteriormente): &amp;lt;math&amp;gt;∇T=(2*(Y+X)/((Y+X)^2)+2)&amp;lt;/math&amp;gt; &lt;br /&gt;
#El vector velocidad sera el siguiente: &amp;lt;math&amp;gt;v=2i &amp;lt;/math&amp;gt; &lt;br /&gt;
#Por ultimo aplicamos el gradiente a la direccion establecida para obtener la tasa: &amp;lt;math&amp;gt;TasaVariacion=∇T v =4/3&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Campo de desplazamientos==&lt;br /&gt;
Tomando el campo de desplazamientos &amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;, lo representaremos igual que el gradiente (flechas) con maor tamaño cuanta mayor es la intensidad del campo en una región.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%CAMPO VECTORIAL DE DESPLAZAMIENTOS&lt;br /&gt;
 %Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Representamos el campo vectorial de desplazamientos&lt;br /&gt;
quiver(X,Y,FX,FY) &lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
xlabel('Eje x')&lt;br /&gt;
ylabel('Eje y')&lt;br /&gt;
title('Campo de desplazamientos sobre la placa')&lt;br /&gt;
}}&lt;br /&gt;
===Campo de desplazamientos sobre la placa===&lt;br /&gt;
Aplicaremos el campo de desplazamientos sobre la placa para poder apreciar la deformacion que sufre esta por una fuerza externa (generadora del campo de desplazamientos).&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestro&lt;br /&gt;
h=0.1;&lt;br /&gt;
% Valores de parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Creación del mallado&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Matriz con las coordenadas en x, después del desplazamiento&lt;br /&gt;
Rx=FX+X;&lt;br /&gt;
%Matriz con las coordenadas en y, después del desplazamiento&lt;br /&gt;
Ry=FY+Y;&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido antes del desplazamiento &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,0*X);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo sin deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido tras del desplazamiento&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
mesh(Rx,Ry,0*Rx);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo con deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
}}&lt;br /&gt;
==Divergencia del campo de desplazamientos==&lt;br /&gt;
Para obtener una medida de la variacion producida en la placa por el campo de desplazamientos, utilizaremos la divergencia de este. Aparecera en el grafico un mapa de colores con la variacion de volumen producida durante la deformación. Además, el programa nos devolverá el maximo valor que alcanza dicha divergencia.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Divergencia&lt;br /&gt;
DIVERGENCIA= [2.*((sin(THETA)).^2).*(RHO.*(cos(THETA)-1)).*(1+(RHO.*cos(THETA))+0.5.*(RHO.*cos(THETA)-1)+cos(THETA))]-[((cos(THETA)).^2).*((RHO.*cos(THETA))-1).^2];&lt;br /&gt;
&lt;br /&gt;
MaxDivergencia=max(max(DIVERGENCIA))&lt;br /&gt;
&lt;br /&gt;
%Representación de la divergencia&lt;br /&gt;
surf(X,Y,DIVERGENCIA) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Divergencia')&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Rotacional del campo de desplazamientos==&lt;br /&gt;
Igual que con la divergencia, visualizaremos el rotacional del campo de desplazamientos con la siguiente programacion.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Rotacional&lt;br /&gt;
ROT= (-2.*(cos(THETA)-1./RHO).*sin(THETA).*cos(THETA).^2) - (2.*sin(THETA).*cos(THETA).*(RHO.*cos(THETA-1)).^2) + (2.*sin(THETA).^3) - (RHO.*(RHO.*cos(THETA)-1));&lt;br /&gt;
&lt;br /&gt;
%Comprobar que está bien sacado el rotacional&lt;br /&gt;
%Representación del rotacional&lt;br /&gt;
surf(X,Y,ROT) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Rotacional')&lt;br /&gt;
}}&lt;br /&gt;
==Tensiones ==&lt;br /&gt;
Definamos &amp;lt;math&amp;gt;e(u ̅ )=(∇u ⃗+〖∇u ⃗〗^t)/2&amp;lt;/math&amp;gt; , la parte simétrica del tensor gradiente de &amp;lt;math&amp;gt; u ̅&amp;lt;/math&amp;gt; conocido como tensor de deformaciones. En un medio elástico ideal, isótropo y homogéneo, los desplazamientos permiten escribir el tensor de tensiones a través de la fórmula &amp;lt;math&amp;gt;  σ=λ∇∙u ̅1+2µe&amp;lt;/math&amp;gt;, donde λ y µ son los conocidos como coeficientes de Lamé que dependen de las propiedades elásticas de cada material. A pesar de que los desplazamientos son planos, (es decir, &amp;lt;math&amp;gt;u ̅ &amp;lt;/math&amp;gt;no tiene componente en la dirección &amp;lt;math&amp;gt;k ̅&amp;lt;/math&amp;gt;) las tensiones no tienen por qué ser planas y puede haber tensiones en la dirección ortogonal al plano de la placa. Tomando λ = µ = 1, dibujar las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt;( g_ρ ) ⃗ &amp;lt;/math&amp;gt;, es decir &amp;lt;math&amp;gt; (g_ρ ) ⃗∙σ∙(g_ρ ) ⃗&amp;lt;/math&amp;gt;, las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt; (g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; (g_θ ) ⃗/ρ∙σ∙(g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, y las correspondientes al eje&amp;lt;math&amp;gt; k ⃗&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; k ⃗∙σ∙k ⃗&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables   &lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%Gradiente de un campo vectorial&lt;br /&gt;
U=[(RHO.*cos(THETA)-1).^2.*RHO.*sin(THETA).^2 , -(RHO.*cos(THETA)-1).^2.*sin(THETA).*cos(THETA)];&lt;br /&gt;
[dx,dy]=gradient(U);&lt;br /&gt;
&lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
subplot(2,3,1);&lt;br /&gt;
&lt;br /&gt;
 %Tomamos el valor (1,1) de la matriz sigma y lo dibujamos&lt;br /&gt;
 r=dx(1,1);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,r)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 view(2)&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
 subplot(2,3,2);   &lt;br /&gt;
     &lt;br /&gt;
 %Tomamos el valor (2,2) de la matriz sigma y lo dibujamos   &lt;br /&gt;
 t=dy(2,2);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,t)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 view(2)&lt;br /&gt;
 &lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a gz&lt;br /&gt;
% subplot(2,3,3)&lt;br /&gt;
 &lt;br /&gt;
 %Tomamos el valor (3,3) de la matriz sigma y lo dibujamos &lt;br /&gt;
 %z=           &lt;br /&gt;
     &lt;br /&gt;
 %surf(X,Y,z)&lt;br /&gt;
 &lt;br /&gt;
 %axis equal&lt;br /&gt;
% view(2)&lt;br /&gt;
% title('Tensiones respecto a gz')&lt;br /&gt;
 %colorbar&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Tensión de Von Mises==&lt;br /&gt;
	La tensión de Von Mises se define con la formula&lt;br /&gt;
&amp;lt;math&amp;gt;σ_VM=√((〖(σ_1-σ_2)〗^2+〖(σ_2-σ_3)〗^2+〖(σ_3-σ_1)〗^2)/2)&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt;σ_1&amp;lt;/math&amp;gt;,&amp;lt;math&amp;gt;σ_2&amp;lt;/math&amp;gt;  y&amp;lt;math&amp;gt;σ_3&amp;lt;/math&amp;gt; son los autovalores de &amp;lt;math&amp;gt; σ &amp;lt;/math&amp;gt;(también conocidos como tensiones superficiales). Se trata de una magnitud escalar que se suele usar como indicador para saber cuando un material inicia un comportamiento plástico (y no elástico puro). Pintar la tensión de Von Mises y señalar en que punto alcanza mayor valor. (Usar comando eig.m para calcular autovalores)&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos la matriz sigma&lt;br /&gt;
 Sig=zeros(3,3);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos la matriz de Von Mises &lt;br /&gt;
 MatrizVonMises=zeros(16,21); &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 %Obtenemos los valores de la tensión de Von Mises a partir de los autovalores&lt;br /&gt;
         for i=1:16&lt;br /&gt;
             for j=1:21&lt;br /&gt;
                r=RHO(i,j)';&lt;br /&gt;
                t=THETA(i,j)';&lt;br /&gt;
 &lt;br /&gt;
                Sig(1,1)=2*t/5+t*(2-1/r)/5;&lt;br /&gt;
 &lt;br /&gt;
                Sig(1,2)=(r-1)/(5*r^2);&lt;br /&gt;
 &lt;br /&gt;
                Sig(2,1)= (r-1)/(5*r^2);&lt;br /&gt;
 &lt;br /&gt;
                Sig(2,2)=2*t*(r-1)/(5*r^3)+t*(2-1/r)/(5);&lt;br /&gt;
                Sig(3,3)=t*(2-1/r)/5;&lt;br /&gt;
 &lt;br /&gt;
              %Obtención de los autovalores de la matriz sigma&lt;br /&gt;
                [v,d]=eig(Sig); &lt;br /&gt;
         &lt;br /&gt;
              %Fórmula de Von Mises&lt;br /&gt;
                MatrizVonMises11(i,j)=sqrt(((d(1,1)-d(2,2))^2+(d(2,2)-d(3,3))^2+(d(3,3)-d(1,1))^2)/2);  &lt;br /&gt;
 &lt;br /&gt;
            end&lt;br /&gt;
         end&lt;br /&gt;
 &lt;br /&gt;
     &lt;br /&gt;
 &lt;br /&gt;
 %Cambiamos a coordenadas cartesianas&lt;br /&gt;
 X=RHO.*cos(THETA);&lt;br /&gt;
 Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujamos la tensión de Von Mises&lt;br /&gt;
 surf(X,Y,MatrizVonMises)&lt;br /&gt;
 &lt;br /&gt;
 colorbar&lt;br /&gt;
 view(2)&lt;br /&gt;
 title('Tensión de Von Mises')&lt;br /&gt;
 &lt;br /&gt;
 %Valor Máximo&lt;br /&gt;
 ValorMaximo=max(max(MatrizVonMises))&lt;br /&gt;
 &lt;br /&gt;
 %Coordenadas del valor Máximo&lt;br /&gt;
 [i,j]=find(MatrizVonMises==ValorMaximo))))&lt;br /&gt;
 &lt;br /&gt;
 RHO(i,j)&lt;br /&gt;
 THETA(i,j)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Masa de la placa==&lt;br /&gt;
Finalmente, calcularemos la masa de la placa objeto de estudio. Esto se realizará mediante la integracion de la densida de la placa &amp;lt;math&amp;gt;d(x,y)=3+log⁡(1+|x|/(y+1)^4 )&amp;lt;/math&amp;gt;&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables    &lt;br /&gt;
h=0.1;&lt;br /&gt;
H=round(pi/h);&lt;br /&gt;
&lt;br /&gt;
rho=[1:h:3];          &lt;br /&gt;
theta=linspace(0,pi,H);&lt;br /&gt;
&lt;br /&gt;
%Creamos la parametrización&lt;br /&gt;
[RHO,THETA]=meshgrid(rho,theta);&lt;br /&gt;
&lt;br /&gt;
X=RHO.*cos(THETA);        &lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
d=3+log(1+abs(X)./(Y+1).^4);&lt;br /&gt;
&lt;br /&gt;
% Representamos graficamente la densidad en cada punto de la malla&lt;br /&gt;
surf(X,Y,d);&lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
axis square&lt;br /&gt;
%Cálculo de la masa total&lt;br /&gt;
MasaTotal=sum(sum(Densidad))&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>P.salvadores</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40647</id>
		<title>Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40647"/>
				<updated>2017-12-14T22:35:15Z</updated>
		
		<summary type="html">&lt;p&gt;P.salvadores: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{ TrabajoED | Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)| [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC17/18|2017-18]] | Pablo Salvadores, Raquel Marco }}&lt;br /&gt;
== Introducción== &lt;br /&gt;
Para la visualización de campos escalares y vectoriales, consideraremos una placa definida por el anillo circular centrado en el origen y comprendidos entre los radios 1/2 y 2, en el plano y≥0. Con esta definición, tendremos una placa formada por un semianillo circular. Consideraremos ademas como ejes los pertenecientes al rectángulo [-3,3]x[-1,3]. &lt;br /&gt;
Para simplificar la tarea de definir la placa, usaremos coordenadas cilindricas.&lt;br /&gt;
&lt;br /&gt;
En la placa vamos a suponer que tenemos definidas dos cantidades físicas: la temperatura &amp;lt;math&amp;gt;T(x,y)&amp;lt;/math&amp;gt; que depende de las dos variables espaciales (x,y), y los desplazamientos &amp;lt;math&amp;gt;u(x,y)&amp;lt;/math&amp;gt; producidos por la acción de una fuerza determinada. De esta forma, si definimos r0(x,y) como el vector posición de los puntos de la placa antes de la deformación, la posición de cada punto (x,y) de la placa después de la deformación viene dada por : &lt;br /&gt;
&amp;lt;math&amp;gt;r ̅(x,y)=(r_0 ) ̅(x,y)+u ̅(x,y)&amp;lt;/math&amp;gt;.&lt;br /&gt;
Vamos a suponer que la fuerza aplicada sobre la placa ha provocado un desplazamiento de los puntos de la misma dado por el vector de desplazamientos&lt;br /&gt;
&amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;&lt;br /&gt;
== Mallado ==&lt;br /&gt;
Comenzaremos planteando en Matlab el mallado de la placa con el fin de poder visualizarla en el espacio con mayor facilidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Paso de muestreo &lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de la parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
%Dibujo del mallado&lt;br /&gt;
mesh(X,Y,0*X) &lt;br /&gt;
title('Mallado')&lt;br /&gt;
%ajustar los ejes&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fig. 1|miniaturadeimagen|Placa]]&lt;br /&gt;
&lt;br /&gt;
== Temperatura==&lt;br /&gt;
A continuación, escribiremos en matlab el codigo necesario para obtener la funcion temperatura de la placa T(x,y). Para ayudarnos a la visualización, colorearemos la placa con las distintas temperaturas en cada punto de la misma junto con  las curvas de nivel, que unen los putnos con  misma temperatura en la placa. Ademas, obtendremos la temperatura maxima en la placa. La funcion temperatura que definira el campo será: &amp;lt;math&amp;gt;T(x,y)=log⁡((y+x)^2+2)&amp;lt;/math&amp;gt; &lt;br /&gt;
Nota: esta parte del codigo no es un programa en si. Para que funcione debidamente, debemos agregar la parte escrita en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Campo de temperatura&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 &lt;br /&gt;
 %Representación en 2D&lt;br /&gt;
subplot(1,2,1)&lt;br /&gt;
contour(X,Y,T)&lt;br /&gt;
view(2) &lt;br /&gt;
axis([-3,3,-1,3]);&lt;br /&gt;
title('Curvas de nivel de la Temperatura')&lt;br /&gt;
%Representacion Temperatura &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,T);&lt;br /&gt;
title('Temperatura')&lt;br /&gt;
&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
contour(X,Y,T,50);&lt;br /&gt;
colorbar&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
title('Curvas de nivel')&lt;br /&gt;
%Temperatura máxima&lt;br /&gt;
Tmax=max(max(T));&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Gradiente de temperatura==&lt;br /&gt;
El gradiente de la temperatura nos definirá en que direccion se produce la maxima variacion de temperatura en la placa. Para poder mantener el orden dentro de la programacion, abriremos otro programa que repetirá exactamente los mismos comandos que en el apartado 1 de manera que se nos genere un mallado. En este caso le añadiremos el gradiente de la temperatura a toda la placa en forma de campo vectorial con flechas que nos indicará la direccion que sigue el gradiente. Estas flechas serán perpendiculares a las lineas de nivel que habiamos dibujado previamente en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%inicializamos las variables&lt;br /&gt;
 h=0.1;&lt;br /&gt;
 &lt;br /&gt;
 rho=[1:h:2];&lt;br /&gt;
 H=round(pi/h);         &lt;br /&gt;
 theta=linspace(0,pi,H);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos el mallado y la parametrización&lt;br /&gt;
 [RHO,THETA]=meshgrid(rho,theta); &lt;br /&gt;
 &lt;br /&gt;
 X=RHO.*cos(THETA);        &lt;br /&gt;
 Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujamos el mallado&lt;br /&gt;
 mesh(X,Y,0*X) ; &lt;br /&gt;
 axis([-3,3,-1,3]); &lt;br /&gt;
 &lt;br /&gt;
 view(2);&lt;br /&gt;
 &lt;br /&gt;
 %GRADIENTE&lt;br /&gt;
 dx=((2*(Y+X))./(((Y+X).^2)+2));&lt;br /&gt;
 dy=dx;&lt;br /&gt;
 %CAMPO ESCALAR DE TEMPERATURAS&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 %Creación de la subventana primera: gradiente en el campo de temperaturas&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,1);&lt;br /&gt;
 hold on;&lt;br /&gt;
 surf(X,Y,T);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo del gradiente&lt;br /&gt;
 quiver3(X,Y,T,dx,dy,0*T);&lt;br /&gt;
 &lt;br /&gt;
 hold off;&lt;br /&gt;
 &lt;br /&gt;
 %Creación de la segunda subventana: campo vectorial del gradiente&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,2);&lt;br /&gt;
 quiver(X,Y,dx,dy); &lt;br /&gt;
 colorbar;&lt;br /&gt;
}}&lt;br /&gt;
=== Variacion de temperatura===&lt;br /&gt;
Calcularemos ahora la tasa de variacion de la temperatura que se produce al desplazarnos sobre la placa a una velocidad de 2m/s en la direccion del eje &amp;lt;math&amp;gt;i &amp;lt;/math&amp;gt;. Para esto, utilizaremos el gradiente calculado anteriormente y lo aplicaremos a la direccion antes mencionada, multiplicandola por la velocidad de desplazamiento dada.&lt;br /&gt;
De esta forma, la tasa de variacion para este caso específico será calculada del siguiente modo: &amp;lt;math&amp;gt;∇T=(2*(Y+X)/((Y+X)^2)+2)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;v=2i &amp;lt;/math&amp;gt; &lt;br /&gt;
&amp;lt;math&amp;gt;Tasa de variacion=∇T v =4/3&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==Campo de desplazamientos==&lt;br /&gt;
Tomando el campo de desplazamientos &amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;, lo representaremos igual que el gradiente (flechas) con maor tamaño cuanta mayor es la intensidad del campo en una región.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%CAMPO VECTORIAL DE DESPLAZAMIENTOS&lt;br /&gt;
 %Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Representamos el campo vectorial de desplazamientos&lt;br /&gt;
quiver(X,Y,FX,FY) &lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
xlabel('Eje x')&lt;br /&gt;
ylabel('Eje y')&lt;br /&gt;
title('Campo de desplazamientos sobre la placa')&lt;br /&gt;
}}&lt;br /&gt;
===Campo de desplazamientos sobre la placa===&lt;br /&gt;
Aplicaremos el campo de desplazamientos sobre la placa para poder apreciar la deformacion que sufre esta por una fuerza externa (generadora del campo de desplazamientos).&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestro&lt;br /&gt;
h=0.1;&lt;br /&gt;
% Valores de parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Creación del mallado&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Matriz con las coordenadas en x, después del desplazamiento&lt;br /&gt;
Rx=FX+X;&lt;br /&gt;
%Matriz con las coordenadas en y, después del desplazamiento&lt;br /&gt;
Ry=FY+Y;&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido antes del desplazamiento &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,0*X);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo sin deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido tras del desplazamiento&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
mesh(Rx,Ry,0*Rx);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo con deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
}}&lt;br /&gt;
==Divergencia del campo de desplazamientos==&lt;br /&gt;
Para obtener una medida de la variacion producida en la placa por el campo de desplazamientos, utilizaremos la divergencia de este. Aparecera en el grafico un mapa de colores con la variacion de volumen producida durante la deformación. Además, el programa nos devolverá el maximo valor que alcanza dicha divergencia.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Divergencia&lt;br /&gt;
DIVERGENCIA= [2.*((sin(THETA)).^2).*(RHO.*(cos(THETA)-1)).*(1+(RHO.*cos(THETA))+0.5.*(RHO.*cos(THETA)-1)+cos(THETA))]-[((cos(THETA)).^2).*((RHO.*cos(THETA))-1).^2];&lt;br /&gt;
&lt;br /&gt;
MaxDivergencia=max(max(DIVERGENCIA))&lt;br /&gt;
&lt;br /&gt;
%Representación de la divergencia&lt;br /&gt;
surf(X,Y,DIVERGENCIA) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Divergencia')&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Rotacional del campo de desplazamientos==&lt;br /&gt;
Igual que con la divergencia, visualizaremos el rotacional del campo de desplazamientos con la siguiente programacion.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Rotacional&lt;br /&gt;
ROT= (-2.*(cos(THETA)-1./RHO).*sin(THETA).*cos(THETA).^2) - (2.*sin(THETA).*cos(THETA).*(RHO.*cos(THETA-1)).^2) + (2.*sin(THETA).^3) - (RHO.*(RHO.*cos(THETA)-1));&lt;br /&gt;
&lt;br /&gt;
%Comprobar que está bien sacado el rotacional&lt;br /&gt;
%Representación del rotacional&lt;br /&gt;
surf(X,Y,ROT) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Rotacional')&lt;br /&gt;
}}&lt;br /&gt;
==Tensiones ==&lt;br /&gt;
Definamos &amp;lt;math&amp;gt;e(u ̅ )=(∇u ⃗+〖∇u ⃗〗^t)/2&amp;lt;/math&amp;gt; , la parte simétrica del tensor gradiente de &amp;lt;math&amp;gt; u ̅&amp;lt;/math&amp;gt; conocido como tensor de deformaciones. En un medio elástico ideal, isótropo y homogéneo, los desplazamientos permiten escribir el tensor de tensiones a través de la fórmula &amp;lt;math&amp;gt;  σ=λ∇∙u ̅1+2µe&amp;lt;/math&amp;gt;, donde λ y µ son los conocidos como coeficientes de Lamé que dependen de las propiedades elásticas de cada material. A pesar de que los desplazamientos son planos, (es decir, &amp;lt;math&amp;gt;u ̅ &amp;lt;/math&amp;gt;no tiene componente en la dirección &amp;lt;math&amp;gt;k ̅&amp;lt;/math&amp;gt;) las tensiones no tienen por qué ser planas y puede haber tensiones en la dirección ortogonal al plano de la placa. Tomando λ = µ = 1, dibujar las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt;( g_ρ ) ⃗ &amp;lt;/math&amp;gt;, es decir &amp;lt;math&amp;gt; (g_ρ ) ⃗∙σ∙(g_ρ ) ⃗&amp;lt;/math&amp;gt;, las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt; (g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; (g_θ ) ⃗/ρ∙σ∙(g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, y las correspondientes al eje&amp;lt;math&amp;gt; k ⃗&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; k ⃗∙σ∙k ⃗&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables   &lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%Gradiente de un campo vectorial&lt;br /&gt;
U=[(RHO.*cos(THETA)-1).^2.*RHO.*sin(THETA).^2 , -(RHO.*cos(THETA)-1).^2.*sin(THETA).*cos(THETA)];&lt;br /&gt;
[dx,dy]=gradient(U);&lt;br /&gt;
&lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
subplot(2,3,1);&lt;br /&gt;
&lt;br /&gt;
 %Tomamos el valor (1,1) de la matriz sigma y lo dibujamos&lt;br /&gt;
 r=dx(1,1);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,r)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 view(2)&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
 subplot(2,3,2);   &lt;br /&gt;
     &lt;br /&gt;
 %Tomamos el valor (2,2) de la matriz sigma y lo dibujamos   &lt;br /&gt;
 t=dy(2,2);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,t)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 view(2)&lt;br /&gt;
 &lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a gz&lt;br /&gt;
% subplot(2,3,3)&lt;br /&gt;
 &lt;br /&gt;
 %Tomamos el valor (3,3) de la matriz sigma y lo dibujamos &lt;br /&gt;
 %z=           &lt;br /&gt;
     &lt;br /&gt;
 %surf(X,Y,z)&lt;br /&gt;
 &lt;br /&gt;
 %axis equal&lt;br /&gt;
% view(2)&lt;br /&gt;
% title('Tensiones respecto a gz')&lt;br /&gt;
 %colorbar&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Tensión de Von Mises==&lt;br /&gt;
	La tensión de Von Mises se define con la formula&lt;br /&gt;
&amp;lt;math&amp;gt;σ_VM=√((〖(σ_1-σ_2)〗^2+〖(σ_2-σ_3)〗^2+〖(σ_3-σ_1)〗^2)/2)&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt;σ_1&amp;lt;/math&amp;gt;,&amp;lt;math&amp;gt;σ_2&amp;lt;/math&amp;gt;  y&amp;lt;math&amp;gt;σ_3&amp;lt;/math&amp;gt; son los autovalores de &amp;lt;math&amp;gt; σ &amp;lt;/math&amp;gt;(también conocidos como tensiones superficiales). Se trata de una magnitud escalar que se suele usar como indicador para saber cuando un material inicia un comportamiento plástico (y no elástico puro). Pintar la tensión de Von Mises y señalar en que punto alcanza mayor valor. (Usar comando eig.m para calcular autovalores)&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos la matriz sigma&lt;br /&gt;
 Sig=zeros(3,3);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos la matriz de Von Mises &lt;br /&gt;
 MatrizVonMises=zeros(16,21); &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 %Obtenemos los valores de la tensión de Von Mises a partir de los autovalores&lt;br /&gt;
         for i=1:16&lt;br /&gt;
             for j=1:21&lt;br /&gt;
                r=RHO(i,j)';&lt;br /&gt;
                t=THETA(i,j)';&lt;br /&gt;
 &lt;br /&gt;
                Sig(1,1)=2*t/5+t*(2-1/r)/5;&lt;br /&gt;
 &lt;br /&gt;
                Sig(1,2)=(r-1)/(5*r^2);&lt;br /&gt;
 &lt;br /&gt;
                Sig(2,1)= (r-1)/(5*r^2);&lt;br /&gt;
 &lt;br /&gt;
                Sig(2,2)=2*t*(r-1)/(5*r^3)+t*(2-1/r)/(5);&lt;br /&gt;
                Sig(3,3)=t*(2-1/r)/5;&lt;br /&gt;
 &lt;br /&gt;
              %Obtención de los autovalores de la matriz sigma&lt;br /&gt;
                [v,d]=eig(Sig); &lt;br /&gt;
         &lt;br /&gt;
              %Fórmula de Von Mises&lt;br /&gt;
                MatrizVonMises11(i,j)=sqrt(((d(1,1)-d(2,2))^2+(d(2,2)-d(3,3))^2+(d(3,3)-d(1,1))^2)/2);  &lt;br /&gt;
 &lt;br /&gt;
            end&lt;br /&gt;
         end&lt;br /&gt;
 &lt;br /&gt;
     &lt;br /&gt;
 &lt;br /&gt;
 %Cambiamos a coordenadas cartesianas&lt;br /&gt;
 X=RHO.*cos(THETA);&lt;br /&gt;
 Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujamos la tensión de Von Mises&lt;br /&gt;
 surf(X,Y,MatrizVonMises)&lt;br /&gt;
 &lt;br /&gt;
 colorbar&lt;br /&gt;
 view(2)&lt;br /&gt;
 title('Tensión de Von Mises')&lt;br /&gt;
 &lt;br /&gt;
 %Valor Máximo&lt;br /&gt;
 ValorMaximo=max(max(MatrizVonMises))&lt;br /&gt;
 &lt;br /&gt;
 %Coordenadas del valor Máximo&lt;br /&gt;
 [i,j]=find(MatrizVonMises==ValorMaximo))))&lt;br /&gt;
 &lt;br /&gt;
 RHO(i,j)&lt;br /&gt;
 THETA(i,j)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Masa de la placa==&lt;br /&gt;
Finalmente, calcularemos la masa de la placa objeto de estudio. Esto se realizará mediante la integracion de la densida de la placa &amp;lt;math&amp;gt;d(x,y)=3+log⁡(1+|x|/(y+1)^4 )&amp;lt;/math&amp;gt;&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables    &lt;br /&gt;
h=0.1;&lt;br /&gt;
H=round(pi/h);&lt;br /&gt;
&lt;br /&gt;
rho=[1:h:3];          &lt;br /&gt;
theta=linspace(0,pi,H);&lt;br /&gt;
&lt;br /&gt;
%Creamos la parametrización&lt;br /&gt;
[RHO,THETA]=meshgrid(rho,theta);&lt;br /&gt;
&lt;br /&gt;
X=RHO.*cos(THETA);        &lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
d=3+log(1+abs(X)./(Y+1).^4);&lt;br /&gt;
&lt;br /&gt;
% Representamos graficamente la densidad en cada punto de la malla&lt;br /&gt;
surf(X,Y,d);&lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
axis square&lt;br /&gt;
%Cálculo de la masa total&lt;br /&gt;
MasaTotal=sum(sum(Densidad))&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>P.salvadores</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40646</id>
		<title>Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40646"/>
				<updated>2017-12-14T22:25:54Z</updated>
		
		<summary type="html">&lt;p&gt;P.salvadores: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{ TrabajoED | Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)| [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC17/18|2017-18]] | Pablo Salvadores, Raquel Marco }}&lt;br /&gt;
== Introducción== &lt;br /&gt;
Para la visualización de campos escalares y vectoriales, consideraremos una placa definida por el anillo circular centrado en el origen y comprendidos entre los radios 1/2 y 2, en el plano y≥0. Con esta definición, tendremos una placa formada por un semianillo circular. Consideraremos ademas como ejes los pertenecientes al rectángulo [-3,3]x[-1,3]. &lt;br /&gt;
Para simplificar la tarea de definir la placa, usaremos coordenadas cilindricas.&lt;br /&gt;
&lt;br /&gt;
En la placa vamos a suponer que tenemos definidas dos cantidades físicas: la temperatura &amp;lt;math&amp;gt;T(x,y)&amp;lt;/math&amp;gt; que depende de las dos variables espaciales (x,y), y los desplazamientos &amp;lt;math&amp;gt;u(x,y)&amp;lt;/math&amp;gt; producidos por la acción de una fuerza determinada. De esta forma, si definimos r0(x,y) como el vector posición de los puntos de la placa antes de la deformación, la posición de cada punto (x,y) de la placa después de la deformación viene dada por : &lt;br /&gt;
&amp;lt;math&amp;gt;r ̅(x,y)=(r_0 ) ̅(x,y)+u ̅(x,y)&amp;lt;/math&amp;gt;.&lt;br /&gt;
Vamos a suponer que la fuerza aplicada sobre la placa ha provocado un desplazamiento de los puntos de la misma dado por el vector de desplazamientos&lt;br /&gt;
&amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;&lt;br /&gt;
== Mallado ==&lt;br /&gt;
Comenzaremos planteando en Matlab el mallado de la placa con el fin de poder visualizarla en el espacio con mayor facilidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Paso de muestreo &lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de la parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
%Dibujo del mallado&lt;br /&gt;
mesh(X,Y,0*X) &lt;br /&gt;
title('Mallado')&lt;br /&gt;
%ajustar los ejes&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fig. 1|miniaturadeimagen|Placa]]&lt;br /&gt;
&lt;br /&gt;
== Temperatura==&lt;br /&gt;
A continuación, escribiremos en matlab el codigo necesario para obtener la funcion temperatura de la placa T(x,y). Para ayudarnos a la visualización, colorearemos la placa con las distintas temperaturas en cada punto de la misma junto con  las curvas de nivel, que unen los putnos con  misma temperatura en la placa. Ademas, obtendremos la temperatura maxima en la placa. La funcion temperatura que definira el campo será: &amp;lt;math&amp;gt;T(x,y)=log⁡((y+x)^2+2)&amp;lt;/math&amp;gt; &lt;br /&gt;
Nota: esta parte del codigo no es un programa en si. Para que funcione debidamente, debemos agregar la parte escrita en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Campo de temperatura&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 &lt;br /&gt;
 %Representación en 2D&lt;br /&gt;
subplot(1,2,1)&lt;br /&gt;
contour(X,Y,T)&lt;br /&gt;
view(2) &lt;br /&gt;
axis([-3,3,-1,3]);&lt;br /&gt;
title('Curvas de nivel de la Temperatura')&lt;br /&gt;
%Representacion Temperatura &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,T);&lt;br /&gt;
title('Temperatura')&lt;br /&gt;
&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
contour(X,Y,T,50);&lt;br /&gt;
colorbar&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
title('Curvas de nivel')&lt;br /&gt;
%Temperatura máxima&lt;br /&gt;
Tmax=max(max(T));&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Gradiente de temperatura==&lt;br /&gt;
El gradiente de la temperatura nos definirá en que direccion se produce la maxima variacion de temperatura en la placa. Para poder mantener el orden dentro de la programacion, abriremos otro programa que repetirá exactamente los mismos comandos que en el apartado 1 de manera que se nos genere un mallado. En este caso le añadiremos el gradiente de la temperatura a toda la placa en forma de campo vectorial con flechas que nos indicará la direccion que sigue el gradiente. Estas flechas serán perpendiculares a las lineas de nivel que habiamos dibujado previamente en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%inicializamos las variables&lt;br /&gt;
 h=0.1;&lt;br /&gt;
 &lt;br /&gt;
 rho=[1:h:2];&lt;br /&gt;
 H=round(pi/h);         &lt;br /&gt;
 theta=linspace(0,pi,H);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos el mallado y la parametrización&lt;br /&gt;
 [RHO,THETA]=meshgrid(rho,theta); &lt;br /&gt;
 &lt;br /&gt;
 X=RHO.*cos(THETA);        &lt;br /&gt;
 Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujamos el mallado&lt;br /&gt;
 mesh(X,Y,0*X) ; &lt;br /&gt;
 axis([-3,3,-1,3]); &lt;br /&gt;
 &lt;br /&gt;
 view(2);&lt;br /&gt;
 &lt;br /&gt;
 %GRADIENTE&lt;br /&gt;
 dx=((2*(Y+X))./(((Y+X).^2)+2));&lt;br /&gt;
 dy=dx;&lt;br /&gt;
 %CAMPO ESCALAR DE TEMPERATURAS&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 %Creación de la subventana primera: gradiente en el campo de temperaturas&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,1);&lt;br /&gt;
 hold on;&lt;br /&gt;
 surf(X,Y,T);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo del gradiente&lt;br /&gt;
 quiver3(X,Y,T,dx,dy,0*T);&lt;br /&gt;
 &lt;br /&gt;
 hold off;&lt;br /&gt;
 &lt;br /&gt;
 %Creación de la segunda subventana: campo vectorial del gradiente&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,2);&lt;br /&gt;
 quiver(X,Y,dx,dy); &lt;br /&gt;
 colorbar;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Campo de desplazamientos==&lt;br /&gt;
Tomando el campo de desplazamientos &amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;, lo representaremos igual que el gradiente (flechas) con maor tamaño cuanta mayor es la intensidad del campo en una región.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%CAMPO VECTORIAL DE DESPLAZAMIENTOS&lt;br /&gt;
 %Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Representamos el campo vectorial de desplazamientos&lt;br /&gt;
quiver(X,Y,FX,FY) &lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
xlabel('Eje x')&lt;br /&gt;
ylabel('Eje y')&lt;br /&gt;
title('Campo de desplazamientos sobre la placa')&lt;br /&gt;
}}&lt;br /&gt;
===Campo de desplazamientos sobre la placa===&lt;br /&gt;
Aplicaremos el campo de desplazamientos sobre la placa para poder apreciar la deformacion que sufre esta por una fuerza externa (generadora del campo de desplazamientos).&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestro&lt;br /&gt;
h=0.1;&lt;br /&gt;
% Valores de parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Creación del mallado&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Matriz con las coordenadas en x, después del desplazamiento&lt;br /&gt;
Rx=FX+X;&lt;br /&gt;
%Matriz con las coordenadas en y, después del desplazamiento&lt;br /&gt;
Ry=FY+Y;&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido antes del desplazamiento &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,0*X);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo sin deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido tras del desplazamiento&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
mesh(Rx,Ry,0*Rx);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo con deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
}}&lt;br /&gt;
==Divergencia del campo de desplazamientos==&lt;br /&gt;
Para obtener una medida de la variacion producida en la placa por el campo de desplazamientos, utilizaremos la divergencia de este. Aparecera en el grafico un mapa de colores con la variacion de volumen producida durante la deformación. Además, el programa nos devolverá el maximo valor que alcanza dicha divergencia.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Divergencia&lt;br /&gt;
DIVERGENCIA= [2.*((sin(THETA)).^2).*(RHO.*(cos(THETA)-1)).*(1+(RHO.*cos(THETA))+0.5.*(RHO.*cos(THETA)-1)+cos(THETA))]-[((cos(THETA)).^2).*((RHO.*cos(THETA))-1).^2];&lt;br /&gt;
&lt;br /&gt;
MaxDivergencia=max(max(DIVERGENCIA))&lt;br /&gt;
&lt;br /&gt;
%Representación de la divergencia&lt;br /&gt;
surf(X,Y,DIVERGENCIA) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Divergencia')&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Rotacional del campo de desplazamientos==&lt;br /&gt;
Igual que con la divergencia, visualizaremos el rotacional del campo de desplazamientos con la siguiente programacion.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Rotacional&lt;br /&gt;
ROT= (-2.*(cos(THETA)-1./RHO).*sin(THETA).*cos(THETA).^2) - (2.*sin(THETA).*cos(THETA).*(RHO.*cos(THETA-1)).^2) + (2.*sin(THETA).^3) - (RHO.*(RHO.*cos(THETA)-1));&lt;br /&gt;
&lt;br /&gt;
%Comprobar que está bien sacado el rotacional&lt;br /&gt;
%Representación del rotacional&lt;br /&gt;
surf(X,Y,ROT) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Rotacional')&lt;br /&gt;
}}&lt;br /&gt;
==Tensiones ==&lt;br /&gt;
Definamos &amp;lt;math&amp;gt;e(u ̅ )=(∇u ⃗+〖∇u ⃗〗^t)/2&amp;lt;/math&amp;gt; , la parte simétrica del tensor gradiente de &amp;lt;math&amp;gt; u ̅&amp;lt;/math&amp;gt; conocido como tensor de deformaciones. En un medio elástico ideal, isótropo y homogéneo, los desplazamientos permiten escribir el tensor de tensiones a través de la fórmula &amp;lt;math&amp;gt;  σ=λ∇∙u ̅1+2µe&amp;lt;/math&amp;gt;, donde λ y µ son los conocidos como coeficientes de Lamé que dependen de las propiedades elásticas de cada material. A pesar de que los desplazamientos son planos, (es decir, &amp;lt;math&amp;gt;u ̅ &amp;lt;/math&amp;gt;no tiene componente en la dirección &amp;lt;math&amp;gt;k ̅&amp;lt;/math&amp;gt;) las tensiones no tienen por qué ser planas y puede haber tensiones en la dirección ortogonal al plano de la placa. Tomando λ = µ = 1, dibujar las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt;( g_ρ ) ⃗ &amp;lt;/math&amp;gt;, es decir &amp;lt;math&amp;gt; (g_ρ ) ⃗∙σ∙(g_ρ ) ⃗&amp;lt;/math&amp;gt;, las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt; (g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; (g_θ ) ⃗/ρ∙σ∙(g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, y las correspondientes al eje&amp;lt;math&amp;gt; k ⃗&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; k ⃗∙σ∙k ⃗&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables   &lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%Gradiente de un campo vectorial&lt;br /&gt;
U=[(RHO.*cos(THETA)-1).^2.*RHO.*sin(THETA).^2 , -(RHO.*cos(THETA)-1).^2.*sin(THETA).*cos(THETA)];&lt;br /&gt;
[dx,dy]=gradient(U);&lt;br /&gt;
&lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
subplot(2,3,1);&lt;br /&gt;
&lt;br /&gt;
 %Tomamos el valor (1,1) de la matriz sigma y lo dibujamos&lt;br /&gt;
 r=dx(1,1);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,r)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 view(2)&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
 subplot(2,3,2);   &lt;br /&gt;
     &lt;br /&gt;
 %Tomamos el valor (2,2) de la matriz sigma y lo dibujamos   &lt;br /&gt;
 t=dy(2,2);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,t)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 view(2)&lt;br /&gt;
 &lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a gz&lt;br /&gt;
% subplot(2,3,3)&lt;br /&gt;
 &lt;br /&gt;
 %Tomamos el valor (3,3) de la matriz sigma y lo dibujamos &lt;br /&gt;
 %z=           &lt;br /&gt;
     &lt;br /&gt;
 %surf(X,Y,z)&lt;br /&gt;
 &lt;br /&gt;
 %axis equal&lt;br /&gt;
% view(2)&lt;br /&gt;
% title('Tensiones respecto a gz')&lt;br /&gt;
 %colorbar&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Tensión de Von Mises==&lt;br /&gt;
	La tensión de Von Mises se define con la formula&lt;br /&gt;
&amp;lt;math&amp;gt;σ_VM=√((〖(σ_1-σ_2)〗^2+〖(σ_2-σ_3)〗^2+〖(σ_3-σ_1)〗^2)/2)&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt;σ_1&amp;lt;/math&amp;gt;,&amp;lt;math&amp;gt;σ_2&amp;lt;/math&amp;gt;  y&amp;lt;math&amp;gt;σ_3&amp;lt;/math&amp;gt; son los autovalores de &amp;lt;math&amp;gt; σ &amp;lt;/math&amp;gt;(también conocidos como tensiones superficiales). Se trata de una magnitud escalar que se suele usar como indicador para saber cuando un material inicia un comportamiento plástico (y no elástico puro). Pintar la tensión de Von Mises y señalar en que punto alcanza mayor valor. (Usar comando eig.m para calcular autovalores)&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos la matriz sigma&lt;br /&gt;
 Sig=zeros(3,3);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos la matriz de Von Mises &lt;br /&gt;
 MatrizVonMises=zeros(16,21); &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 %Obtenemos los valores de la tensión de Von Mises a partir de los autovalores&lt;br /&gt;
         for i=1:16&lt;br /&gt;
             for j=1:21&lt;br /&gt;
                r=RHO(i,j)';&lt;br /&gt;
                t=THETA(i,j)';&lt;br /&gt;
 &lt;br /&gt;
                Sig(1,1)=2*t/5+t*(2-1/r)/5;&lt;br /&gt;
 &lt;br /&gt;
                Sig(1,2)=(r-1)/(5*r^2);&lt;br /&gt;
 &lt;br /&gt;
                Sig(2,1)= (r-1)/(5*r^2);&lt;br /&gt;
 &lt;br /&gt;
                Sig(2,2)=2*t*(r-1)/(5*r^3)+t*(2-1/r)/(5);&lt;br /&gt;
                Sig(3,3)=t*(2-1/r)/5;&lt;br /&gt;
 &lt;br /&gt;
              %Obtención de los autovalores de la matriz sigma&lt;br /&gt;
                [v,d]=eig(Sig); &lt;br /&gt;
         &lt;br /&gt;
              %Fórmula de Von Mises&lt;br /&gt;
                MatrizVonMises11(i,j)=sqrt(((d(1,1)-d(2,2))^2+(d(2,2)-d(3,3))^2+(d(3,3)-d(1,1))^2)/2);  &lt;br /&gt;
 &lt;br /&gt;
            end&lt;br /&gt;
         end&lt;br /&gt;
 &lt;br /&gt;
     &lt;br /&gt;
 &lt;br /&gt;
 %Cambiamos a coordenadas cartesianas&lt;br /&gt;
 X=RHO.*cos(THETA);&lt;br /&gt;
 Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujamos la tensión de Von Mises&lt;br /&gt;
 surf(X,Y,MatrizVonMises)&lt;br /&gt;
 &lt;br /&gt;
 colorbar&lt;br /&gt;
 view(2)&lt;br /&gt;
 title('Tensión de Von Mises')&lt;br /&gt;
 &lt;br /&gt;
 %Valor Máximo&lt;br /&gt;
 ValorMaximo=max(max(MatrizVonMises))&lt;br /&gt;
 &lt;br /&gt;
 %Coordenadas del valor Máximo&lt;br /&gt;
 [i,j]=find(MatrizVonMises==ValorMaximo))))&lt;br /&gt;
 &lt;br /&gt;
 RHO(i,j)&lt;br /&gt;
 THETA(i,j)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Masa de la placa==&lt;br /&gt;
Finalmente, calcularemos la masa de la placa objeto de estudio. Esto se realizará mediante la integracion de la densida de la placa &amp;lt;math&amp;gt;d(x,y)=3+log⁡(1+|x|/(y+1)^4 )&amp;lt;/math&amp;gt;&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables    &lt;br /&gt;
h=0.1;&lt;br /&gt;
H=round(pi/h);&lt;br /&gt;
&lt;br /&gt;
rho=[1:h:3];          &lt;br /&gt;
theta=linspace(0,pi,H);&lt;br /&gt;
&lt;br /&gt;
%Creamos la parametrización&lt;br /&gt;
[RHO,THETA]=meshgrid(rho,theta);&lt;br /&gt;
&lt;br /&gt;
X=RHO.*cos(THETA);        &lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
d=3+log(1+abs(X)./(Y+1).^4);&lt;br /&gt;
&lt;br /&gt;
% Representamos graficamente la densidad en cada punto de la malla&lt;br /&gt;
surf(X,Y,d);&lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
axis square&lt;br /&gt;
%Cálculo de la masa total&lt;br /&gt;
MasaTotal=sum(sum(Densidad))&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>P.salvadores</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40645</id>
		<title>Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40645"/>
				<updated>2017-12-14T22:23:48Z</updated>
		
		<summary type="html">&lt;p&gt;P.salvadores: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Beta}}&lt;br /&gt;
{{ TrabajoED | Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)| [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC17/18|2017-18]] | Pablo Salvadores, Raquel Marco }}&lt;br /&gt;
== Introducción== &lt;br /&gt;
Para la visualización de campos escalares y vectoriales, consideraremos una placa definida por el anillo circular centrado en el origen y comprendidos entre los radios 1/2 y 2, en el plano y≥0. Con esta definición, tendremos una placa formada por un semianillo circular. Consideraremos ademas como ejes los pertenecientes al rectángulo [-3,3]x[-1,3]. &lt;br /&gt;
Para simplificar la tarea de definir la placa, usaremos coordenadas cilindricas.&lt;br /&gt;
&lt;br /&gt;
En la placa vamos a suponer que tenemos definidas dos cantidades físicas: la temperatura &amp;lt;math&amp;gt;T(x,y)&amp;lt;/math&amp;gt; que depende de las dos variables espaciales (x,y), y los desplazamientos &amp;lt;math&amp;gt;u(x,y)&amp;lt;/math&amp;gt; producidos por la acción de una fuerza determinada. De esta forma, si definimos r0(x,y) como el vector posición de los puntos de la placa antes de la deformación, la posición de cada punto (x,y) de la placa después de la deformación viene dada por : &lt;br /&gt;
&amp;lt;math&amp;gt;r ̅(x,y)=(r_0 ) ̅(x,y)+u ̅(x,y)&amp;lt;/math&amp;gt;.&lt;br /&gt;
Vamos a suponer que la fuerza aplicada sobre la placa ha provocado un desplazamiento de los puntos de la misma dado por el vector de desplazamientos&lt;br /&gt;
&amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;&lt;br /&gt;
== Mallado ==&lt;br /&gt;
Comenzaremos planteando en Matlab el mallado de la placa con el fin de poder visualizarla en el espacio con mayor facilidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Paso de muestreo &lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de la parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
%Dibujo del mallado&lt;br /&gt;
mesh(X,Y,0*X) &lt;br /&gt;
title('Mallado')&lt;br /&gt;
%ajustar los ejes&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Fig. 1|miniaturadeimagen|Placa]]&lt;br /&gt;
&lt;br /&gt;
== Temperatura==&lt;br /&gt;
A continuación, escribiremos en matlab el codigo necesario para obtener la funcion temperatura de la placa T(x,y). Para ayudarnos a la visualización, colorearemos la placa con las distintas temperaturas en cada punto de la misma junto con  las curvas de nivel, que unen los putnos con  misma temperatura en la placa. Ademas, obtendremos la temperatura maxima en la placa. La funcion temperatura que definira el campo será: &amp;lt;math&amp;gt;T(x,y)=log⁡((y+x)^2+2)&amp;lt;/math&amp;gt; &lt;br /&gt;
Nota: esta parte del codigo no es un programa en si. Para que funcione debidamente, debemos agregar la parte escrita en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Campo de temperatura&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 &lt;br /&gt;
 %Representación en 2D&lt;br /&gt;
subplot(1,2,1)&lt;br /&gt;
contour(X,Y,T)&lt;br /&gt;
view(2) &lt;br /&gt;
axis([-3,3,-1,3]);&lt;br /&gt;
title('Curvas de nivel de la Temperatura')&lt;br /&gt;
%Representacion Temperatura &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,T);&lt;br /&gt;
title('Temperatura')&lt;br /&gt;
&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
contour(X,Y,T,50);&lt;br /&gt;
colorbar&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
title('Curvas de nivel')&lt;br /&gt;
%Temperatura máxima&lt;br /&gt;
Tmax=max(max(T));&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Gradiente de temperatura==&lt;br /&gt;
El gradiente de la temperatura nos definirá en que direccion se produce la maxima variacion de temperatura en la placa. Para poder mantener el orden dentro de la programacion, abriremos otro programa que repetirá exactamente los mismos comandos que en el apartado 1 de manera que se nos genere un mallado. En este caso le añadiremos el gradiente de la temperatura a toda la placa en forma de campo vectorial con flechas que nos indicará la direccion que sigue el gradiente. Estas flechas serán perpendiculares a las lineas de nivel que habiamos dibujado previamente en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%inicializamos las variables&lt;br /&gt;
 h=0.1;&lt;br /&gt;
 &lt;br /&gt;
 rho=[1:h:2];&lt;br /&gt;
 H=round(pi/h);         &lt;br /&gt;
 theta=linspace(0,pi,H);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos el mallado y la parametrización&lt;br /&gt;
 [RHO,THETA]=meshgrid(rho,theta); &lt;br /&gt;
 &lt;br /&gt;
 X=RHO.*cos(THETA);        &lt;br /&gt;
 Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujamos el mallado&lt;br /&gt;
 mesh(X,Y,0*X) ; &lt;br /&gt;
 axis([-3,3,-1,3]); &lt;br /&gt;
 &lt;br /&gt;
 view(2);&lt;br /&gt;
 &lt;br /&gt;
 %GRADIENTE&lt;br /&gt;
 dx=((2*(Y+X))./(((Y+X).^2)+2));&lt;br /&gt;
 dy=dx;&lt;br /&gt;
 %CAMPO ESCALAR DE TEMPERATURAS&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 %Creación de la subventana primera: gradiente en el campo de temperaturas&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,1);&lt;br /&gt;
 hold on;&lt;br /&gt;
 surf(X,Y,T);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo del gradiente&lt;br /&gt;
 quiver3(X,Y,T,dx,dy,0*T);&lt;br /&gt;
 &lt;br /&gt;
 hold off;&lt;br /&gt;
 &lt;br /&gt;
 %Creación de la segunda subventana: campo vectorial del gradiente&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,2);&lt;br /&gt;
 quiver(X,Y,dx,dy); &lt;br /&gt;
 colorbar;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Campo de desplazamientos==&lt;br /&gt;
Tomando el campo de desplazamientos &amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;, lo representaremos igual que el gradiente (flechas) con maor tamaño cuanta mayor es la intensidad del campo en una región.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%CAMPO VECTORIAL DE DESPLAZAMIENTOS&lt;br /&gt;
 %Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Representamos el campo vectorial de desplazamientos&lt;br /&gt;
quiver(X,Y,FX,FY) &lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
xlabel('Eje x')&lt;br /&gt;
ylabel('Eje y')&lt;br /&gt;
title('Campo de desplazamientos sobre la placa')&lt;br /&gt;
}}&lt;br /&gt;
===Campo de desplazamientos sobre la placa===&lt;br /&gt;
Aplicaremos el campo de desplazamientos sobre la placa para poder apreciar la deformacion que sufre esta por una fuerza externa (generadora del campo de desplazamientos).&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestro&lt;br /&gt;
h=0.1;&lt;br /&gt;
% Valores de parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Creación del mallado&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Matriz con las coordenadas en x, después del desplazamiento&lt;br /&gt;
Rx=FX+X;&lt;br /&gt;
%Matriz con las coordenadas en y, después del desplazamiento&lt;br /&gt;
Ry=FY+Y;&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido antes del desplazamiento &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,0*X);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo sin deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido tras del desplazamiento&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
mesh(Rx,Ry,0*Rx);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo con deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
}}&lt;br /&gt;
==Divergencia del campo de desplazamientos==&lt;br /&gt;
Para obtener una medida de la variacion producida en la placa por el campo de desplazamientos, utilizaremos la divergencia de este. Aparecera en el grafico un mapa de colores con la variacion de volumen producida durante la deformación. Además, el programa nos devolverá el maximo valor que alcanza dicha divergencia.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Divergencia&lt;br /&gt;
DIVERGENCIA= [2.*((sin(THETA)).^2).*(RHO.*(cos(THETA)-1)).*(1+(RHO.*cos(THETA))+0.5.*(RHO.*cos(THETA)-1)+cos(THETA))]-[((cos(THETA)).^2).*((RHO.*cos(THETA))-1).^2];&lt;br /&gt;
&lt;br /&gt;
MaxDivergencia=max(max(DIVERGENCIA))&lt;br /&gt;
&lt;br /&gt;
%Representación de la divergencia&lt;br /&gt;
surf(X,Y,DIVERGENCIA) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Divergencia')&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Rotacional del campo de desplazamientos==&lt;br /&gt;
Igual que con la divergencia, visualizaremos el rotacional del campo de desplazamientos con la siguiente programacion.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Rotacional&lt;br /&gt;
ROT= (-2.*(cos(THETA)-1./RHO).*sin(THETA).*cos(THETA).^2) - (2.*sin(THETA).*cos(THETA).*(RHO.*cos(THETA-1)).^2) + (2.*sin(THETA).^3) - (RHO.*(RHO.*cos(THETA)-1));&lt;br /&gt;
&lt;br /&gt;
%Comprobar que está bien sacado el rotacional&lt;br /&gt;
%Representación del rotacional&lt;br /&gt;
surf(X,Y,ROT) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Rotacional')&lt;br /&gt;
}}&lt;br /&gt;
==Tensiones ==&lt;br /&gt;
Definamos &amp;lt;math&amp;gt;e(u ̅ )=(∇u ⃗+〖∇u ⃗〗^t)/2&amp;lt;/math&amp;gt; , la parte simétrica del tensor gradiente de &amp;lt;math&amp;gt; u ̅&amp;lt;/math&amp;gt; conocido como tensor de deformaciones. En un medio elástico ideal, isótropo y homogéneo, los desplazamientos permiten escribir el tensor de tensiones a través de la fórmula &amp;lt;math&amp;gt;  σ=λ∇∙u ̅1+2µe&amp;lt;/math&amp;gt;, donde λ y µ son los conocidos como coeficientes de Lamé que dependen de las propiedades elásticas de cada material. A pesar de que los desplazamientos son planos, (es decir, &amp;lt;math&amp;gt;u ̅ &amp;lt;/math&amp;gt;no tiene componente en la dirección &amp;lt;math&amp;gt;k ̅&amp;lt;/math&amp;gt;) las tensiones no tienen por qué ser planas y puede haber tensiones en la dirección ortogonal al plano de la placa. Tomando λ = µ = 1, dibujar las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt;( g_ρ ) ⃗ &amp;lt;/math&amp;gt;, es decir &amp;lt;math&amp;gt; (g_ρ ) ⃗∙σ∙(g_ρ ) ⃗&amp;lt;/math&amp;gt;, las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt; (g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; (g_θ ) ⃗/ρ∙σ∙(g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, y las correspondientes al eje&amp;lt;math&amp;gt; k ⃗&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; k ⃗∙σ∙k ⃗&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables   &lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%Gradiente de un campo vectorial&lt;br /&gt;
U=[(RHO.*cos(THETA)-1).^2.*RHO.*sin(THETA).^2 , -(RHO.*cos(THETA)-1).^2.*sin(THETA).*cos(THETA)];&lt;br /&gt;
[dx,dy]=gradient(U);&lt;br /&gt;
&lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
subplot(2,3,1);&lt;br /&gt;
&lt;br /&gt;
 %Tomamos el valor (1,1) de la matriz sigma y lo dibujamos&lt;br /&gt;
 r=dx(1,1);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,r)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 view(2)&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
 subplot(2,3,2);   &lt;br /&gt;
     &lt;br /&gt;
 %Tomamos el valor (2,2) de la matriz sigma y lo dibujamos   &lt;br /&gt;
 t=dy(2,2);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,t)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 view(2)&lt;br /&gt;
 &lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a gz&lt;br /&gt;
% subplot(2,3,3)&lt;br /&gt;
 &lt;br /&gt;
 %Tomamos el valor (3,3) de la matriz sigma y lo dibujamos &lt;br /&gt;
 %z=           &lt;br /&gt;
     &lt;br /&gt;
 %surf(X,Y,z)&lt;br /&gt;
 &lt;br /&gt;
 %axis equal&lt;br /&gt;
% view(2)&lt;br /&gt;
% title('Tensiones respecto a gz')&lt;br /&gt;
 %colorbar&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Tensión de Von Mises==&lt;br /&gt;
	La tensión de Von Mises se define con la formula&lt;br /&gt;
&amp;lt;math&amp;gt;σ_VM=√((〖(σ_1-σ_2)〗^2+〖(σ_2-σ_3)〗^2+〖(σ_3-σ_1)〗^2)/2)&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt;σ_1&amp;lt;/math&amp;gt;,&amp;lt;math&amp;gt;σ_2&amp;lt;/math&amp;gt;  y&amp;lt;math&amp;gt;σ_3&amp;lt;/math&amp;gt; son los autovalores de &amp;lt;math&amp;gt; σ &amp;lt;/math&amp;gt;(también conocidos como tensiones superficiales). Se trata de una magnitud escalar que se suele usar como indicador para saber cuando un material inicia un comportamiento plástico (y no elástico puro). Pintar la tensión de Von Mises y señalar en que punto alcanza mayor valor. (Usar comando eig.m para calcular autovalores)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Masa de la placa==&lt;br /&gt;
Finalmente, calcularemos la masa de la placa objeto de estudio. Esto se realizará mediante la integracion de la densida de la placa &amp;lt;math&amp;gt;d(x,y)=3+log⁡(1+|x|/(y+1)^4 )&amp;lt;/math&amp;gt;&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables    &lt;br /&gt;
h=0.1;&lt;br /&gt;
H=round(pi/h);&lt;br /&gt;
&lt;br /&gt;
rho=[1:h:3];          &lt;br /&gt;
theta=linspace(0,pi,H);&lt;br /&gt;
&lt;br /&gt;
%Creamos la parametrización&lt;br /&gt;
[RHO,THETA]=meshgrid(rho,theta);&lt;br /&gt;
&lt;br /&gt;
X=RHO.*cos(THETA);        &lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
d=3+log(1+abs(X)./(Y+1).^4);&lt;br /&gt;
&lt;br /&gt;
% Representamos graficamente la densidad en cada punto de la malla&lt;br /&gt;
surf(X,Y,d);&lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
axis square&lt;br /&gt;
%Cálculo de la masa total&lt;br /&gt;
MasaTotal=sum(sum(Densidad))&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>P.salvadores</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40644</id>
		<title>Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40644"/>
				<updated>2017-12-14T22:22:55Z</updated>
		
		<summary type="html">&lt;p&gt;P.salvadores: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Beta}}&lt;br /&gt;
{{ TrabajoED | Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)| [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC17/18|2017-18]] | Pablo Salvadores, Raquel Marco }}&lt;br /&gt;
== Introducción== &lt;br /&gt;
Para la visualización de campos escalares y vectoriales, consideraremos una placa definida por el anillo circular centrado en el origen y comprendidos entre los radios 1/2 y 2, en el plano y≥0. Con esta definición, tendremos una placa formada por un semianillo circular. Consideraremos ademas como ejes los pertenecientes al rectángulo [-3,3]x[-1,3]. &lt;br /&gt;
Para simplificar la tarea de definir la placa, usaremos coordenadas cilindricas.&lt;br /&gt;
&lt;br /&gt;
En la placa vamos a suponer que tenemos definidas dos cantidades físicas: la temperatura &amp;lt;math&amp;gt;T(x,y)&amp;lt;/math&amp;gt; que depende de las dos variables espaciales (x,y), y los desplazamientos &amp;lt;math&amp;gt;u(x,y)&amp;lt;/math&amp;gt; producidos por la acción de una fuerza determinada. De esta forma, si definimos r0(x,y) como el vector posición de los puntos de la placa antes de la deformación, la posición de cada punto (x,y) de la placa después de la deformación viene dada por : &lt;br /&gt;
&amp;lt;math&amp;gt;r ̅(x,y)=(r_0 ) ̅(x,y)+u ̅(x,y)&amp;lt;/math&amp;gt;.&lt;br /&gt;
Vamos a suponer que la fuerza aplicada sobre la placa ha provocado un desplazamiento de los puntos de la misma dado por el vector de desplazamientos&lt;br /&gt;
&amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;&lt;br /&gt;
== Mallado ==&lt;br /&gt;
Comenzaremos planteando en Matlab el mallado de la placa con el fin de poder visualizarla en el espacio con mayor facilidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Paso de muestreo &lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de la parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
%Dibujo del mallado&lt;br /&gt;
mesh(X,Y,0*X) &lt;br /&gt;
title('Mallado')&lt;br /&gt;
%ajustar los ejes&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Fig. 1|miniaturadeimagen|Placa]]&lt;br /&gt;
&lt;br /&gt;
== Temperatura==&lt;br /&gt;
A continuación, escribiremos en matlab el codigo necesario para obtener la funcion temperatura de la placa T(x,y). Para ayudarnos a la visualización, colorearemos la placa con las distintas temperaturas en cada punto de la misma junto con  las curvas de nivel, que unen los putnos con  misma temperatura en la placa. Ademas, obtendremos la temperatura maxima en la placa. La funcion temperatura que definira el campo será: &amp;lt;math&amp;gt;T(x,y)=log⁡((y+x)^2+2)&amp;lt;/math&amp;gt; &lt;br /&gt;
Nota: esta parte del codigo no es un programa en si. Para que funcione debidamente, debemos agregar la parte escrita en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Campo de temperatura&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 &lt;br /&gt;
 %Representación en 2D&lt;br /&gt;
subplot(1,2,1)&lt;br /&gt;
contour(X,Y,T)&lt;br /&gt;
view(2) &lt;br /&gt;
axis([-3,3,-1,3]);&lt;br /&gt;
title('Curvas de nivel de la Temperatura')&lt;br /&gt;
%Representacion Temperatura &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,T);&lt;br /&gt;
title('Temperatura')&lt;br /&gt;
&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
contour(X,Y,T,50);&lt;br /&gt;
colorbar&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
title('Curvas de nivel')&lt;br /&gt;
%Temperatura máxima&lt;br /&gt;
Tmax=max(max(T));&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Gradiente de temperatura==&lt;br /&gt;
El gradiente de la temperatura nos definirá en que direccion se produce la maxima variacion de temperatura en la placa. Para poder mantener el orden dentro de la programacion, abriremos otro programa que repetirá exactamente los mismos comandos que en el apartado 1 de manera que se nos genere un mallado. En este caso le añadiremos el gradiente de la temperatura a toda la placa en forma de campo vectorial con flechas que nos indicará la direccion que sigue el gradiente. Estas flechas serán perpendiculares a las lineas de nivel que habiamos dibujado previamente en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%inicializamos las variables&lt;br /&gt;
 h=0.1;&lt;br /&gt;
 &lt;br /&gt;
 rho=[1:h:2];&lt;br /&gt;
 H=round(pi/h);         &lt;br /&gt;
 theta=linspace(0,pi,H);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos el mallado y la parametrización&lt;br /&gt;
 [RHO,THETA]=meshgrid(rho,theta); &lt;br /&gt;
 &lt;br /&gt;
 X=RHO.*cos(THETA);        &lt;br /&gt;
 Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujamos el mallado&lt;br /&gt;
 mesh(X,Y,0*X) ; &lt;br /&gt;
 axis([-3,3,-1,3]); &lt;br /&gt;
 &lt;br /&gt;
 view(2);&lt;br /&gt;
 &lt;br /&gt;
 %GRADIENTE&lt;br /&gt;
 dx=((2*(Y+X))./(((Y+X).^2)+2));&lt;br /&gt;
 dy=dx;&lt;br /&gt;
 %CAMPO ESCALAR DE TEMPERATURAS&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 %Creación de la subventana primera: gradiente en el campo de temperaturas&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,1);&lt;br /&gt;
 hold on;&lt;br /&gt;
 surf(X,Y,T);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo del gradiente&lt;br /&gt;
 quiver3(X,Y,T,dx,dy,0*T);&lt;br /&gt;
 &lt;br /&gt;
 hold off;&lt;br /&gt;
 &lt;br /&gt;
 %Creación de la segunda subventana: campo vectorial del gradiente&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,2);&lt;br /&gt;
 quiver(X,Y,dx,dy); &lt;br /&gt;
 colorbar;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Campo de desplazamientos==&lt;br /&gt;
Tomando el campo de desplazamientos &amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;, lo representaremos igual que el gradiente (flechas) con maor tamaño cuanta mayor es la intensidad del campo en una región.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%CAMPO VECTORIAL DE DESPLAZAMIENTOS&lt;br /&gt;
 %Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Representamos el campo vectorial de desplazamientos&lt;br /&gt;
quiver(X,Y,FX,FY) &lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
xlabel('Eje x')&lt;br /&gt;
ylabel('Eje y')&lt;br /&gt;
title('Campo de desplazamientos sobre la placa')&lt;br /&gt;
}}&lt;br /&gt;
===Campo de desplazamientos sobre la placa===&lt;br /&gt;
Aplicaremos el campo de desplazamientos sobre la placa para poder apreciar la deformacion que sufre esta por una fuerza externa (generadora del campo de desplazamientos).&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestro&lt;br /&gt;
h=0.1;&lt;br /&gt;
% Valores de parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Creación del mallado&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Matriz con las coordenadas en x, después del desplazamiento&lt;br /&gt;
Rx=FX+X;&lt;br /&gt;
%Matriz con las coordenadas en y, después del desplazamiento&lt;br /&gt;
Ry=FY+Y;&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido antes del desplazamiento &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,0*X);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo sin deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido tras del desplazamiento&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
mesh(Rx,Ry,0*Rx);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo con deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
}}&lt;br /&gt;
==Divergencia del campo de desplazamientos==&lt;br /&gt;
Para obtener una medida de la variacion producida en la placa por el campo de desplazamientos, utilizaremos la divergencia de este. Aparecera en el grafico un mapa de colores con la variacion de volumen producida durante la deformación. Además, el programa nos devolverá el maximo valor que alcanza dicha divergencia.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Divergencia&lt;br /&gt;
DIVERGENCIA= [2.*((sin(THETA)).^2).*(RHO.*(cos(THETA)-1)).*(1+(RHO.*cos(THETA))+0.5.*(RHO.*cos(THETA)-1)+cos(THETA))]-[((cos(THETA)).^2).*((RHO.*cos(THETA))-1).^2];&lt;br /&gt;
&lt;br /&gt;
MaxDivergencia=max(max(DIVERGENCIA))&lt;br /&gt;
&lt;br /&gt;
%Representación de la divergencia&lt;br /&gt;
surf(X,Y,DIVERGENCIA) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Divergencia')&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Rotacional del campo de desplazamientos==&lt;br /&gt;
Igual que con la divergencia, visualizaremos el rotacional del campo de desplazamientos con la siguiente programacion.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Rotacional&lt;br /&gt;
ROT= (-2.*(cos(THETA)-1./RHO).*sin(THETA).*cos(THETA).^2) - (2.*sin(THETA).*cos(THETA).*(RHO.*cos(THETA-1)).^2) + (2.*sin(THETA).^3) - (RHO.*(RHO.*cos(THETA)-1));&lt;br /&gt;
&lt;br /&gt;
%Comprobar que está bien sacado el rotacional&lt;br /&gt;
%Representación del rotacional&lt;br /&gt;
surf(X,Y,ROT) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Rotacional')&lt;br /&gt;
}}&lt;br /&gt;
==Tensiones ==&lt;br /&gt;
Definamos &amp;lt;math&amp;gt;e(u ̅ )=(∇u ⃗+〖∇u ⃗〗^t)/2&amp;lt;/math&amp;gt; , la parte simétrica del tensor gradiente de &amp;lt;math&amp;gt; u ̅&amp;lt;/math&amp;gt; conocido como tensor de deformaciones. En un medio elástico ideal, isótropo y homogéneo, los desplazamientos permiten escribir el tensor de tensiones a través de la fórmula &amp;lt;math&amp;gt;  σ=λ∇∙u ̅1+2µe&amp;lt;/math&amp;gt;, donde λ y µ son los conocidos como coeficientes de Lamé que dependen de las propiedades elásticas de cada material. A pesar de que los desplazamientos son planos, (es decir, &amp;lt;math&amp;gt;u ̅ &amp;lt;/math&amp;gt;no tiene componente en la dirección &amp;lt;math&amp;gt;k ̅&amp;lt;/math&amp;gt;) las tensiones no tienen por qué ser planas y puede haber tensiones en la dirección ortogonal al plano de la placa. Tomando λ = µ = 1, dibujar las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt;( g_ρ ) ⃗ &amp;lt;/math&amp;gt;, es decir &amp;lt;math&amp;gt; (g_ρ ) ⃗∙σ∙(g_ρ ) ⃗&amp;lt;/math&amp;gt;, las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt; (g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; (g_θ ) ⃗/ρ∙σ∙(g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, y las correspondientes al eje&amp;lt;math&amp;gt; k ⃗&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; k ⃗∙σ∙k ⃗&amp;lt;/math&amp;gt;.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables   &lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%Gradiente de un campo vectorial&lt;br /&gt;
U=[(RHO.*cos(THETA)-1).^2.*RHO.*sin(THETA).^2 , -(RHO.*cos(THETA)-1).^2.*sin(THETA).*cos(THETA)];&lt;br /&gt;
[dx,dy]=gradient(U);&lt;br /&gt;
&lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
subplot(2,3,1);&lt;br /&gt;
&lt;br /&gt;
 %Tomamos el valor (1,1) de la matriz sigma y lo dibujamos&lt;br /&gt;
 r=dx(1,1);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,r)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 view(2)&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
 subplot(2,3,2);   &lt;br /&gt;
     &lt;br /&gt;
 %Tomamos el valor (2,2) de la matriz sigma y lo dibujamos   &lt;br /&gt;
 t=dy(2,2);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,t)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 view(2)&lt;br /&gt;
 &lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a gz&lt;br /&gt;
% subplot(2,3,3)&lt;br /&gt;
 &lt;br /&gt;
 %Tomamos el valor (3,3) de la matriz sigma y lo dibujamos &lt;br /&gt;
 %z=           &lt;br /&gt;
     &lt;br /&gt;
 %surf(X,Y,z)&lt;br /&gt;
 &lt;br /&gt;
 %axis equal&lt;br /&gt;
% view(2)&lt;br /&gt;
% title('Tensiones respecto a gz')&lt;br /&gt;
 %colorbar&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Tensión de Von Mises==&lt;br /&gt;
	La tensión de Von Mises se define con la formula&lt;br /&gt;
&amp;lt;math&amp;gt;σ_VM=√((〖(σ_1-σ_2)〗^2+〖(σ_2-σ_3)〗^2+〖(σ_3-σ_1)〗^2)/2)&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt;σ_1&amp;lt;/math&amp;gt;,&amp;lt;math&amp;gt;σ_2&amp;lt;/math&amp;gt;  y&amp;lt;math&amp;gt;σ_3&amp;lt;/math&amp;gt; son los autovalores de &amp;lt;math&amp;gt; σ &amp;lt;/math&amp;gt;(también conocidos como tensiones superficiales). Se trata de una magnitud escalar que se suele usar como indicador para saber cuando un material inicia un comportamiento plástico (y no elástico puro). Pintar la tensión de Von Mises y señalar en que punto alcanza mayor valor. (Usar comando eig.m para calcular autovalores)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Masa de la placa==&lt;br /&gt;
Finalmente, calcularemos la masa de la placa objeto de estudio. Esto se realizará mediante la integracion de la densida de la placa &amp;lt;math&amp;gt;d(x,y)=3+log⁡(1+|x|/(y+1)^4 )&amp;lt;/math&amp;gt;&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables    &lt;br /&gt;
h=0.1;&lt;br /&gt;
H=round(pi/h);&lt;br /&gt;
&lt;br /&gt;
rho=[1:h:3];          &lt;br /&gt;
theta=linspace(0,pi,H);&lt;br /&gt;
&lt;br /&gt;
%Creamos la parametrización&lt;br /&gt;
[RHO,THETA]=meshgrid(rho,theta);&lt;br /&gt;
&lt;br /&gt;
X=RHO.*cos(THETA);        &lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
d=3+log(1+abs(X)./(Y+1).^4);&lt;br /&gt;
&lt;br /&gt;
% Representamos graficamente la densidad en cada punto de la malla&lt;br /&gt;
surf(X,Y,d);&lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
axis square&lt;br /&gt;
%Cálculo de la masa total&lt;br /&gt;
MasaTotal=sum(sum(Densidad))&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>P.salvadores</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40643</id>
		<title>Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40643"/>
				<updated>2017-12-14T22:20:47Z</updated>
		
		<summary type="html">&lt;p&gt;P.salvadores: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Beta}}&lt;br /&gt;
{{ TrabajoED | Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)| [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC17/18|2017-18]] | Pablo Salvadores, Raquel Marco }}&lt;br /&gt;
== Introducción== &lt;br /&gt;
Para la visualización de campos escalares y vectoriales, consideraremos una placa definida por el anillo circular centrado en el origen y comprendidos entre los radios 1/2 y 2, en el plano y≥0. Con esta definición, tendremos una placa formada por un semianillo circular. Consideraremos ademas como ejes los pertenecientes al rectángulo [-3,3]x[-1,3]. &lt;br /&gt;
Para simplificar la tarea de definir la placa, usaremos coordenadas cilindricas.&lt;br /&gt;
&lt;br /&gt;
En la placa vamos a suponer que tenemos definidas dos cantidades físicas: la temperatura &amp;lt;math&amp;gt;T(x,y)&amp;lt;/math&amp;gt; que depende de las dos variables espaciales (x,y), y los desplazamientos &amp;lt;math&amp;gt;u(x,y)&amp;lt;/math&amp;gt; producidos por la acción de una fuerza determinada. De esta forma, si definimos r0(x,y) como el vector posición de los puntos de la placa antes de la deformación, la posición de cada punto (x,y) de la placa después de la deformación viene dada por : &lt;br /&gt;
&amp;lt;math&amp;gt;r ̅(x,y)=(r_0 ) ̅(x,y)+u ̅(x,y)&amp;lt;/math&amp;gt;.&lt;br /&gt;
Vamos a suponer que la fuerza aplicada sobre la placa ha provocado un desplazamiento de los puntos de la misma dado por el vector de desplazamientos&lt;br /&gt;
&amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;&lt;br /&gt;
== Mallado ==&lt;br /&gt;
Comenzaremos planteando en Matlab el mallado de la placa con el fin de poder visualizarla en el espacio con mayor facilidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Paso de muestreo &lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de la parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
%Dibujo del mallado&lt;br /&gt;
mesh(X,Y,0*X) &lt;br /&gt;
title('Mallado')&lt;br /&gt;
%ajustar los ejes&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Fig. 1|miniaturadeimagen|Placa]]&lt;br /&gt;
&lt;br /&gt;
== Temperatura==&lt;br /&gt;
A continuación, escribiremos en matlab el codigo necesario para obtener la funcion temperatura de la placa T(x,y). Para ayudarnos a la visualización, colorearemos la placa con las distintas temperaturas en cada punto de la misma junto con  las curvas de nivel, que unen los putnos con  misma temperatura en la placa. Ademas, obtendremos la temperatura maxima en la placa. La funcion temperatura que definira el campo será: &amp;lt;math&amp;gt;T(x,y)=log⁡((y+x)^2+2)&amp;lt;/math&amp;gt; &lt;br /&gt;
Nota: esta parte del codigo no es un programa en si. Para que funcione debidamente, debemos agregar la parte escrita en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Campo de temperatura&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 &lt;br /&gt;
 %Representación en 2D&lt;br /&gt;
subplot(1,2,1)&lt;br /&gt;
contour(X,Y,T)&lt;br /&gt;
view(2) &lt;br /&gt;
axis([-3,3,-1,3]);&lt;br /&gt;
title('Curvas de nivel de la Temperatura')&lt;br /&gt;
%Representacion Temperatura &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,T);&lt;br /&gt;
title('Temperatura')&lt;br /&gt;
&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
contour(X,Y,T,50);&lt;br /&gt;
colorbar&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
title('Curvas de nivel')&lt;br /&gt;
%Temperatura máxima&lt;br /&gt;
Tmax=max(max(T));&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Gradiente de temperatura==&lt;br /&gt;
El gradiente de la temperatura nos definirá en que direccion se produce la maxima variacion de temperatura en la placa. Para poder mantener el orden dentro de la programacion, abriremos otro programa que repetirá exactamente los mismos comandos que en el apartado 1 de manera que se nos genere un mallado. En este caso le añadiremos el gradiente de la temperatura a toda la placa en forma de campo vectorial con flechas que nos indicará la direccion que sigue el gradiente. Estas flechas serán perpendiculares a las lineas de nivel que habiamos dibujado previamente en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%inicializamos las variables&lt;br /&gt;
 h=0.1;&lt;br /&gt;
 &lt;br /&gt;
 rho=[1:h:2];&lt;br /&gt;
 H=round(pi/h);         &lt;br /&gt;
 theta=linspace(0,pi,H);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos el mallado y la parametrización&lt;br /&gt;
 [RHO,THETA]=meshgrid(rho,theta); &lt;br /&gt;
 &lt;br /&gt;
 X=RHO.*cos(THETA);        &lt;br /&gt;
 Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujamos el mallado&lt;br /&gt;
 mesh(X,Y,0*X) ; &lt;br /&gt;
 axis([-3,3,-1,3]); &lt;br /&gt;
 &lt;br /&gt;
 view(2);&lt;br /&gt;
 &lt;br /&gt;
 %GRADIENTE&lt;br /&gt;
 dx=((2*(Y+X))./(((Y+X).^2)+2));&lt;br /&gt;
 dy=dx;&lt;br /&gt;
 %CAMPO ESCALAR DE TEMPERATURAS&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 %Creación de la subventana primera: gradiente en el campo de temperaturas&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,1);&lt;br /&gt;
 hold on;&lt;br /&gt;
 surf(X,Y,T);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo del gradiente&lt;br /&gt;
 quiver3(X,Y,T,dx,dy,0*T);&lt;br /&gt;
 &lt;br /&gt;
 hold off;&lt;br /&gt;
 &lt;br /&gt;
 %Creación de la segunda subventana: campo vectorial del gradiente&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,2);&lt;br /&gt;
 quiver(X,Y,dx,dy); &lt;br /&gt;
 colorbar;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Campo de desplazamientos==&lt;br /&gt;
Tomando el campo de desplazamientos &amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;, lo representaremos igual que el gradiente (flechas) con maor tamaño cuanta mayor es la intensidad del campo en una región.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%CAMPO VECTORIAL DE DESPLAZAMIENTOS&lt;br /&gt;
 %Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Representamos el campo vectorial de desplazamientos&lt;br /&gt;
quiver(X,Y,FX,FY) &lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
xlabel('Eje x')&lt;br /&gt;
ylabel('Eje y')&lt;br /&gt;
title('Campo de desplazamientos sobre la placa')&lt;br /&gt;
}}&lt;br /&gt;
===Campo de desplazamientos sobre la placa===&lt;br /&gt;
Aplicaremos el campo de desplazamientos sobre la placa para poder apreciar la deformacion que sufre esta por una fuerza externa (generadora del campo de desplazamientos).&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestro&lt;br /&gt;
h=0.1;&lt;br /&gt;
% Valores de parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Creación del mallado&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Matriz con las coordenadas en x, después del desplazamiento&lt;br /&gt;
Rx=FX+X;&lt;br /&gt;
%Matriz con las coordenadas en y, después del desplazamiento&lt;br /&gt;
Ry=FY+Y;&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido antes del desplazamiento &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,0*X);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo sin deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido tras del desplazamiento&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
mesh(Rx,Ry,0*Rx);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo con deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
}}&lt;br /&gt;
==Divergencia del campo de desplazamientos==&lt;br /&gt;
Para obtener una medida de la variacion producida en la placa por el campo de desplazamientos, utilizaremos la divergencia de este. Aparecera en el grafico un mapa de colores con la variacion de volumen producida durante la deformación. Además, el programa nos devolverá el maximo valor que alcanza dicha divergencia.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Divergencia&lt;br /&gt;
DIVERGENCIA= [2.*((sin(THETA)).^2).*(RHO.*(cos(THETA)-1)).*(1+(RHO.*cos(THETA))+0.5.*(RHO.*cos(THETA)-1)+cos(THETA))]-[((cos(THETA)).^2).*((RHO.*cos(THETA))-1).^2];&lt;br /&gt;
&lt;br /&gt;
MaxDivergencia=max(max(DIVERGENCIA))&lt;br /&gt;
&lt;br /&gt;
%Representación de la divergencia&lt;br /&gt;
surf(X,Y,DIVERGENCIA) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Divergencia')&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Rotacional del campo de desplazamientos==&lt;br /&gt;
Igual que con la divergencia, visualizaremos el rotacional del campo de desplazamientos con la siguiente programacion.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Rotacional&lt;br /&gt;
ROT= (-2.*(cos(THETA)-1./RHO).*sin(THETA).*cos(THETA).^2) - (2.*sin(THETA).*cos(THETA).*(RHO.*cos(THETA-1)).^2) + (2.*sin(THETA).^3) - (RHO.*(RHO.*cos(THETA)-1));&lt;br /&gt;
&lt;br /&gt;
%Comprobar que está bien sacado el rotacional&lt;br /&gt;
%Representación del rotacional&lt;br /&gt;
surf(X,Y,ROT) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Rotacional')&lt;br /&gt;
}}&lt;br /&gt;
==Tensiones ==&lt;br /&gt;
Definamos &amp;lt;math&amp;gt;e(u ̅ )=(∇u ⃗+〖∇u ⃗〗^t)/2&amp;lt;/math&amp;gt; , la parte simétrica del tensor gradiente de &amp;lt;math&amp;gt; u ̅&amp;lt;/math&amp;gt; conocido como tensor de deformaciones. En un medio elástico ideal, isótropo y homogéneo, los desplazamientos permiten escribir el tensor de tensiones a través de la fórmula &amp;lt;math&amp;gt;  σ=λ∇∙u ̅1+2µe&amp;lt;/math&amp;gt;, donde λ y µ son los conocidos como coeficientes de Lamé que dependen de las propiedades elásticas de cada material. A pesar de que los desplazamientos son planos, (es decir, &amp;lt;math&amp;gt;u ̅ &amp;lt;/math&amp;gt;no tiene componente en la dirección &amp;lt;math&amp;gt;k ̅&amp;lt;/math&amp;gt;) las tensiones no tienen por qué ser planas y puede haber tensiones en la dirección ortogonal al plano de la placa. Tomando λ = µ = 1, dibujar las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt;( g_ρ ) ⃗ &amp;lt;/math&amp;gt;, es decir &amp;lt;math&amp;gt; (g_ρ ) ⃗∙σ∙(g_ρ ) ⃗&amp;lt;/math&amp;gt;, las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt; (g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; (g_θ ) ⃗/ρ∙σ∙(g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, y las correspondientes al eje&amp;lt;math&amp;gt; k ⃗&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; k ⃗∙σ∙k ⃗&amp;lt;/math&amp;gt;.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables   &lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%Gradiente de un campo vectorial&lt;br /&gt;
U=[(RHO.*cos(THETA)-1).^2.*RHO.*sin(THETA).^2 , -(RHO.*cos(THETA)-1).^2.*sin(THETA).*cos(THETA)];&lt;br /&gt;
[dx,dy]=gradient(U);&lt;br /&gt;
&lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
subplot(2,3,1);&lt;br /&gt;
&lt;br /&gt;
 %Tomamos el valor (1,1) de la matriz sigma y lo dibujamos&lt;br /&gt;
 r=dx(1,1);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,r)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 view(2)&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
 subplot(2,3,2);   &lt;br /&gt;
     &lt;br /&gt;
 %Tomamos el valor (2,2) de la matriz sigma y lo dibujamos   &lt;br /&gt;
 t=dy(2,2);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,t)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 view(2)&lt;br /&gt;
 &lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a gz&lt;br /&gt;
% subplot(2,3,3)&lt;br /&gt;
 &lt;br /&gt;
 %Tomamos el valor (3,3) de la matriz sigma y lo dibujamos &lt;br /&gt;
 %z=           &lt;br /&gt;
     &lt;br /&gt;
 %surf(X,Y,z)&lt;br /&gt;
 &lt;br /&gt;
 %axis equal&lt;br /&gt;
% view(2)&lt;br /&gt;
% title('Tensiones respecto a gz')&lt;br /&gt;
 %colorbar&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Tensión de Von Mises==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Masa de la placa==&lt;br /&gt;
Finalmente, calcularemos la masa de la placa objeto de estudio. Esto se realizará mediante la integracion de la densida de la placa &amp;lt;math&amp;gt;d(x,y)=3+log⁡(1+|x|/(y+1)^4 )&amp;lt;/math&amp;gt;&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables    &lt;br /&gt;
h=0.1;&lt;br /&gt;
H=round(pi/h);&lt;br /&gt;
&lt;br /&gt;
rho=[1:h:3];          &lt;br /&gt;
theta=linspace(0,pi,H);&lt;br /&gt;
&lt;br /&gt;
%Creamos la parametrización&lt;br /&gt;
[RHO,THETA]=meshgrid(rho,theta);&lt;br /&gt;
&lt;br /&gt;
X=RHO.*cos(THETA);        &lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
d=3+log(1+abs(X)./(Y+1).^4);&lt;br /&gt;
&lt;br /&gt;
% Representamos graficamente la densidad en cada punto de la malla&lt;br /&gt;
surf(X,Y,d);&lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
axis square&lt;br /&gt;
%Cálculo de la masa total&lt;br /&gt;
MasaTotal=sum(sum(Densidad))&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>P.salvadores</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40642</id>
		<title>Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40642"/>
				<updated>2017-12-14T22:19:42Z</updated>
		
		<summary type="html">&lt;p&gt;P.salvadores: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{ TrabajoED | Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)| [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC17/18|2017-18]] | Pablo Salvadores, Raquel Marco }}&lt;br /&gt;
== Introducción== &lt;br /&gt;
Para la visualización de campos escalares y vectoriales, consideraremos una placa definida por el anillo circular centrado en el origen y comprendidos entre los radios 1/2 y 2, en el plano y≥0. Con esta definición, tendremos una placa formada por un semianillo circular. Consideraremos ademas como ejes los pertenecientes al rectángulo [-3,3]x[-1,3]. &lt;br /&gt;
Para simplificar la tarea de definir la placa, usaremos coordenadas cilindricas.&lt;br /&gt;
&lt;br /&gt;
En la placa vamos a suponer que tenemos definidas dos cantidades físicas: la temperatura &amp;lt;math&amp;gt;T(x,y)&amp;lt;/math&amp;gt; que depende de las dos variables espaciales (x,y), y los desplazamientos &amp;lt;math&amp;gt;u(x,y)&amp;lt;/math&amp;gt; producidos por la acción de una fuerza determinada. De esta forma, si definimos r0(x,y) como el vector posición de los puntos de la placa antes de la deformación, la posición de cada punto (x,y) de la placa después de la deformación viene dada por : &lt;br /&gt;
&amp;lt;math&amp;gt;r ̅(x,y)=(r_0 ) ̅(x,y)+u ̅(x,y)&amp;lt;/math&amp;gt;.&lt;br /&gt;
Vamos a suponer que la fuerza aplicada sobre la placa ha provocado un desplazamiento de los puntos de la misma dado por el vector de desplazamientos&lt;br /&gt;
&amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;&lt;br /&gt;
== Mallado ==&lt;br /&gt;
Comenzaremos planteando en Matlab el mallado de la placa con el fin de poder visualizarla en el espacio con mayor facilidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Paso de muestreo &lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de la parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
%Dibujo del mallado&lt;br /&gt;
mesh(X,Y,0*X) &lt;br /&gt;
title('Mallado')&lt;br /&gt;
%ajustar los ejes&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Fig. 1|miniaturadeimagen|Placa]]&lt;br /&gt;
&lt;br /&gt;
== Temperatura==&lt;br /&gt;
A continuación, escribiremos en matlab el codigo necesario para obtener la funcion temperatura de la placa T(x,y). Para ayudarnos a la visualización, colorearemos la placa con las distintas temperaturas en cada punto de la misma junto con  las curvas de nivel, que unen los putnos con  misma temperatura en la placa. Ademas, obtendremos la temperatura maxima en la placa. La funcion temperatura que definira el campo será: &amp;lt;math&amp;gt;T(x,y)=log⁡((y+x)^2+2)&amp;lt;/math&amp;gt; &lt;br /&gt;
Nota: esta parte del codigo no es un programa en si. Para que funcione debidamente, debemos agregar la parte escrita en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Campo de temperatura&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 &lt;br /&gt;
 %Representación en 2D&lt;br /&gt;
subplot(1,2,1)&lt;br /&gt;
contour(X,Y,T)&lt;br /&gt;
view(2) &lt;br /&gt;
axis([-3,3,-1,3]);&lt;br /&gt;
title('Curvas de nivel de la Temperatura')&lt;br /&gt;
%Representacion Temperatura &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,T);&lt;br /&gt;
title('Temperatura')&lt;br /&gt;
&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
contour(X,Y,T,50);&lt;br /&gt;
colorbar&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
title('Curvas de nivel')&lt;br /&gt;
%Temperatura máxima&lt;br /&gt;
Tmax=max(max(T));&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Gradiente de temperatura==&lt;br /&gt;
El gradiente de la temperatura nos definirá en que direccion se produce la maxima variacion de temperatura en la placa. Para poder mantener el orden dentro de la programacion, abriremos otro programa que repetirá exactamente los mismos comandos que en el apartado 1 de manera que se nos genere un mallado. En este caso le añadiremos el gradiente de la temperatura a toda la placa en forma de campo vectorial con flechas que nos indicará la direccion que sigue el gradiente. Estas flechas serán perpendiculares a las lineas de nivel que habiamos dibujado previamente en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%inicializamos las variables&lt;br /&gt;
 h=0.1;&lt;br /&gt;
 &lt;br /&gt;
 rho=[1:h:2];&lt;br /&gt;
 H=round(pi/h);         &lt;br /&gt;
 theta=linspace(0,pi,H);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos el mallado y la parametrización&lt;br /&gt;
 [RHO,THETA]=meshgrid(rho,theta); &lt;br /&gt;
 &lt;br /&gt;
 X=RHO.*cos(THETA);        &lt;br /&gt;
 Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujamos el mallado&lt;br /&gt;
 mesh(X,Y,0*X) ; &lt;br /&gt;
 axis([-3,3,-1,3]); &lt;br /&gt;
 &lt;br /&gt;
 view(2);&lt;br /&gt;
 &lt;br /&gt;
 %GRADIENTE&lt;br /&gt;
 dx=((2*(Y+X))./(((Y+X).^2)+2));&lt;br /&gt;
 dy=dx;&lt;br /&gt;
 %CAMPO ESCALAR DE TEMPERATURAS&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 %Creación de la subventana primera: gradiente en el campo de temperaturas&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,1);&lt;br /&gt;
 hold on;&lt;br /&gt;
 surf(X,Y,T);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo del gradiente&lt;br /&gt;
 quiver3(X,Y,T,dx,dy,0*T);&lt;br /&gt;
 &lt;br /&gt;
 hold off;&lt;br /&gt;
 &lt;br /&gt;
 %Creación de la segunda subventana: campo vectorial del gradiente&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,2);&lt;br /&gt;
 quiver(X,Y,dx,dy); &lt;br /&gt;
 colorbar;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Campo de desplazamientos==&lt;br /&gt;
Tomando el campo de desplazamientos &amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;, lo representaremos igual que el gradiente (flechas) con maor tamaño cuanta mayor es la intensidad del campo en una región.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%CAMPO VECTORIAL DE DESPLAZAMIENTOS&lt;br /&gt;
 %Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Representamos el campo vectorial de desplazamientos&lt;br /&gt;
quiver(X,Y,FX,FY) &lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
xlabel('Eje x')&lt;br /&gt;
ylabel('Eje y')&lt;br /&gt;
title('Campo de desplazamientos sobre la placa')&lt;br /&gt;
}}&lt;br /&gt;
===Campo de desplazamientos sobre la placa===&lt;br /&gt;
Aplicaremos el campo de desplazamientos sobre la placa para poder apreciar la deformacion que sufre esta por una fuerza externa (generadora del campo de desplazamientos).&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestro&lt;br /&gt;
h=0.1;&lt;br /&gt;
% Valores de parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Creación del mallado&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Matriz con las coordenadas en x, después del desplazamiento&lt;br /&gt;
Rx=FX+X;&lt;br /&gt;
%Matriz con las coordenadas en y, después del desplazamiento&lt;br /&gt;
Ry=FY+Y;&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido antes del desplazamiento &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,0*X);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo sin deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido tras del desplazamiento&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
mesh(Rx,Ry,0*Rx);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo con deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
}}&lt;br /&gt;
==Divergencia del campo de desplazamientos==&lt;br /&gt;
Para obtener una medida de la variacion producida en la placa por el campo de desplazamientos, utilizaremos la divergencia de este. Aparecera en el grafico un mapa de colores con la variacion de volumen producida durante la deformación. Además, el programa nos devolverá el maximo valor que alcanza dicha divergencia.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Divergencia&lt;br /&gt;
DIVERGENCIA= [2.*((sin(THETA)).^2).*(RHO.*(cos(THETA)-1)).*(1+(RHO.*cos(THETA))+0.5.*(RHO.*cos(THETA)-1)+cos(THETA))]-[((cos(THETA)).^2).*((RHO.*cos(THETA))-1).^2];&lt;br /&gt;
&lt;br /&gt;
MaxDivergencia=max(max(DIVERGENCIA))&lt;br /&gt;
&lt;br /&gt;
%Representación de la divergencia&lt;br /&gt;
surf(X,Y,DIVERGENCIA) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Divergencia')&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Rotacional del campo de desplazamientos==&lt;br /&gt;
Igual que con la divergencia, visualizaremos el rotacional del campo de desplazamientos con la siguiente programacion.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Rotacional&lt;br /&gt;
ROT= (-2.*(cos(THETA)-1./RHO).*sin(THETA).*cos(THETA).^2) - (2.*sin(THETA).*cos(THETA).*(RHO.*cos(THETA-1)).^2) + (2.*sin(THETA).^3) - (RHO.*(RHO.*cos(THETA)-1));&lt;br /&gt;
&lt;br /&gt;
%Comprobar que está bien sacado el rotacional&lt;br /&gt;
%Representación del rotacional&lt;br /&gt;
surf(X,Y,ROT) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Rotacional')&lt;br /&gt;
}}&lt;br /&gt;
==Tensiones ==&lt;br /&gt;
Definamos &amp;lt;math&amp;gt;e(u ̅ )=(∇u ⃗+〖∇u ⃗〗^t)/2&amp;lt;/math&amp;gt; , la parte simétrica del tensor gradiente de &amp;lt;math&amp;gt; u ̅&amp;lt;/math&amp;gt; conocido como tensor de deformaciones. En un medio elástico ideal, isótropo y homogéneo, los desplazamientos permiten escribir el tensor de tensiones a través de la fórmula &amp;lt;math&amp;gt;  σ=λ∇∙u ̅1+2µe&amp;lt;/math&amp;gt;, donde λ y µ son los conocidos como coeficientes de Lamé que dependen de las propiedades elásticas de cada material. A pesar de que los desplazamientos son planos, (es decir, &amp;lt;math&amp;gt;u ̅ &amp;lt;/math&amp;gt;no tiene componente en la dirección &amp;lt;math&amp;gt;k ̅&amp;lt;/math&amp;gt;) las tensiones no tienen por qué ser planas y puede haber tensiones en la dirección ortogonal al plano de la placa. Tomando λ = µ = 1, dibujar las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt;( g_ρ ) ⃗ &amp;lt;/math&amp;gt;, es decir &amp;lt;math&amp;gt; (g_ρ ) ⃗∙σ∙(g_ρ ) ⃗&amp;lt;/math&amp;gt;, las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt; (g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; (g_θ ) ⃗/ρ∙σ∙(g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, y las correspondientes al eje&amp;lt;math&amp;gt; k ⃗&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; k ⃗∙σ∙k ⃗&amp;lt;/math&amp;gt;.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables   &lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%Gradiente de un campo vectorial&lt;br /&gt;
U=[(RHO.*cos(THETA)-1).^2.*RHO.*sin(THETA).^2 , -(RHO.*cos(THETA)-1).^2.*sin(THETA).*cos(THETA)];&lt;br /&gt;
[dx,dy]=gradient(U);&lt;br /&gt;
&lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
subplot(2,3,1);&lt;br /&gt;
&lt;br /&gt;
 %Tomamos el valor (1,1) de la matriz sigma y lo dibujamos&lt;br /&gt;
 r=dx(1,1);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,r)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 view(2)&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
 subplot(2,3,2);   &lt;br /&gt;
     &lt;br /&gt;
 %Tomamos el valor (2,2) de la matriz sigma y lo dibujamos   &lt;br /&gt;
 t=dy(2,2);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,t)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 view(2)&lt;br /&gt;
 &lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a gz&lt;br /&gt;
% subplot(2,3,3)&lt;br /&gt;
 &lt;br /&gt;
 %Tomamos el valor (3,3) de la matriz sigma y lo dibujamos &lt;br /&gt;
 %z=           &lt;br /&gt;
     &lt;br /&gt;
 %surf(X,Y,z)&lt;br /&gt;
 &lt;br /&gt;
 %axis equal&lt;br /&gt;
% view(2)&lt;br /&gt;
% title('Tensiones respecto a gz')&lt;br /&gt;
 %colorbar&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Tensión de Von Mises==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Masa de la placa==&lt;br /&gt;
Finalmente, calcularemos la masa de la placa objeto de estudio. Esto se realizará mediante la integracion de la densida de la placa &amp;lt;math&amp;gt;d(x,y)=3+log⁡(1+|x|/(y+1)^4 )&amp;lt;/math&amp;gt;&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables    &lt;br /&gt;
h=0.1;&lt;br /&gt;
H=round(pi/h);&lt;br /&gt;
&lt;br /&gt;
rho=[1:h:3];          &lt;br /&gt;
theta=linspace(0,pi,H);&lt;br /&gt;
&lt;br /&gt;
%Creamos la parametrización&lt;br /&gt;
[RHO,THETA]=meshgrid(rho,theta);&lt;br /&gt;
&lt;br /&gt;
X=RHO.*cos(THETA);        &lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
d=3+log(1+abs(X)./(Y+1).^4);&lt;br /&gt;
&lt;br /&gt;
% Representamos graficamente la densidad en cada punto de la malla&lt;br /&gt;
surf(X,Y,d);&lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
axis square&lt;br /&gt;
%Cálculo de la masa total&lt;br /&gt;
MasaTotal=sum(sum(Densidad))&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>P.salvadores</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40641</id>
		<title>Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40641"/>
				<updated>2017-12-14T22:19:08Z</updated>
		
		<summary type="html">&lt;p&gt;P.salvadores: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{  Beta  }}&lt;br /&gt;
{{ TrabajoED | Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)| [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC17/18|2017-18]] | Pablo Salvadores, Raquel Marco }}&lt;br /&gt;
== Introducción== &lt;br /&gt;
Para la visualización de campos escalares y vectoriales, consideraremos una placa definida por el anillo circular centrado en el origen y comprendidos entre los radios 1/2 y 2, en el plano y≥0. Con esta definición, tendremos una placa formada por un semianillo circular. Consideraremos ademas como ejes los pertenecientes al rectángulo [-3,3]x[-1,3]. &lt;br /&gt;
Para simplificar la tarea de definir la placa, usaremos coordenadas cilindricas.&lt;br /&gt;
&lt;br /&gt;
En la placa vamos a suponer que tenemos definidas dos cantidades físicas: la temperatura &amp;lt;math&amp;gt;T(x,y)&amp;lt;/math&amp;gt; que depende de las dos variables espaciales (x,y), y los desplazamientos &amp;lt;math&amp;gt;u(x,y)&amp;lt;/math&amp;gt; producidos por la acción de una fuerza determinada. De esta forma, si definimos r0(x,y) como el vector posición de los puntos de la placa antes de la deformación, la posición de cada punto (x,y) de la placa después de la deformación viene dada por : &lt;br /&gt;
&amp;lt;math&amp;gt;r ̅(x,y)=(r_0 ) ̅(x,y)+u ̅(x,y)&amp;lt;/math&amp;gt;.&lt;br /&gt;
Vamos a suponer que la fuerza aplicada sobre la placa ha provocado un desplazamiento de los puntos de la misma dado por el vector de desplazamientos&lt;br /&gt;
&amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;&lt;br /&gt;
== Mallado ==&lt;br /&gt;
Comenzaremos planteando en Matlab el mallado de la placa con el fin de poder visualizarla en el espacio con mayor facilidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Paso de muestreo &lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de la parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
%Dibujo del mallado&lt;br /&gt;
mesh(X,Y,0*X) &lt;br /&gt;
title('Mallado')&lt;br /&gt;
%ajustar los ejes&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Fig. 1|miniaturadeimagen|Placa]]&lt;br /&gt;
&lt;br /&gt;
== Temperatura==&lt;br /&gt;
A continuación, escribiremos en matlab el codigo necesario para obtener la funcion temperatura de la placa T(x,y). Para ayudarnos a la visualización, colorearemos la placa con las distintas temperaturas en cada punto de la misma junto con  las curvas de nivel, que unen los putnos con  misma temperatura en la placa. Ademas, obtendremos la temperatura maxima en la placa. La funcion temperatura que definira el campo será: &amp;lt;math&amp;gt;T(x,y)=log⁡((y+x)^2+2)&amp;lt;/math&amp;gt; &lt;br /&gt;
Nota: esta parte del codigo no es un programa en si. Para que funcione debidamente, debemos agregar la parte escrita en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Campo de temperatura&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 &lt;br /&gt;
 %Representación en 2D&lt;br /&gt;
subplot(1,2,1)&lt;br /&gt;
contour(X,Y,T)&lt;br /&gt;
view(2) &lt;br /&gt;
axis([-3,3,-1,3]);&lt;br /&gt;
title('Curvas de nivel de la Temperatura')&lt;br /&gt;
%Representacion Temperatura &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,T);&lt;br /&gt;
title('Temperatura')&lt;br /&gt;
&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
contour(X,Y,T,50);&lt;br /&gt;
colorbar&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
title('Curvas de nivel')&lt;br /&gt;
%Temperatura máxima&lt;br /&gt;
Tmax=max(max(T));&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Gradiente de temperatura==&lt;br /&gt;
El gradiente de la temperatura nos definirá en que direccion se produce la maxima variacion de temperatura en la placa. Para poder mantener el orden dentro de la programacion, abriremos otro programa que repetirá exactamente los mismos comandos que en el apartado 1 de manera que se nos genere un mallado. En este caso le añadiremos el gradiente de la temperatura a toda la placa en forma de campo vectorial con flechas que nos indicará la direccion que sigue el gradiente. Estas flechas serán perpendiculares a las lineas de nivel que habiamos dibujado previamente en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%inicializamos las variables&lt;br /&gt;
 h=0.1;&lt;br /&gt;
 &lt;br /&gt;
 rho=[1:h:2];&lt;br /&gt;
 H=round(pi/h);         &lt;br /&gt;
 theta=linspace(0,pi,H);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos el mallado y la parametrización&lt;br /&gt;
 [RHO,THETA]=meshgrid(rho,theta); &lt;br /&gt;
 &lt;br /&gt;
 X=RHO.*cos(THETA);        &lt;br /&gt;
 Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujamos el mallado&lt;br /&gt;
 mesh(X,Y,0*X) ; &lt;br /&gt;
 axis([-3,3,-1,3]); &lt;br /&gt;
 &lt;br /&gt;
 view(2);&lt;br /&gt;
 &lt;br /&gt;
 %GRADIENTE&lt;br /&gt;
 dx=((2*(Y+X))./(((Y+X).^2)+2));&lt;br /&gt;
 dy=dx;&lt;br /&gt;
 %CAMPO ESCALAR DE TEMPERATURAS&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 %Creación de la subventana primera: gradiente en el campo de temperaturas&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,1);&lt;br /&gt;
 hold on;&lt;br /&gt;
 surf(X,Y,T);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo del gradiente&lt;br /&gt;
 quiver3(X,Y,T,dx,dy,0*T);&lt;br /&gt;
 &lt;br /&gt;
 hold off;&lt;br /&gt;
 &lt;br /&gt;
 %Creación de la segunda subventana: campo vectorial del gradiente&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,2);&lt;br /&gt;
 quiver(X,Y,dx,dy); &lt;br /&gt;
 colorbar;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Campo de desplazamientos==&lt;br /&gt;
Tomando el campo de desplazamientos &amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;, lo representaremos igual que el gradiente (flechas) con maor tamaño cuanta mayor es la intensidad del campo en una región.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%CAMPO VECTORIAL DE DESPLAZAMIENTOS&lt;br /&gt;
 %Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Representamos el campo vectorial de desplazamientos&lt;br /&gt;
quiver(X,Y,FX,FY) &lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
xlabel('Eje x')&lt;br /&gt;
ylabel('Eje y')&lt;br /&gt;
title('Campo de desplazamientos sobre la placa')&lt;br /&gt;
}}&lt;br /&gt;
===Campo de desplazamientos sobre la placa===&lt;br /&gt;
Aplicaremos el campo de desplazamientos sobre la placa para poder apreciar la deformacion que sufre esta por una fuerza externa (generadora del campo de desplazamientos).&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestro&lt;br /&gt;
h=0.1;&lt;br /&gt;
% Valores de parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Creación del mallado&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Matriz con las coordenadas en x, después del desplazamiento&lt;br /&gt;
Rx=FX+X;&lt;br /&gt;
%Matriz con las coordenadas en y, después del desplazamiento&lt;br /&gt;
Ry=FY+Y;&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido antes del desplazamiento &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,0*X);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo sin deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido tras del desplazamiento&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
mesh(Rx,Ry,0*Rx);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo con deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
}}&lt;br /&gt;
==Divergencia del campo de desplazamientos==&lt;br /&gt;
Para obtener una medida de la variacion producida en la placa por el campo de desplazamientos, utilizaremos la divergencia de este. Aparecera en el grafico un mapa de colores con la variacion de volumen producida durante la deformación. Además, el programa nos devolverá el maximo valor que alcanza dicha divergencia.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Divergencia&lt;br /&gt;
DIVERGENCIA= [2.*((sin(THETA)).^2).*(RHO.*(cos(THETA)-1)).*(1+(RHO.*cos(THETA))+0.5.*(RHO.*cos(THETA)-1)+cos(THETA))]-[((cos(THETA)).^2).*((RHO.*cos(THETA))-1).^2];&lt;br /&gt;
&lt;br /&gt;
MaxDivergencia=max(max(DIVERGENCIA))&lt;br /&gt;
&lt;br /&gt;
%Representación de la divergencia&lt;br /&gt;
surf(X,Y,DIVERGENCIA) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Divergencia')&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Rotacional del campo de desplazamientos==&lt;br /&gt;
Igual que con la divergencia, visualizaremos el rotacional del campo de desplazamientos con la siguiente programacion.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Rotacional&lt;br /&gt;
ROT= (-2.*(cos(THETA)-1./RHO).*sin(THETA).*cos(THETA).^2) - (2.*sin(THETA).*cos(THETA).*(RHO.*cos(THETA-1)).^2) + (2.*sin(THETA).^3) - (RHO.*(RHO.*cos(THETA)-1));&lt;br /&gt;
&lt;br /&gt;
%Comprobar que está bien sacado el rotacional&lt;br /&gt;
%Representación del rotacional&lt;br /&gt;
surf(X,Y,ROT) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Rotacional')&lt;br /&gt;
}}&lt;br /&gt;
==Tensiones ==&lt;br /&gt;
Definamos &amp;lt;math&amp;gt;e(u ̅ )=(∇u ⃗+〖∇u ⃗〗^t)/2&amp;lt;/math&amp;gt; , la parte simétrica del tensor gradiente de &amp;lt;math&amp;gt; u ̅&amp;lt;/math&amp;gt; conocido como tensor de deformaciones. En un medio elástico ideal, isótropo y homogéneo, los desplazamientos permiten escribir el tensor de tensiones a través de la fórmula &amp;lt;math&amp;gt;  σ=λ∇∙u ̅1+2µe&amp;lt;/math&amp;gt;, donde λ y µ son los conocidos como coeficientes de Lamé que dependen de las propiedades elásticas de cada material. A pesar de que los desplazamientos son planos, (es decir, &amp;lt;math&amp;gt;u ̅ &amp;lt;/math&amp;gt;no tiene componente en la dirección &amp;lt;math&amp;gt;k ̅&amp;lt;/math&amp;gt;) las tensiones no tienen por qué ser planas y puede haber tensiones en la dirección ortogonal al plano de la placa. Tomando λ = µ = 1, dibujar las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt;( g_ρ ) ⃗ &amp;lt;/math&amp;gt;, es decir &amp;lt;math&amp;gt; (g_ρ ) ⃗∙σ∙(g_ρ ) ⃗&amp;lt;/math&amp;gt;, las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt; (g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; (g_θ ) ⃗/ρ∙σ∙(g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, y las correspondientes al eje&amp;lt;math&amp;gt; k ⃗&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; k ⃗∙σ∙k ⃗&amp;lt;/math&amp;gt;.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables   &lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%Gradiente de un campo vectorial&lt;br /&gt;
U=[(RHO.*cos(THETA)-1).^2.*RHO.*sin(THETA).^2 , -(RHO.*cos(THETA)-1).^2.*sin(THETA).*cos(THETA)];&lt;br /&gt;
[dx,dy]=gradient(U);&lt;br /&gt;
&lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
subplot(2,3,1);&lt;br /&gt;
&lt;br /&gt;
 %Tomamos el valor (1,1) de la matriz sigma y lo dibujamos&lt;br /&gt;
 r=dx(1,1);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,r)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 view(2)&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
 subplot(2,3,2);   &lt;br /&gt;
     &lt;br /&gt;
 %Tomamos el valor (2,2) de la matriz sigma y lo dibujamos   &lt;br /&gt;
 t=dy(2,2);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,t)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 view(2)&lt;br /&gt;
 &lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a gz&lt;br /&gt;
% subplot(2,3,3)&lt;br /&gt;
 &lt;br /&gt;
 %Tomamos el valor (3,3) de la matriz sigma y lo dibujamos &lt;br /&gt;
 %z=           &lt;br /&gt;
     &lt;br /&gt;
 %surf(X,Y,z)&lt;br /&gt;
 &lt;br /&gt;
 %axis equal&lt;br /&gt;
% view(2)&lt;br /&gt;
% title('Tensiones respecto a gz')&lt;br /&gt;
 %colorbar&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Tensión de Von Mises==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Masa de la placa==&lt;br /&gt;
Finalmente, calcularemos la masa de la placa objeto de estudio. Esto se realizará mediante la integracion de la densida de la placa &amp;lt;math&amp;gt;d(x,y)=3+log⁡(1+|x|/(y+1)^4 )&amp;lt;/math&amp;gt;&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables    &lt;br /&gt;
h=0.1;&lt;br /&gt;
H=round(pi/h);&lt;br /&gt;
&lt;br /&gt;
rho=[1:h:3];          &lt;br /&gt;
theta=linspace(0,pi,H);&lt;br /&gt;
&lt;br /&gt;
%Creamos la parametrización&lt;br /&gt;
[RHO,THETA]=meshgrid(rho,theta);&lt;br /&gt;
&lt;br /&gt;
X=RHO.*cos(THETA);        &lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
d=3+log(1+abs(X)./(Y+1).^4);&lt;br /&gt;
&lt;br /&gt;
% Representamos graficamente la densidad en cada punto de la malla&lt;br /&gt;
surf(X,Y,d);&lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
axis square&lt;br /&gt;
%Cálculo de la masa total&lt;br /&gt;
MasaTotal=sum(sum(Densidad))&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>P.salvadores</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40640</id>
		<title>Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40640"/>
				<updated>2017-12-14T22:17:09Z</updated>
		
		<summary type="html">&lt;p&gt;P.salvadores: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{  Beta  }}&lt;br /&gt;
{{Trabajo|Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)|[[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC17/18|2017-2018]]|Pablo Salvadores,Raquel Marco}}&lt;br /&gt;
== Introducción== &lt;br /&gt;
Para la visualización de campos escalares y vectoriales, consideraremos una placa definida por el anillo circular centrado en el origen y comprendidos entre los radios 1/2 y 2, en el plano y≥0. Con esta definición, tendremos una placa formada por un semianillo circular. Consideraremos ademas como ejes los pertenecientes al rectángulo [-3,3]x[-1,3]. &lt;br /&gt;
Para simplificar la tarea de definir la placa, usaremos coordenadas cilindricas.&lt;br /&gt;
&lt;br /&gt;
En la placa vamos a suponer que tenemos definidas dos cantidades físicas: la temperatura &amp;lt;math&amp;gt;T(x,y)&amp;lt;/math&amp;gt; que depende de las dos variables espaciales (x,y), y los desplazamientos &amp;lt;math&amp;gt;u(x,y)&amp;lt;/math&amp;gt; producidos por la acción de una fuerza determinada. De esta forma, si definimos r0(x,y) como el vector posición de los puntos de la placa antes de la deformación, la posición de cada punto (x,y) de la placa después de la deformación viene dada por : &lt;br /&gt;
&amp;lt;math&amp;gt;r ̅(x,y)=(r_0 ) ̅(x,y)+u ̅(x,y)&amp;lt;/math&amp;gt;.&lt;br /&gt;
Vamos a suponer que la fuerza aplicada sobre la placa ha provocado un desplazamiento de los puntos de la misma dado por el vector de desplazamientos&lt;br /&gt;
&amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;&lt;br /&gt;
== Mallado ==&lt;br /&gt;
Comenzaremos planteando en Matlab el mallado de la placa con el fin de poder visualizarla en el espacio con mayor facilidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Paso de muestreo &lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de la parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
%Dibujo del mallado&lt;br /&gt;
mesh(X,Y,0*X) &lt;br /&gt;
title('Mallado')&lt;br /&gt;
%ajustar los ejes&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Fig. 1|miniaturadeimagen|Placa]]&lt;br /&gt;
&lt;br /&gt;
== Temperatura==&lt;br /&gt;
A continuación, escribiremos en matlab el codigo necesario para obtener la funcion temperatura de la placa T(x,y). Para ayudarnos a la visualización, colorearemos la placa con las distintas temperaturas en cada punto de la misma junto con  las curvas de nivel, que unen los putnos con  misma temperatura en la placa. Ademas, obtendremos la temperatura maxima en la placa. La funcion temperatura que definira el campo será: &amp;lt;math&amp;gt;T(x,y)=log⁡((y+x)^2+2)&amp;lt;/math&amp;gt; &lt;br /&gt;
Nota: esta parte del codigo no es un programa en si. Para que funcione debidamente, debemos agregar la parte escrita en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Campo de temperatura&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 &lt;br /&gt;
 %Representación en 2D&lt;br /&gt;
subplot(1,2,1)&lt;br /&gt;
contour(X,Y,T)&lt;br /&gt;
view(2) &lt;br /&gt;
axis([-3,3,-1,3]);&lt;br /&gt;
title('Curvas de nivel de la Temperatura')&lt;br /&gt;
%Representacion Temperatura &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,T);&lt;br /&gt;
title('Temperatura')&lt;br /&gt;
&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
contour(X,Y,T,50);&lt;br /&gt;
colorbar&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
title('Curvas de nivel')&lt;br /&gt;
%Temperatura máxima&lt;br /&gt;
Tmax=max(max(T));&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Gradiente de temperatura==&lt;br /&gt;
El gradiente de la temperatura nos definirá en que direccion se produce la maxima variacion de temperatura en la placa. Para poder mantener el orden dentro de la programacion, abriremos otro programa que repetirá exactamente los mismos comandos que en el apartado 1 de manera que se nos genere un mallado. En este caso le añadiremos el gradiente de la temperatura a toda la placa en forma de campo vectorial con flechas que nos indicará la direccion que sigue el gradiente. Estas flechas serán perpendiculares a las lineas de nivel que habiamos dibujado previamente en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%inicializamos las variables&lt;br /&gt;
 h=0.1;&lt;br /&gt;
 &lt;br /&gt;
 rho=[1:h:2];&lt;br /&gt;
 H=round(pi/h);         &lt;br /&gt;
 theta=linspace(0,pi,H);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos el mallado y la parametrización&lt;br /&gt;
 [RHO,THETA]=meshgrid(rho,theta); &lt;br /&gt;
 &lt;br /&gt;
 X=RHO.*cos(THETA);        &lt;br /&gt;
 Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujamos el mallado&lt;br /&gt;
 mesh(X,Y,0*X) ; &lt;br /&gt;
 axis([-3,3,-1,3]); &lt;br /&gt;
 &lt;br /&gt;
 view(2);&lt;br /&gt;
 &lt;br /&gt;
 %GRADIENTE&lt;br /&gt;
 dx=((2*(Y+X))./(((Y+X).^2)+2));&lt;br /&gt;
 dy=dx;&lt;br /&gt;
 %CAMPO ESCALAR DE TEMPERATURAS&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 %Creación de la subventana primera: gradiente en el campo de temperaturas&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,1);&lt;br /&gt;
 hold on;&lt;br /&gt;
 surf(X,Y,T);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo del gradiente&lt;br /&gt;
 quiver3(X,Y,T,dx,dy,0*T);&lt;br /&gt;
 &lt;br /&gt;
 hold off;&lt;br /&gt;
 &lt;br /&gt;
 %Creación de la segunda subventana: campo vectorial del gradiente&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,2);&lt;br /&gt;
 quiver(X,Y,dx,dy); &lt;br /&gt;
 colorbar;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Campo de desplazamientos==&lt;br /&gt;
Tomando el campo de desplazamientos &amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;, lo representaremos igual que el gradiente (flechas) con maor tamaño cuanta mayor es la intensidad del campo en una región.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%CAMPO VECTORIAL DE DESPLAZAMIENTOS&lt;br /&gt;
 %Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Representamos el campo vectorial de desplazamientos&lt;br /&gt;
quiver(X,Y,FX,FY) &lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
xlabel('Eje x')&lt;br /&gt;
ylabel('Eje y')&lt;br /&gt;
title('Campo de desplazamientos sobre la placa')&lt;br /&gt;
}}&lt;br /&gt;
===Campo de desplazamientos sobre la placa===&lt;br /&gt;
Aplicaremos el campo de desplazamientos sobre la placa para poder apreciar la deformacion que sufre esta por una fuerza externa (generadora del campo de desplazamientos).&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestro&lt;br /&gt;
h=0.1;&lt;br /&gt;
% Valores de parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Creación del mallado&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Matriz con las coordenadas en x, después del desplazamiento&lt;br /&gt;
Rx=FX+X;&lt;br /&gt;
%Matriz con las coordenadas en y, después del desplazamiento&lt;br /&gt;
Ry=FY+Y;&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido antes del desplazamiento &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,0*X);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo sin deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido tras del desplazamiento&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
mesh(Rx,Ry,0*Rx);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo con deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
}}&lt;br /&gt;
==Divergencia del campo de desplazamientos==&lt;br /&gt;
Para obtener una medida de la variacion producida en la placa por el campo de desplazamientos, utilizaremos la divergencia de este. Aparecera en el grafico un mapa de colores con la variacion de volumen producida durante la deformación. Además, el programa nos devolverá el maximo valor que alcanza dicha divergencia.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Divergencia&lt;br /&gt;
DIVERGENCIA= [2.*((sin(THETA)).^2).*(RHO.*(cos(THETA)-1)).*(1+(RHO.*cos(THETA))+0.5.*(RHO.*cos(THETA)-1)+cos(THETA))]-[((cos(THETA)).^2).*((RHO.*cos(THETA))-1).^2];&lt;br /&gt;
&lt;br /&gt;
MaxDivergencia=max(max(DIVERGENCIA))&lt;br /&gt;
&lt;br /&gt;
%Representación de la divergencia&lt;br /&gt;
surf(X,Y,DIVERGENCIA) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Divergencia')&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Rotacional del campo de desplazamientos==&lt;br /&gt;
Igual que con la divergencia, visualizaremos el rotacional del campo de desplazamientos con la siguiente programacion.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Rotacional&lt;br /&gt;
ROT= (-2.*(cos(THETA)-1./RHO).*sin(THETA).*cos(THETA).^2) - (2.*sin(THETA).*cos(THETA).*(RHO.*cos(THETA-1)).^2) + (2.*sin(THETA).^3) - (RHO.*(RHO.*cos(THETA)-1));&lt;br /&gt;
&lt;br /&gt;
%Comprobar que está bien sacado el rotacional&lt;br /&gt;
%Representación del rotacional&lt;br /&gt;
surf(X,Y,ROT) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Rotacional')&lt;br /&gt;
}}&lt;br /&gt;
==Tensiones ==&lt;br /&gt;
Definamos &amp;lt;math&amp;gt;e(u ̅ )=(∇u ⃗+〖∇u ⃗〗^t)/2&amp;lt;/math&amp;gt; , la parte simétrica del tensor gradiente de &amp;lt;math&amp;gt; u ̅&amp;lt;/math&amp;gt; conocido como tensor de deformaciones. En un medio elástico ideal, isótropo y homogéneo, los desplazamientos permiten escribir el tensor de tensiones a través de la fórmula &amp;lt;math&amp;gt;  σ=λ∇∙u ̅1+2µe&amp;lt;/math&amp;gt;, donde λ y µ son los conocidos como coeficientes de Lamé que dependen de las propiedades elásticas de cada material. A pesar de que los desplazamientos son planos, (es decir, &amp;lt;math&amp;gt;u ̅ &amp;lt;/math&amp;gt;no tiene componente en la dirección &amp;lt;math&amp;gt;k ̅&amp;lt;/math&amp;gt;) las tensiones no tienen por qué ser planas y puede haber tensiones en la dirección ortogonal al plano de la placa. Tomando λ = µ = 1, dibujar las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt;( g_ρ ) ⃗ &amp;lt;/math&amp;gt;, es decir &amp;lt;math&amp;gt; (g_ρ ) ⃗∙σ∙(g_ρ ) ⃗&amp;lt;/math&amp;gt;, las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt; (g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; (g_θ ) ⃗/ρ∙σ∙(g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, y las correspondientes al eje&amp;lt;math&amp;gt; k ⃗&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; k ⃗∙σ∙k ⃗&amp;lt;/math&amp;gt;.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables   &lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%Gradiente de un campo vectorial&lt;br /&gt;
U=[(RHO.*cos(THETA)-1).^2.*RHO.*sin(THETA).^2 , -(RHO.*cos(THETA)-1).^2.*sin(THETA).*cos(THETA)];&lt;br /&gt;
[dx,dy]=gradient(U);&lt;br /&gt;
&lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
subplot(2,3,1);&lt;br /&gt;
&lt;br /&gt;
 %Tomamos el valor (1,1) de la matriz sigma y lo dibujamos&lt;br /&gt;
 r=dx(1,1);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,r)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 view(2)&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
 subplot(2,3,2);   &lt;br /&gt;
     &lt;br /&gt;
 %Tomamos el valor (2,2) de la matriz sigma y lo dibujamos   &lt;br /&gt;
 t=dy(2,2);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,t)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 view(2)&lt;br /&gt;
 &lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a gz&lt;br /&gt;
% subplot(2,3,3)&lt;br /&gt;
 &lt;br /&gt;
 %Tomamos el valor (3,3) de la matriz sigma y lo dibujamos &lt;br /&gt;
 %z=           &lt;br /&gt;
     &lt;br /&gt;
 %surf(X,Y,z)&lt;br /&gt;
 &lt;br /&gt;
 %axis equal&lt;br /&gt;
% view(2)&lt;br /&gt;
% title('Tensiones respecto a gz')&lt;br /&gt;
 %colorbar&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Tensión de Von Mises==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Masa de la placa==&lt;br /&gt;
Finalmente, calcularemos la masa de la placa objeto de estudio. Esto se realizará mediante la integracion de la densida de la placa &amp;lt;math&amp;gt;d(x,y)=3+log⁡(1+|x|/(y+1)^4 )&amp;lt;/math&amp;gt;&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables    &lt;br /&gt;
h=0.1;&lt;br /&gt;
H=round(pi/h);&lt;br /&gt;
&lt;br /&gt;
rho=[1:h:3];          &lt;br /&gt;
theta=linspace(0,pi,H);&lt;br /&gt;
&lt;br /&gt;
%Creamos la parametrización&lt;br /&gt;
[RHO,THETA]=meshgrid(rho,theta);&lt;br /&gt;
&lt;br /&gt;
X=RHO.*cos(THETA);        &lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
d=3+log(1+abs(X)./(Y+1).^4);&lt;br /&gt;
&lt;br /&gt;
% Representamos graficamente la densidad en cada punto de la malla&lt;br /&gt;
surf(X,Y,d);&lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
axis square&lt;br /&gt;
%Cálculo de la masa total&lt;br /&gt;
MasaTotal=sum(sum(Densidad))&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>P.salvadores</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40639</id>
		<title>Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40639"/>
				<updated>2017-12-14T22:16:24Z</updated>
		
		<summary type="html">&lt;p&gt;P.salvadores: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{  Beta  }}&lt;br /&gt;
{{Trabajo|Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)|[[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:Trabajos 2017-18|2017-2018]]|Pablo Salvadores,Raquel Marco}}&lt;br /&gt;
== Introducción== &lt;br /&gt;
Para la visualización de campos escalares y vectoriales, consideraremos una placa definida por el anillo circular centrado en el origen y comprendidos entre los radios 1/2 y 2, en el plano y≥0. Con esta definición, tendremos una placa formada por un semianillo circular. Consideraremos ademas como ejes los pertenecientes al rectángulo [-3,3]x[-1,3]. &lt;br /&gt;
Para simplificar la tarea de definir la placa, usaremos coordenadas cilindricas.&lt;br /&gt;
&lt;br /&gt;
En la placa vamos a suponer que tenemos definidas dos cantidades físicas: la temperatura &amp;lt;math&amp;gt;T(x,y)&amp;lt;/math&amp;gt; que depende de las dos variables espaciales (x,y), y los desplazamientos &amp;lt;math&amp;gt;u(x,y)&amp;lt;/math&amp;gt; producidos por la acción de una fuerza determinada. De esta forma, si definimos r0(x,y) como el vector posición de los puntos de la placa antes de la deformación, la posición de cada punto (x,y) de la placa después de la deformación viene dada por : &lt;br /&gt;
&amp;lt;math&amp;gt;r ̅(x,y)=(r_0 ) ̅(x,y)+u ̅(x,y)&amp;lt;/math&amp;gt;.&lt;br /&gt;
Vamos a suponer que la fuerza aplicada sobre la placa ha provocado un desplazamiento de los puntos de la misma dado por el vector de desplazamientos&lt;br /&gt;
&amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;&lt;br /&gt;
== Mallado ==&lt;br /&gt;
Comenzaremos planteando en Matlab el mallado de la placa con el fin de poder visualizarla en el espacio con mayor facilidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Paso de muestreo &lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de la parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
%Dibujo del mallado&lt;br /&gt;
mesh(X,Y,0*X) &lt;br /&gt;
title('Mallado')&lt;br /&gt;
%ajustar los ejes&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Fig. 1|miniaturadeimagen|Placa]]&lt;br /&gt;
&lt;br /&gt;
== Temperatura==&lt;br /&gt;
A continuación, escribiremos en matlab el codigo necesario para obtener la funcion temperatura de la placa T(x,y). Para ayudarnos a la visualización, colorearemos la placa con las distintas temperaturas en cada punto de la misma junto con  las curvas de nivel, que unen los putnos con  misma temperatura en la placa. Ademas, obtendremos la temperatura maxima en la placa. La funcion temperatura que definira el campo será: &amp;lt;math&amp;gt;T(x,y)=log⁡((y+x)^2+2)&amp;lt;/math&amp;gt; &lt;br /&gt;
Nota: esta parte del codigo no es un programa en si. Para que funcione debidamente, debemos agregar la parte escrita en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Campo de temperatura&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 &lt;br /&gt;
 %Representación en 2D&lt;br /&gt;
subplot(1,2,1)&lt;br /&gt;
contour(X,Y,T)&lt;br /&gt;
view(2) &lt;br /&gt;
axis([-3,3,-1,3]);&lt;br /&gt;
title('Curvas de nivel de la Temperatura')&lt;br /&gt;
%Representacion Temperatura &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,T);&lt;br /&gt;
title('Temperatura')&lt;br /&gt;
&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
contour(X,Y,T,50);&lt;br /&gt;
colorbar&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
title('Curvas de nivel')&lt;br /&gt;
%Temperatura máxima&lt;br /&gt;
Tmax=max(max(T));&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Gradiente de temperatura==&lt;br /&gt;
El gradiente de la temperatura nos definirá en que direccion se produce la maxima variacion de temperatura en la placa. Para poder mantener el orden dentro de la programacion, abriremos otro programa que repetirá exactamente los mismos comandos que en el apartado 1 de manera que se nos genere un mallado. En este caso le añadiremos el gradiente de la temperatura a toda la placa en forma de campo vectorial con flechas que nos indicará la direccion que sigue el gradiente. Estas flechas serán perpendiculares a las lineas de nivel que habiamos dibujado previamente en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%inicializamos las variables&lt;br /&gt;
 h=0.1;&lt;br /&gt;
 &lt;br /&gt;
 rho=[1:h:2];&lt;br /&gt;
 H=round(pi/h);         &lt;br /&gt;
 theta=linspace(0,pi,H);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos el mallado y la parametrización&lt;br /&gt;
 [RHO,THETA]=meshgrid(rho,theta); &lt;br /&gt;
 &lt;br /&gt;
 X=RHO.*cos(THETA);        &lt;br /&gt;
 Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujamos el mallado&lt;br /&gt;
 mesh(X,Y,0*X) ; &lt;br /&gt;
 axis([-3,3,-1,3]); &lt;br /&gt;
 &lt;br /&gt;
 view(2);&lt;br /&gt;
 &lt;br /&gt;
 %GRADIENTE&lt;br /&gt;
 dx=((2*(Y+X))./(((Y+X).^2)+2));&lt;br /&gt;
 dy=dx;&lt;br /&gt;
 %CAMPO ESCALAR DE TEMPERATURAS&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 %Creación de la subventana primera: gradiente en el campo de temperaturas&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,1);&lt;br /&gt;
 hold on;&lt;br /&gt;
 surf(X,Y,T);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo del gradiente&lt;br /&gt;
 quiver3(X,Y,T,dx,dy,0*T);&lt;br /&gt;
 &lt;br /&gt;
 hold off;&lt;br /&gt;
 &lt;br /&gt;
 %Creación de la segunda subventana: campo vectorial del gradiente&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,2);&lt;br /&gt;
 quiver(X,Y,dx,dy); &lt;br /&gt;
 colorbar;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Campo de desplazamientos==&lt;br /&gt;
Tomando el campo de desplazamientos &amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;, lo representaremos igual que el gradiente (flechas) con maor tamaño cuanta mayor es la intensidad del campo en una región.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%CAMPO VECTORIAL DE DESPLAZAMIENTOS&lt;br /&gt;
 %Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Representamos el campo vectorial de desplazamientos&lt;br /&gt;
quiver(X,Y,FX,FY) &lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
xlabel('Eje x')&lt;br /&gt;
ylabel('Eje y')&lt;br /&gt;
title('Campo de desplazamientos sobre la placa')&lt;br /&gt;
}}&lt;br /&gt;
===Campo de desplazamientos sobre la placa===&lt;br /&gt;
Aplicaremos el campo de desplazamientos sobre la placa para poder apreciar la deformacion que sufre esta por una fuerza externa (generadora del campo de desplazamientos).&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestro&lt;br /&gt;
h=0.1;&lt;br /&gt;
% Valores de parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Creación del mallado&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Matriz con las coordenadas en x, después del desplazamiento&lt;br /&gt;
Rx=FX+X;&lt;br /&gt;
%Matriz con las coordenadas en y, después del desplazamiento&lt;br /&gt;
Ry=FY+Y;&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido antes del desplazamiento &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,0*X);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo sin deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido tras del desplazamiento&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
mesh(Rx,Ry,0*Rx);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo con deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
}}&lt;br /&gt;
==Divergencia del campo de desplazamientos==&lt;br /&gt;
Para obtener una medida de la variacion producida en la placa por el campo de desplazamientos, utilizaremos la divergencia de este. Aparecera en el grafico un mapa de colores con la variacion de volumen producida durante la deformación. Además, el programa nos devolverá el maximo valor que alcanza dicha divergencia.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Divergencia&lt;br /&gt;
DIVERGENCIA= [2.*((sin(THETA)).^2).*(RHO.*(cos(THETA)-1)).*(1+(RHO.*cos(THETA))+0.5.*(RHO.*cos(THETA)-1)+cos(THETA))]-[((cos(THETA)).^2).*((RHO.*cos(THETA))-1).^2];&lt;br /&gt;
&lt;br /&gt;
MaxDivergencia=max(max(DIVERGENCIA))&lt;br /&gt;
&lt;br /&gt;
%Representación de la divergencia&lt;br /&gt;
surf(X,Y,DIVERGENCIA) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Divergencia')&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Rotacional del campo de desplazamientos==&lt;br /&gt;
Igual que con la divergencia, visualizaremos el rotacional del campo de desplazamientos con la siguiente programacion.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Rotacional&lt;br /&gt;
ROT= (-2.*(cos(THETA)-1./RHO).*sin(THETA).*cos(THETA).^2) - (2.*sin(THETA).*cos(THETA).*(RHO.*cos(THETA-1)).^2) + (2.*sin(THETA).^3) - (RHO.*(RHO.*cos(THETA)-1));&lt;br /&gt;
&lt;br /&gt;
%Comprobar que está bien sacado el rotacional&lt;br /&gt;
%Representación del rotacional&lt;br /&gt;
surf(X,Y,ROT) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Rotacional')&lt;br /&gt;
}}&lt;br /&gt;
==Tensiones ==&lt;br /&gt;
Definamos &amp;lt;math&amp;gt;e(u ̅ )=(∇u ⃗+〖∇u ⃗〗^t)/2&amp;lt;/math&amp;gt; , la parte simétrica del tensor gradiente de &amp;lt;math&amp;gt; u ̅&amp;lt;/math&amp;gt; conocido como tensor de deformaciones. En un medio elástico ideal, isótropo y homogéneo, los desplazamientos permiten escribir el tensor de tensiones a través de la fórmula &amp;lt;math&amp;gt;  σ=λ∇∙u ̅1+2µe&amp;lt;/math&amp;gt;, donde λ y µ son los conocidos como coeficientes de Lamé que dependen de las propiedades elásticas de cada material. A pesar de que los desplazamientos son planos, (es decir, &amp;lt;math&amp;gt;u ̅ &amp;lt;/math&amp;gt;no tiene componente en la dirección &amp;lt;math&amp;gt;k ̅&amp;lt;/math&amp;gt;) las tensiones no tienen por qué ser planas y puede haber tensiones en la dirección ortogonal al plano de la placa. Tomando λ = µ = 1, dibujar las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt;( g_ρ ) ⃗ &amp;lt;/math&amp;gt;, es decir &amp;lt;math&amp;gt; (g_ρ ) ⃗∙σ∙(g_ρ ) ⃗&amp;lt;/math&amp;gt;, las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt; (g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; (g_θ ) ⃗/ρ∙σ∙(g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, y las correspondientes al eje&amp;lt;math&amp;gt; k ⃗&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; k ⃗∙σ∙k ⃗&amp;lt;/math&amp;gt;.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables   &lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%Gradiente de un campo vectorial&lt;br /&gt;
U=[(RHO.*cos(THETA)-1).^2.*RHO.*sin(THETA).^2 , -(RHO.*cos(THETA)-1).^2.*sin(THETA).*cos(THETA)];&lt;br /&gt;
[dx,dy]=gradient(U);&lt;br /&gt;
&lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
subplot(2,3,1);&lt;br /&gt;
&lt;br /&gt;
 %Tomamos el valor (1,1) de la matriz sigma y lo dibujamos&lt;br /&gt;
 r=dx(1,1);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,r)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 view(2)&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
 subplot(2,3,2);   &lt;br /&gt;
     &lt;br /&gt;
 %Tomamos el valor (2,2) de la matriz sigma y lo dibujamos   &lt;br /&gt;
 t=dy(2,2);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,t)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 view(2)&lt;br /&gt;
 &lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a gz&lt;br /&gt;
% subplot(2,3,3)&lt;br /&gt;
 &lt;br /&gt;
 %Tomamos el valor (3,3) de la matriz sigma y lo dibujamos &lt;br /&gt;
 %z=           &lt;br /&gt;
     &lt;br /&gt;
 %surf(X,Y,z)&lt;br /&gt;
 &lt;br /&gt;
 %axis equal&lt;br /&gt;
% view(2)&lt;br /&gt;
% title('Tensiones respecto a gz')&lt;br /&gt;
 %colorbar&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Tensión de Von Mises==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Masa de la placa==&lt;br /&gt;
Finalmente, calcularemos la masa de la placa objeto de estudio. Esto se realizará mediante la integracion de la densida de la placa &amp;lt;math&amp;gt;d(x,y)=3+log⁡(1+|x|/(y+1)^4 )&amp;lt;/math&amp;gt;&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables    &lt;br /&gt;
h=0.1;&lt;br /&gt;
H=round(pi/h);&lt;br /&gt;
&lt;br /&gt;
rho=[1:h:3];          &lt;br /&gt;
theta=linspace(0,pi,H);&lt;br /&gt;
&lt;br /&gt;
%Creamos la parametrización&lt;br /&gt;
[RHO,THETA]=meshgrid(rho,theta);&lt;br /&gt;
&lt;br /&gt;
X=RHO.*cos(THETA);        &lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
d=3+log(1+abs(X)./(Y+1).^4);&lt;br /&gt;
&lt;br /&gt;
% Representamos graficamente la densidad en cada punto de la malla&lt;br /&gt;
surf(X,Y,d);&lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
axis square&lt;br /&gt;
%Cálculo de la masa total&lt;br /&gt;
MasaTotal=sum(sum(Densidad))&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>P.salvadores</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40638</id>
		<title>Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40638"/>
				<updated>2017-12-14T22:15:45Z</updated>
		
		<summary type="html">&lt;p&gt;P.salvadores: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{  Beta  }}&lt;br /&gt;
{{Trabajo|Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)|[[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:Trabajos 2017-2018|2017-2018]]|Pablo Salvadores,Raquel Marco}}&lt;br /&gt;
== Introducción== &lt;br /&gt;
Para la visualización de campos escalares y vectoriales, consideraremos una placa definida por el anillo circular centrado en el origen y comprendidos entre los radios 1/2 y 2, en el plano y≥0. Con esta definición, tendremos una placa formada por un semianillo circular. Consideraremos ademas como ejes los pertenecientes al rectángulo [-3,3]x[-1,3]. &lt;br /&gt;
Para simplificar la tarea de definir la placa, usaremos coordenadas cilindricas.&lt;br /&gt;
&lt;br /&gt;
En la placa vamos a suponer que tenemos definidas dos cantidades físicas: la temperatura &amp;lt;math&amp;gt;T(x,y)&amp;lt;/math&amp;gt; que depende de las dos variables espaciales (x,y), y los desplazamientos &amp;lt;math&amp;gt;u(x,y)&amp;lt;/math&amp;gt; producidos por la acción de una fuerza determinada. De esta forma, si definimos r0(x,y) como el vector posición de los puntos de la placa antes de la deformación, la posición de cada punto (x,y) de la placa después de la deformación viene dada por : &lt;br /&gt;
&amp;lt;math&amp;gt;r ̅(x,y)=(r_0 ) ̅(x,y)+u ̅(x,y)&amp;lt;/math&amp;gt;.&lt;br /&gt;
Vamos a suponer que la fuerza aplicada sobre la placa ha provocado un desplazamiento de los puntos de la misma dado por el vector de desplazamientos&lt;br /&gt;
&amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;&lt;br /&gt;
== Mallado ==&lt;br /&gt;
Comenzaremos planteando en Matlab el mallado de la placa con el fin de poder visualizarla en el espacio con mayor facilidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Paso de muestreo &lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de la parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
%Dibujo del mallado&lt;br /&gt;
mesh(X,Y,0*X) &lt;br /&gt;
title('Mallado')&lt;br /&gt;
%ajustar los ejes&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Fig. 1|miniaturadeimagen|Placa]]&lt;br /&gt;
&lt;br /&gt;
== Temperatura==&lt;br /&gt;
A continuación, escribiremos en matlab el codigo necesario para obtener la funcion temperatura de la placa T(x,y). Para ayudarnos a la visualización, colorearemos la placa con las distintas temperaturas en cada punto de la misma junto con  las curvas de nivel, que unen los putnos con  misma temperatura en la placa. Ademas, obtendremos la temperatura maxima en la placa. La funcion temperatura que definira el campo será: &amp;lt;math&amp;gt;T(x,y)=log⁡((y+x)^2+2)&amp;lt;/math&amp;gt; &lt;br /&gt;
Nota: esta parte del codigo no es un programa en si. Para que funcione debidamente, debemos agregar la parte escrita en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Campo de temperatura&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 &lt;br /&gt;
 %Representación en 2D&lt;br /&gt;
subplot(1,2,1)&lt;br /&gt;
contour(X,Y,T)&lt;br /&gt;
view(2) &lt;br /&gt;
axis([-3,3,-1,3]);&lt;br /&gt;
title('Curvas de nivel de la Temperatura')&lt;br /&gt;
%Representacion Temperatura &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,T);&lt;br /&gt;
title('Temperatura')&lt;br /&gt;
&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
contour(X,Y,T,50);&lt;br /&gt;
colorbar&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
title('Curvas de nivel')&lt;br /&gt;
%Temperatura máxima&lt;br /&gt;
Tmax=max(max(T));&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Gradiente de temperatura==&lt;br /&gt;
El gradiente de la temperatura nos definirá en que direccion se produce la maxima variacion de temperatura en la placa. Para poder mantener el orden dentro de la programacion, abriremos otro programa que repetirá exactamente los mismos comandos que en el apartado 1 de manera que se nos genere un mallado. En este caso le añadiremos el gradiente de la temperatura a toda la placa en forma de campo vectorial con flechas que nos indicará la direccion que sigue el gradiente. Estas flechas serán perpendiculares a las lineas de nivel que habiamos dibujado previamente en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%inicializamos las variables&lt;br /&gt;
 h=0.1;&lt;br /&gt;
 &lt;br /&gt;
 rho=[1:h:2];&lt;br /&gt;
 H=round(pi/h);         &lt;br /&gt;
 theta=linspace(0,pi,H);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos el mallado y la parametrización&lt;br /&gt;
 [RHO,THETA]=meshgrid(rho,theta); &lt;br /&gt;
 &lt;br /&gt;
 X=RHO.*cos(THETA);        &lt;br /&gt;
 Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujamos el mallado&lt;br /&gt;
 mesh(X,Y,0*X) ; &lt;br /&gt;
 axis([-3,3,-1,3]); &lt;br /&gt;
 &lt;br /&gt;
 view(2);&lt;br /&gt;
 &lt;br /&gt;
 %GRADIENTE&lt;br /&gt;
 dx=((2*(Y+X))./(((Y+X).^2)+2));&lt;br /&gt;
 dy=dx;&lt;br /&gt;
 %CAMPO ESCALAR DE TEMPERATURAS&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 %Creación de la subventana primera: gradiente en el campo de temperaturas&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,1);&lt;br /&gt;
 hold on;&lt;br /&gt;
 surf(X,Y,T);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo del gradiente&lt;br /&gt;
 quiver3(X,Y,T,dx,dy,0*T);&lt;br /&gt;
 &lt;br /&gt;
 hold off;&lt;br /&gt;
 &lt;br /&gt;
 %Creación de la segunda subventana: campo vectorial del gradiente&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,2);&lt;br /&gt;
 quiver(X,Y,dx,dy); &lt;br /&gt;
 colorbar;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Campo de desplazamientos==&lt;br /&gt;
Tomando el campo de desplazamientos &amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;, lo representaremos igual que el gradiente (flechas) con maor tamaño cuanta mayor es la intensidad del campo en una región.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%CAMPO VECTORIAL DE DESPLAZAMIENTOS&lt;br /&gt;
 %Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Representamos el campo vectorial de desplazamientos&lt;br /&gt;
quiver(X,Y,FX,FY) &lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
xlabel('Eje x')&lt;br /&gt;
ylabel('Eje y')&lt;br /&gt;
title('Campo de desplazamientos sobre la placa')&lt;br /&gt;
}}&lt;br /&gt;
===Campo de desplazamientos sobre la placa===&lt;br /&gt;
Aplicaremos el campo de desplazamientos sobre la placa para poder apreciar la deformacion que sufre esta por una fuerza externa (generadora del campo de desplazamientos).&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestro&lt;br /&gt;
h=0.1;&lt;br /&gt;
% Valores de parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Creación del mallado&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Matriz con las coordenadas en x, después del desplazamiento&lt;br /&gt;
Rx=FX+X;&lt;br /&gt;
%Matriz con las coordenadas en y, después del desplazamiento&lt;br /&gt;
Ry=FY+Y;&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido antes del desplazamiento &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,0*X);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo sin deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido tras del desplazamiento&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
mesh(Rx,Ry,0*Rx);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo con deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
}}&lt;br /&gt;
==Divergencia del campo de desplazamientos==&lt;br /&gt;
Para obtener una medida de la variacion producida en la placa por el campo de desplazamientos, utilizaremos la divergencia de este. Aparecera en el grafico un mapa de colores con la variacion de volumen producida durante la deformación. Además, el programa nos devolverá el maximo valor que alcanza dicha divergencia.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Divergencia&lt;br /&gt;
DIVERGENCIA= [2.*((sin(THETA)).^2).*(RHO.*(cos(THETA)-1)).*(1+(RHO.*cos(THETA))+0.5.*(RHO.*cos(THETA)-1)+cos(THETA))]-[((cos(THETA)).^2).*((RHO.*cos(THETA))-1).^2];&lt;br /&gt;
&lt;br /&gt;
MaxDivergencia=max(max(DIVERGENCIA))&lt;br /&gt;
&lt;br /&gt;
%Representación de la divergencia&lt;br /&gt;
surf(X,Y,DIVERGENCIA) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Divergencia')&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Rotacional del campo de desplazamientos==&lt;br /&gt;
Igual que con la divergencia, visualizaremos el rotacional del campo de desplazamientos con la siguiente programacion.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
 &lt;br /&gt;
%Rotacional&lt;br /&gt;
ROT= (-2.*(cos(THETA)-1./RHO).*sin(THETA).*cos(THETA).^2) - (2.*sin(THETA).*cos(THETA).*(RHO.*cos(THETA-1)).^2) + (2.*sin(THETA).^3) - (RHO.*(RHO.*cos(THETA)-1));&lt;br /&gt;
&lt;br /&gt;
%Comprobar que está bien sacado el rotacional&lt;br /&gt;
%Representación del rotacional&lt;br /&gt;
surf(X,Y,ROT) &lt;br /&gt;
view(2)&lt;br /&gt;
colorbar&lt;br /&gt;
title('Rotacional')&lt;br /&gt;
}}&lt;br /&gt;
==Tensiones ==&lt;br /&gt;
Definamos &amp;lt;math&amp;gt;e(u ̅ )=(∇u ⃗+〖∇u ⃗〗^t)/2&amp;lt;/math&amp;gt; , la parte simétrica del tensor gradiente de &amp;lt;math&amp;gt; u ̅&amp;lt;/math&amp;gt; conocido como tensor de deformaciones. En un medio elástico ideal, isótropo y homogéneo, los desplazamientos permiten escribir el tensor de tensiones a través de la fórmula &amp;lt;math&amp;gt;  σ=λ∇∙u ̅1+2µe&amp;lt;/math&amp;gt;, donde λ y µ son los conocidos como coeficientes de Lamé que dependen de las propiedades elásticas de cada material. A pesar de que los desplazamientos son planos, (es decir, &amp;lt;math&amp;gt;u ̅ &amp;lt;/math&amp;gt;no tiene componente en la dirección &amp;lt;math&amp;gt;k ̅&amp;lt;/math&amp;gt;) las tensiones no tienen por qué ser planas y puede haber tensiones en la dirección ortogonal al plano de la placa. Tomando λ = µ = 1, dibujar las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt;( g_ρ ) ⃗ &amp;lt;/math&amp;gt;, es decir &amp;lt;math&amp;gt; (g_ρ ) ⃗∙σ∙(g_ρ ) ⃗&amp;lt;/math&amp;gt;, las tensiones normales en la dirección que marca el eje &amp;lt;math&amp;gt; (g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; (g_θ ) ⃗/ρ∙σ∙(g_θ ) ⃗/ρ&amp;lt;/math&amp;gt;, y las correspondientes al eje&amp;lt;math&amp;gt; k ⃗&amp;lt;/math&amp;gt;, es decir,&amp;lt;math&amp;gt; k ⃗∙σ∙k ⃗&amp;lt;/math&amp;gt;.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables   &lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%Gradiente de un campo vectorial&lt;br /&gt;
U=[(RHO.*cos(THETA)-1).^2.*RHO.*sin(THETA).^2 , -(RHO.*cos(THETA)-1).^2.*sin(THETA).*cos(THETA)];&lt;br /&gt;
[dx,dy]=gradient(U);&lt;br /&gt;
&lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
subplot(2,3,1);&lt;br /&gt;
&lt;br /&gt;
 %Tomamos el valor (1,1) de la matriz sigma y lo dibujamos&lt;br /&gt;
 r=dx(1,1);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,r)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 view(2)&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a g?&lt;br /&gt;
 subplot(2,3,2);   &lt;br /&gt;
     &lt;br /&gt;
 %Tomamos el valor (2,2) de la matriz sigma y lo dibujamos   &lt;br /&gt;
 t=dy(2,2);&lt;br /&gt;
 &lt;br /&gt;
 surf(X,Y,t)&lt;br /&gt;
 &lt;br /&gt;
 axis equal&lt;br /&gt;
 title('Tensiones respecto a g?')&lt;br /&gt;
 view(2)&lt;br /&gt;
 &lt;br /&gt;
 colorbar&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo de las tensiones respecto a gz&lt;br /&gt;
% subplot(2,3,3)&lt;br /&gt;
 &lt;br /&gt;
 %Tomamos el valor (3,3) de la matriz sigma y lo dibujamos &lt;br /&gt;
 %z=           &lt;br /&gt;
     &lt;br /&gt;
 %surf(X,Y,z)&lt;br /&gt;
 &lt;br /&gt;
 %axis equal&lt;br /&gt;
% view(2)&lt;br /&gt;
% title('Tensiones respecto a gz')&lt;br /&gt;
 %colorbar&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Tensión de Von Mises==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Masa de la placa==&lt;br /&gt;
Finalmente, calcularemos la masa de la placa objeto de estudio. Esto se realizará mediante la integracion de la densida de la placa &amp;lt;math&amp;gt;d(x,y)=3+log⁡(1+|x|/(y+1)^4 )&amp;lt;/math&amp;gt;&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Inicializamos las variables    &lt;br /&gt;
h=0.1;&lt;br /&gt;
H=round(pi/h);&lt;br /&gt;
&lt;br /&gt;
rho=[1:h:3];          &lt;br /&gt;
theta=linspace(0,pi,H);&lt;br /&gt;
&lt;br /&gt;
%Creamos la parametrización&lt;br /&gt;
[RHO,THETA]=meshgrid(rho,theta);&lt;br /&gt;
&lt;br /&gt;
X=RHO.*cos(THETA);        &lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
d=3+log(1+abs(X)./(Y+1).^4);&lt;br /&gt;
&lt;br /&gt;
% Representamos graficamente la densidad en cada punto de la malla&lt;br /&gt;
surf(X,Y,d);&lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
axis square&lt;br /&gt;
%Cálculo de la masa total&lt;br /&gt;
MasaTotal=sum(sum(Densidad))&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>P.salvadores</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40637</id>
		<title>Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Visualizaci%C3%B3n_de_campos_escalares_y_vectoriales_en_elasticidad_(Grupo_C4)&amp;diff=40637"/>
				<updated>2017-12-14T21:58:55Z</updated>
		
		<summary type="html">&lt;p&gt;P.salvadores: Página creada con «{{  Beta  }} {{Trabajo|Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)|Teoria de campos|:Categoría:Trabajos 2...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{  Beta  }}&lt;br /&gt;
{{Trabajo|Visualización de campos escalares y vectoriales en elasticidad (Grupo C4)|[[:Categoría:Teoria de campos|Teoria de campos]]|[[:Categoría:Trabajos 2017-2018|2017-2018]]|Pablo Salvadores,Raquel Simal}}&lt;br /&gt;
== Introducción== &lt;br /&gt;
Para la visualización de campos escalares y vectoriales, consideraremos una placa definida por el anillo circular centrado en el origen y comprendidos entre los radios 1/2 y 2, en el plano y≥0. Con esta definición, tendremos una placa formada por un semianillo circular. Consideraremos ademas como ejes los pertenecientes al rectángulo [-3,3]x[-1,3]. &lt;br /&gt;
Para simplificar la tarea de definir la placa, usaremos coordenadas cilindricas.&lt;br /&gt;
&lt;br /&gt;
En la placa vamos a suponer que tenemos definidas dos cantidades físicas: la temperatura &amp;lt;math&amp;gt;T(x,y)&amp;lt;/math&amp;gt; que depende de las dos variables espaciales (x,y), y los desplazamientos &amp;lt;math&amp;gt;u(x,y)&amp;lt;/math&amp;gt; producidos por la acción de una fuerza determinada. De esta forma, si definimos r0(x,y) como el vector posición de los puntos de la placa antes de la deformación, la posición de cada punto (x,y) de la placa después de la deformación viene dada por : &lt;br /&gt;
&amp;lt;math&amp;gt;r ̅(x,y)=(r_0 ) ̅(x,y)+u ̅(x,y)&amp;lt;/math&amp;gt;.&lt;br /&gt;
Vamos a suponer que la fuerza aplicada sobre la placa ha provocado un desplazamiento de los puntos de la misma dado por el vector de desplazamientos&lt;br /&gt;
&amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;&lt;br /&gt;
== Mallado ==&lt;br /&gt;
Comenzaremos planteando en Matlab el mallado de la placa con el fin de poder visualizarla en el espacio con mayor facilidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Paso de muestreo &lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de la parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
&lt;br /&gt;
%Dibujo del mallado&lt;br /&gt;
mesh(X,Y,0*X) &lt;br /&gt;
title('Mallado')&lt;br /&gt;
%ajustar los ejes&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Fig. 1|miniaturadeimagen|Placa]]&lt;br /&gt;
&lt;br /&gt;
== Temperatura==&lt;br /&gt;
A continuación, escribiremos en matlab el codigo necesario para obtener la funcion temperatura de la placa T(x,y). Para ayudarnos a la visualización, colorearemos la placa con las distintas temperaturas en cada punto de la misma junto con  las curvas de nivel, que unen los putnos con  misma temperatura en la placa. Ademas, obtendremos la temperatura maxima en la placa. La funcion temperatura que definira el campo será: &amp;lt;math&amp;gt;T(x,y)=log⁡((y+x)^2+2)&amp;lt;/math&amp;gt; &lt;br /&gt;
Nota: esta parte del codigo no es un programa en si. Para que funcione debidamente, debemos agregar la parte escrita en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Campo de temperatura&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 &lt;br /&gt;
 %Representación en 2D&lt;br /&gt;
subplot(1,2,1)&lt;br /&gt;
contour(X,Y,T)&lt;br /&gt;
view(2) &lt;br /&gt;
axis([-3,3,-1,3]);&lt;br /&gt;
title('Curvas de nivel de la Temperatura')&lt;br /&gt;
%Representacion Temperatura &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,T);&lt;br /&gt;
title('Temperatura')&lt;br /&gt;
&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
contour(X,Y,T,50);&lt;br /&gt;
colorbar&lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
title('Curvas de nivel')&lt;br /&gt;
%Temperatura máxima&lt;br /&gt;
Tmax=max(max(T));&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Gradiente de temperatura==&lt;br /&gt;
El gradiente de la temperatura nos definirá en que direccion se produce la maxima variacion de temperatura en la placa. Para poder mantener el orden dentro de la programacion, abriremos otro programa que repetirá exactamente los mismos comandos que en el apartado 1 de manera que se nos genere un mallado. En este caso le añadiremos el gradiente de la temperatura a toda la placa en forma de campo vectorial con flechas que nos indicará la direccion que sigue el gradiente. Estas flechas serán perpendiculares a las lineas de nivel que habiamos dibujado previamente en el apartado anterior.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%inicializamos las variables&lt;br /&gt;
 h=0.1;&lt;br /&gt;
 &lt;br /&gt;
 rho=[1:h:2];&lt;br /&gt;
 H=round(pi/h);         &lt;br /&gt;
 theta=linspace(0,pi,H);&lt;br /&gt;
 &lt;br /&gt;
 %Creamos el mallado y la parametrización&lt;br /&gt;
 [RHO,THETA]=meshgrid(rho,theta); &lt;br /&gt;
 &lt;br /&gt;
 X=RHO.*cos(THETA);        &lt;br /&gt;
 Y=RHO.*sin(THETA);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujamos el mallado&lt;br /&gt;
 mesh(X,Y,0*X) ; &lt;br /&gt;
 axis([-3,3,-1,3]); &lt;br /&gt;
 &lt;br /&gt;
 view(2);&lt;br /&gt;
 &lt;br /&gt;
 %GRADIENTE&lt;br /&gt;
 dx=((2*(Y+X))./(((Y+X).^2)+2));&lt;br /&gt;
 dy=dx;&lt;br /&gt;
 %CAMPO ESCALAR DE TEMPERATURAS&lt;br /&gt;
 T=log(((Y+X).^2)+2);&lt;br /&gt;
 %Creación de la subventana primera: gradiente en el campo de temperaturas&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,1);&lt;br /&gt;
 hold on;&lt;br /&gt;
 surf(X,Y,T);&lt;br /&gt;
 &lt;br /&gt;
 %Dibujo del gradiente&lt;br /&gt;
 quiver3(X,Y,T,dx,dy,0*T);&lt;br /&gt;
 &lt;br /&gt;
 hold off;&lt;br /&gt;
 &lt;br /&gt;
 %Creación de la segunda subventana: campo vectorial del gradiente&lt;br /&gt;
 &lt;br /&gt;
 subplot(1,2,2);&lt;br /&gt;
 quiver(X,Y,dx,dy); &lt;br /&gt;
 colorbar;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Campo de desplazamientos==&lt;br /&gt;
Tomando el campo de desplazamientos &amp;lt;math&amp;gt;u ̅(ρ,ϑ)=〖(ρcosϑ-1)〗^2 ρ〖sin〗^2 ϑg ̅_ρ-〖(ρcosϑ-1)〗^2 sinϑcosϑg ̅_ϑ&amp;lt;/math&amp;gt;, lo representaremos igual que el gradiente (flechas) con maor tamaño cuanta mayor es la intensidad del campo en una región.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestreo&lt;br /&gt;
h=0.1;&lt;br /&gt;
%Valores de parametrización &lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Conjunto de puntos que forman la malla&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Dibujamos el mallado&lt;br /&gt;
mesh(X,Y,0*X)  &lt;br /&gt;
axis([-3,3,-1,3]); &lt;br /&gt;
view(2);&lt;br /&gt;
&lt;br /&gt;
%CAMPO VECTORIAL DE DESPLAZAMIENTOS&lt;br /&gt;
 %Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Representamos el campo vectorial de desplazamientos&lt;br /&gt;
quiver(X,Y,FX,FY) &lt;br /&gt;
axis([-3,3,-1,3])&lt;br /&gt;
view(2)&lt;br /&gt;
xlabel('Eje x')&lt;br /&gt;
ylabel('Eje y')&lt;br /&gt;
title('Campo de desplazamientos sobre la placa')&lt;br /&gt;
}}&lt;br /&gt;
===Campo de desplazamientos sobre la placa===&lt;br /&gt;
Aplicaremos el campo de desplazamientos sobre la placa para poder apreciar la deformacion que sufre esta por una fuerza externa (generadora del campo de desplazamientos).&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Paso de muestro&lt;br /&gt;
h=0.1;&lt;br /&gt;
% Valores de parametrización&lt;br /&gt;
u=0.5:h:2; H=round(pi/h); v=linspace(0,pi,H);&lt;br /&gt;
%Creación del mallado&lt;br /&gt;
[RHO,THETA]=meshgrid(u,v); &lt;br /&gt;
%Parametrización &lt;br /&gt;
X=RHO.*cos(THETA);&lt;br /&gt;
Y=RHO.*sin(THETA);&lt;br /&gt;
%Componente x(X,Y) del campo vectorial&lt;br /&gt;
FX=zeros(31,16); &lt;br /&gt;
&lt;br /&gt;
 %Componente y(X,Y) del campo vectorial&lt;br /&gt;
FY=RHO.*(((cos(THETA)-1)).^2).*(RHO.*((sin(THETA)).^3))+(RHO.*sin(THETA).*cos(THETA));&lt;br /&gt;
&lt;br /&gt;
%Matriz con las coordenadas en x, después del desplazamiento&lt;br /&gt;
Rx=FX+X;&lt;br /&gt;
%Matriz con las coordenadas en y, después del desplazamiento&lt;br /&gt;
Ry=FY+Y;&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido antes del desplazamiento &lt;br /&gt;
subplot(1,2,1);&lt;br /&gt;
mesh(X,Y,0*X);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo sin deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
&lt;br /&gt;
%Representación del sólido tras del desplazamiento&lt;br /&gt;
subplot(1,2,2);&lt;br /&gt;
mesh(Rx,Ry,0*Rx);&lt;br /&gt;
axis([-3,3,-1,8]);&lt;br /&gt;
title('Anillo con deformación');&lt;br /&gt;
xlabel('Eje x');&lt;br /&gt;
ylabel('Eje y');&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>P.salvadores</name></author>	</entry>

	</feed>