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

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Campodedesplazamientos1.png&amp;diff=98953</id>
		<title>Archivo:Campodedesplazamientos1.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Campodedesplazamientos1.png&amp;diff=98953"/>
				<updated>2025-12-04T14:51:47Z</updated>
		
		<summary type="html">&lt;p&gt;Alejandro.Morales: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Alejandro.Morales</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Placa_Plana_(Grupo_09)&amp;diff=98951</id>
		<title>Placa Plana (Grupo 09)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Placa_Plana_(Grupo_09)&amp;diff=98951"/>
				<updated>2025-12-04T14:51:29Z</updated>
		
		<summary type="html">&lt;p&gt;Alejandro.Morales: /* Campo de Desplazamientos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Placa plana. Grupo 09 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC25/26|2025-26]] | Rafael Gonzalez Gomez &amp;lt;br/&amp;gt; Mario Belinchón Buendía &amp;lt;br/&amp;gt;Alejandro Morales Tari&amp;lt;br/&amp;gt;  Pablo Márquez Blanco}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Teoría de Campos]]&lt;br /&gt;
[[Categoría:TC25/26]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
&lt;br /&gt;
Consideramos la sección longitudinal de una viga en voladizo de geometría rectangular (en dimensión 2). Esta viga ocupa la región mostrada en la Figura 1, y permanece anclada en la pared vertical situada en el lado izquierdo. La zona que vamos a estudiar se describe mediante:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
(x,y) \in [0,4] \times [f(x),, g(x)],&lt;br /&gt;
\qquad&lt;br /&gt;
f(x)=\frac{x}{8},&lt;br /&gt;
\qquad&lt;br /&gt;
g(x)= 2-\frac{x}{8}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En esta placa se consideran dos magnitudes físicas relevantes.&lt;br /&gt;
La primera es el campo de temperaturas, modelado por la función:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
T(x,y)=\big(1+(y-1)^2\big),(4-x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
La segunda magnitud corresponde al campo de desplazamientos &amp;lt;math&amp;gt;\vec u(x,y)&amp;lt;/math&amp;gt;, producido por una fuerza externa —cuyo valor exacto no conocemos— y que deforma la placa.&lt;br /&gt;
&lt;br /&gt;
Para describir la deformación, sea&lt;br /&gt;
&amp;lt;math&amp;gt;\vec r_0(x,y)=x,\vec i + y,\vec j&amp;lt;/math&amp;gt;&lt;br /&gt;
el vector de posición inicial de cada punto. Entonces, tras aplicarse la fuerza, la nueva posición de un punto queda dada por:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\vec r_d(x,y)=\vec r_0(x,y)+\vec u(x,y)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Supondremos que la fuerza aplicada induce un desplazamiento expresado, en coordenadas polares &amp;lt;math&amp;gt;(\rho,\theta)&amp;lt;/math&amp;gt;, mediante:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\vec u(\rho,\theta)= -\frac{1}{20},\rho^2\cos\theta ; \vec e_\theta&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Este modelo permite estudiar tanto la distribución térmica en la viga como la deformación resultante, proporcionando una base adecuada para analizar su comportamiento estructural.&lt;br /&gt;
&lt;br /&gt;
==Mallado==&lt;br /&gt;
Para comenzar, construiremos un mallado de la sección longitudinal que nos permita representar los puntos interiores del sólido. Para ello, hemos empleado un paso de muestreo de&lt;br /&gt;
&amp;lt;math&amp;gt;h = \tfrac{1}{10}&amp;lt;/math&amp;gt;&lt;br /&gt;
y hemos definido la malla sobre el rectángulo que delimita los ejes coordenados:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt; (x, y) \in [-1,, 5] \times [-1,, 3] &amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Este mallado servirá como base para discretizar la región de interés y facilitar los cálculos posteriores.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:mimallado.png|thumb|700px|]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
h = 1/10;&lt;br /&gt;
color_malla = [0, 1, 0]; % Color &lt;br /&gt;
&lt;br /&gt;
% Coordenadas&lt;br /&gt;
u = 0 : h : 4;&lt;br /&gt;
v = 0 : h : 2;&lt;br /&gt;
[U, V] = meshgrid(u, v);&lt;br /&gt;
&lt;br /&gt;
% Calculamos los bordes &lt;br /&gt;
y_abajo = U ./ 8;&lt;br /&gt;
y_arriba = 2 - (U ./ 8);&lt;br /&gt;
&lt;br /&gt;
% Interpolamos&lt;br /&gt;
factor_altura = V ./ 2; % Va de 0 (abajo) a 1 (arriba)&lt;br /&gt;
&lt;br /&gt;
X = U;&lt;br /&gt;
Y = y_abajo + factor_altura .* (y_arriba - y_abajo);&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Color', 'w'); hold on;&lt;br /&gt;
&lt;br /&gt;
% Dibujar las líneas VERTICALES&lt;br /&gt;
plot(X, Y, 'Color', color_malla, 'LineWidth', 0.25);&lt;br /&gt;
&lt;br /&gt;
% Dibujar las líneas HORIZONTALES&lt;br /&gt;
plot(X', Y', 'Color', color_malla, 'LineWidth', 0.25);&lt;br /&gt;
&lt;br /&gt;
% Dibujar el contorno &lt;br /&gt;
plot(u, u./8, 'k-', 'LineWidth', 2); % Borde Abajo&lt;br /&gt;
plot(u, 2 - u./8, 'k-', 'LineWidth', 2); % Borde Arriba&lt;br /&gt;
plot([0 0], [0 2], 'k-', 'LineWidth', 2); % Borde Izquierdo&lt;br /&gt;
plot([4 4], [0.5 1.5], 'k-', 'LineWidth', 2); % Borde Derecho&lt;br /&gt;
&lt;br /&gt;
% Configuración final&lt;br /&gt;
axis([-1 5 -1 3]); % Zoom/Encuadre exacto&lt;br /&gt;
xlabel('x'); ylabel('y');&lt;br /&gt;
title('Mallado de la placa plana');&lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Curvas de nivel==&lt;br /&gt;
A continuación se representan las curvas de nivel de la temperatura con el fin de identificar visualmente la zona donde esta alcanza su valor máximo. A partir de la gráfica puede apreciarse que los puntos donde la temperatura es mayor son:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;(x,y) = (0,0) \quad \text{y} \quad (0,2)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Además, calculamos el gradiente de la temperatura para analizar la dirección de mayor variación de esta magnitud. El gradiente viene dado por:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\nabla T(x,y)&lt;br /&gt;
= \left( \frac{\partial T}{\partial x},, \frac{\partial T}{\partial y} \right)&lt;br /&gt;
= \Big( -\big(1+(y-1)^2\big),; (4-x)\cdot 2(y-1) \Big).&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En la representación gráfica se observa que el vector gradiente es ortogonal a las curvas de nivel, tal como establece la teoría: apunta siempre en la dirección de crecimiento más rápido de la temperatura.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Curvasdenivelgrupo009.png|miniaturadeimagen|derecha|800px|Figura 2]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% Parámetros del mallado&lt;br /&gt;
h = 0.1;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);  &lt;br /&gt;
&lt;br /&gt;
% Funciones de los bordes de la placa&lt;br /&gt;
f = @(x) x/8;&lt;br /&gt;
g = @(x) 2 - x/8;&lt;br /&gt;
&lt;br /&gt;
% Zona válida de la placa&lt;br /&gt;
zona = (Y &amp;gt;= f(X)) &amp;amp; (Y &amp;lt;= g(X));&lt;br /&gt;
&lt;br /&gt;
% Temperatura T(x,y)&lt;br /&gt;
T = (1 + (Y - 1).^2) .* (4 - X);&lt;br /&gt;
&lt;br /&gt;
% Enmascarado visual&lt;br /&gt;
T_mask = T;&lt;br /&gt;
T_mask(~zona) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo del gradiente de T&lt;br /&gt;
Ux = -(1 + (Y - 1).^2);          &lt;br /&gt;
Vy =  2 .* (Y - 1) .* (4 - X);    &lt;br /&gt;
&lt;br /&gt;
Ux(~zona) = NaN;&lt;br /&gt;
Vy(~zona) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Gráfica&lt;br /&gt;
figure(1); clf; hold on;&lt;br /&gt;
axis equal;&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&lt;br /&gt;
&lt;br /&gt;
title(&amp;quot;Distribución de la Temperatura y el Gradiente \nabla T&amp;quot;);&lt;br /&gt;
xlabel(&amp;quot;x&amp;quot;);&lt;br /&gt;
ylabel(&amp;quot;y&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
% Mapa de calor de T&lt;br /&gt;
contourf(X, Y, T_mask, 20, 'LineStyle', 'none');   &lt;br /&gt;
colormap(&amp;quot;parula&amp;quot;);  &lt;br /&gt;
colorbar;  &lt;br /&gt;
ylabel(colorbar, 'Temperatura T(x,y)');&lt;br /&gt;
&lt;br /&gt;
% Curvas de nivel&lt;br /&gt;
[C, hC] = contour(X, Y, T_mask, 10, 'r', 'LineWidth', 1.5); &lt;br /&gt;
clabel(C, hC, 'FontSize', 9, 'FontWeight', 'bold', 'Color', 'r');  &lt;br /&gt;
&lt;br /&gt;
% Campo vectorial (gradiente)&lt;br /&gt;
paso = 3;&lt;br /&gt;
quiver(X(1:paso:end, 1:paso:end), Y(1:paso:end, 1:paso:end), Ux(1:paso:end, 1:paso:end), Vy(1:paso:end, 1:paso:end), 1.2, 'c', 'LineWidth', 1);  &lt;br /&gt;
&lt;br /&gt;
% Dibujar contorno de la placa (en color verde oscuro)&lt;br /&gt;
plot(x, f(x), 'g-', 'LineWidth', 2);  &lt;br /&gt;
plot(x, g(x), 'g-', 'LineWidth', 2);   &lt;br /&gt;
plot([0 0], [f(0) g(0)], 'g-', 'LineWidth', 2);   &lt;br /&gt;
plot([4 4], [f(4) g(4)], 'g-', 'LineWidth', 2);  &lt;br /&gt;
&lt;br /&gt;
% Señalar los puntos de máximos (marcadores en forma de círculo)&lt;br /&gt;
plot(0, 0, 'ko', 'MarkerFaceColor', 'y', 'MarkerSize', 12);  &lt;br /&gt;
plot(0, 2, 'ko', 'MarkerFaceColor', 'y', 'MarkerSize', 12);  &lt;br /&gt;
&lt;br /&gt;
% Etiquetas de los puntos de máximos&lt;br /&gt;
text(0.1, 0, 'Máx T', 'Color', 'black', 'FontWeight', 'bold');&lt;br /&gt;
text(0.1, 2, 'Máx T', 'Color', 'black', 'FontWeight', 'bold');&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
&lt;br /&gt;
saveas(gcf,'curvasdenivelgrupo009.png');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ley de Fourier==&lt;br /&gt;
Según la ley de Fourier, el flujo de energía calorífica &amp;lt;math&amp;gt;\vec{Q}&amp;lt;/math&amp;gt; viene dado por:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{Q} = -\kappa , \nabla T&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt;\kappa&amp;lt;/math&amp;gt; representa la conductividad térmica del material. En nuestro caso, consideramos&lt;br /&gt;
&amp;lt;math&amp;gt;\kappa = 1&amp;lt;/math&amp;gt;, de modo que la expresión se simplifica a:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{Q} = - \nabla T&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Bajo esta suposición, en la representación gráfica puede apreciarse que el flujo calorífico es simplemente el opuesto del gradiente de la temperatura, señalando siempre la dirección de máxima disminución térmica.&lt;br /&gt;
[[Archivo:vectorflujocalor.png|thumb|700px|]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Mallado y dominio geométrico&lt;br /&gt;
paso = 0.2;&lt;br /&gt;
xx = 0:paso:4;&lt;br /&gt;
yy = 0:paso:2;&lt;br /&gt;
[X, Y] = meshgrid(xx, yy);&lt;br /&gt;
&lt;br /&gt;
% Bordes superior e inferior de la región física&lt;br /&gt;
lim_inf = X / 8;&lt;br /&gt;
lim_sup = 2 - X / 8;&lt;br /&gt;
&lt;br /&gt;
% Máscara lógica: puntos válidos&lt;br /&gt;
zona = (Y &amp;gt;= lim_inf) &amp;amp; (Y &amp;lt;= lim_sup);&lt;br /&gt;
&lt;br /&gt;
% Campo escalar de temperatura&lt;br /&gt;
Temp = (1 + (Y - 1).^2) .* (4 - X);   % misma función, escrita directamente&lt;br /&gt;
Temp(~zona) = NaN;                   % filtrado de la zona útil&lt;br /&gt;
&lt;br /&gt;
% Gradiente numérico y flujo térmico&lt;br /&gt;
% gradient devuelve: [dT/dy , dT/dx]&lt;br /&gt;
[dTy, dTx] = gradient(Temp, paso);&lt;br /&gt;
&lt;br /&gt;
flujo_x = -dTx;    % Ley de Fourier en 2D&lt;br /&gt;
flujo_y = -dTy;&lt;br /&gt;
&lt;br /&gt;
flujo_x(~zona) = NaN;&lt;br /&gt;
flujo_y(~zona) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Representación gráfica&lt;br /&gt;
fig = figure('Color','white','Name','Mapa de flujo térmico');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
% Campo escalar coloreado&lt;br /&gt;
contourf(X, Y, Temp, 20, 'LineStyle','none');&lt;br /&gt;
colormap jet;&lt;br /&gt;
&lt;br /&gt;
% Indicador de escala&lt;br /&gt;
barra = colorbar;&lt;br /&gt;
barra.Label.String = 'T(x,y)';&lt;br /&gt;
barra.Label.FontSize = 10;&lt;br /&gt;
&lt;br /&gt;
% Representación vectorial del flujo&lt;br /&gt;
quiver(X, Y, flujo_x, flujo_y, 'k', ...&lt;br /&gt;
       'LineWidth', 1.2, 'AutoScaleFactor', 1.5);&lt;br /&gt;
&lt;br /&gt;
% Dibujar la frontera física del sólido&lt;br /&gt;
tramo = [0 4];&lt;br /&gt;
plot(tramo, [0 0.5], 'k', 'LineWidth', 2);&lt;br /&gt;
plot(tramo, [2 1.5], 'k', 'LineWidth', 2);&lt;br /&gt;
plot([0 0], [0 2],   'k', 'LineWidth', 2);&lt;br /&gt;
plot([4 4], [0.5 1.5],'k', 'LineWidth', 2);&lt;br /&gt;
&lt;br /&gt;
% Ajustes finales del gráfico&lt;br /&gt;
axis equal;&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&lt;br /&gt;
&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
title({'Campo de Flujo Térmico'});&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Gradiente Térmico==&lt;br /&gt;
El punto de máxima variación térmica corresponde al lugar donde el gradiente de la temperatura alcanza su valor máximo. En la práctica, esto se obtiene igualando la derivada del gradiente a cero.&lt;br /&gt;
&lt;br /&gt;
Mientras que la variación térmica sigue la dirección del gradiente, el flujo de calor más intenso se orienta en sentido contrario, es decir, hacia donde disminuye la temperatura.&lt;br /&gt;
&lt;br /&gt;
Paso 1: Definición de la función para maximizar&lt;br /&gt;
&lt;br /&gt;
Llamamos a la función:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;G(x,y) = |\nabla T|^2&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Desarrollando los términos:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;G(x,y) = \big(1+(y-1)^2\big)^2 + \big(2(y-1)(4-x)\big)^2&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;G(x,y) = (y^2 - 2y + 2)^2 + 4(y-1)^2(4-x)^2&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Paso 2: Cálculo de los puntos críticos&lt;br /&gt;
&lt;br /&gt;
Para maximizar la función, derivamos y resolvemos el sistema:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial G}{\partial x} = -8 (y-1)^2 (4-x) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial G}{\partial y} = 4 (y-1) \big(1 + (y-1)^2 + 2 (4-x)^2 \big) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Al resolver este sistema, encontramos que los mínimos se sitúan sobre la recta:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;y = 1&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Como no hay máximos aislados dentro del dominio, los máximos deben encontrarse en la frontera:&lt;br /&gt;
&lt;br /&gt;
Borde izquierdo: &amp;lt;math&amp;gt;x=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Borde derecho: &amp;lt;math&amp;gt;x=4&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curva inferior: &amp;lt;math&amp;gt;y = x/8&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curva superior: &amp;lt;math&amp;gt;y = 2 - x/8&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras analizar los límites del recinto, los máximos de la función del gradiente térmico se localizan en el borde izquierdo, &amp;lt;math&amp;gt;x=0&amp;lt;/math&amp;gt;. Las coordenadas de los máximos son:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
P(1): x=0.00, y=0.00, Dirección del vector: [-2.00, -8.00]&lt;br /&gt;
P(2): x=0.00, y=2.00, Dirección del vector: [-2.00, 8.00]&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Paso 3: Cálculo de la máxima variación térmica&lt;br /&gt;
&lt;br /&gt;
El valor de la norma del gradiente es igual para P(1) y P(2). Calculamos, por ejemplo, para P(1) = (0,0):&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\nabla T(0,0) = \big(-(1 + (0-1)^2), 2(0-1)(4-0)\big) = (-2,-8)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;|\nabla T(0,0)| = \sqrt{(-2)^2 + (-8)^2} = \sqrt{4 + 64} = 2\sqrt{17} \approx 8.246&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Por lo tanto, la máxima variación térmica en la placa se produce en los puntos P(1) y P(2) y tiene un valor aproximado de 8.246.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:gradientetermico.png|miniaturadeimagen|derecha|800px|Figura 4:Máxima Variación de T]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc;&lt;br /&gt;
clear;&lt;br /&gt;
close all;&lt;br /&gt;
&lt;br /&gt;
% Mallado de la región&lt;br /&gt;
h = 0.05;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Curvas que delimitan la placa&lt;br /&gt;
y_inf = X./8;&lt;br /&gt;
y_sup = 2 - X./8;&lt;br /&gt;
&lt;br /&gt;
% Puntos que pertenecen a la placa&lt;br /&gt;
enPlaca = (Y &amp;gt;= y_inf) &amp;amp; (Y &amp;lt;= y_sup);&lt;br /&gt;
&lt;br /&gt;
% Gradiente de T(x,y)&lt;br /&gt;
% T(x,y) = (1 + (y - 1)^2) * (4 - x)&lt;br /&gt;
Tx = -(1 + (Y - 1).^2);          % dT/dx&lt;br /&gt;
Ty =  2 .* (Y - 1) .* (4 - X);   % dT/dy&lt;br /&gt;
&lt;br /&gt;
% Módulo del gradiente&lt;br /&gt;
NormaGrad = sqrt(Tx.^2 + Ty.^2);&lt;br /&gt;
&lt;br /&gt;
% Fuera de la placa lo ponemos a NaN para que no se pinte&lt;br /&gt;
NormaGrad(~enPlaca) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Búsqueda de los puntos de máximo&lt;br /&gt;
max_val = max(NormaGrad(:));             % valor máximo del módulo&lt;br /&gt;
[filas, columnas] = find(NormaGrad == max_val);&lt;br /&gt;
&lt;br /&gt;
% Coordenadas de los puntos donde se alcanza el máximo&lt;br /&gt;
x_max = X(filas, columnas);&lt;br /&gt;
y_max = Y(filas, columnas);&lt;br /&gt;
&lt;br /&gt;
% Componentes del vector gradiente en esos puntos&lt;br /&gt;
u_dir = Tx(filas, columnas);&lt;br /&gt;
v_dir = Ty(filas, columnas);&lt;br /&gt;
&lt;br /&gt;
% Representación gráfica&lt;br /&gt;
figure('Name', 'Máxima variación de T');&lt;br /&gt;
hold on;&lt;br /&gt;
axis equal;&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&lt;br /&gt;
&lt;br /&gt;
title('Puntos de máxima variación de T');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
&lt;br /&gt;
% Mapa de colores con el módulo del gradiente&lt;br /&gt;
contourf(X, Y, NormaGrad, 20, 'LineStyle', 'none');&lt;br /&gt;
colormap(jet);&lt;br /&gt;
colorbar;&lt;br /&gt;
&lt;br /&gt;
% Contorno aproximado de la placa&lt;br /&gt;
xp = [0 4 4 0 0];&lt;br /&gt;
yp = [0 0.5 1.5 2 0];&lt;br /&gt;
plot(xp, yp, 'k', 'LineWidth', 1.5);&lt;br /&gt;
&lt;br /&gt;
% Puntos de máximo&lt;br /&gt;
plot(x_max, y_max, 'ro', 'MarkerSize', 7, 'MarkerFaceColor', 'r');&lt;br /&gt;
&lt;br /&gt;
% Vectores dirección del gradiente en los máximos&lt;br /&gt;
quiver(x_max, y_max, u_dir, v_dir, 0.5, 'k', 'LineWidth', 2, 'MaxHeadSize', 0.5);&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
&lt;br /&gt;
% Información por pantalla&lt;br /&gt;
fprintf('La variación máxima del módulo del gradiente es: %.2f\n', max_val);&lt;br /&gt;
fprintf('Se alcanza en los siguientes puntos:\n');&lt;br /&gt;
&lt;br /&gt;
for k = 1:length(x_max)&lt;br /&gt;
    fprintf('Punto %d: x = %.2f, y = %.2f, vector gradiente = [%.2f, %.2f]\n', ...&lt;br /&gt;
        k, x_max(k), y_max(k), u_dir(k), v_dir(k));&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Campo de Desplazamientos==&lt;br /&gt;
El campo de desplazamientos de un sólido se representa mediante un campo vectorial, que indica la dirección y sentido del desplazamiento de cada punto mediante vectores (representados como flechas rojas).&lt;br /&gt;
&lt;br /&gt;
Como se puede observar, los puntos que se encuentran más próximos al punto de aplicación de la fuerza experimentan los desplazamientos más grandes, mientras que los situados más alejados apenas se mueven.&lt;br /&gt;
[[Archivo:campodedesplazamientos1.png|thumb|600px]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
&lt;br /&gt;
clc;&lt;br /&gt;
clear;&lt;br /&gt;
close all;&lt;br /&gt;
&lt;br /&gt;
% Mallado&lt;br /&gt;
h = 0.1;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Región válida&lt;br /&gt;
Cond = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
&lt;br /&gt;
% Aplicamos máscara&lt;br /&gt;
X(~Cond) = NaN;&lt;br /&gt;
Y(~Cond) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Campo de desplazamientos&lt;br /&gt;
R = sqrt(X.^2 + Y.^2);&lt;br /&gt;
Theta = atan2(Y, X);&lt;br /&gt;
&lt;br /&gt;
U_t = -(1/20) * (R.^2) .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
Ux = -U_t .* sin(Theta);&lt;br /&gt;
Uy =  U_t .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
% FIGURA&lt;br /&gt;
figure('Name','Campo de Desplazamientos');&lt;br /&gt;
hold on;&lt;br /&gt;
axis equal;&lt;br /&gt;
grid on;&lt;br /&gt;
&lt;br /&gt;
title('Campo de Desplazamientos');&lt;br /&gt;
xlabel('Eje X');&lt;br /&gt;
ylabel('Eje Y');&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
quiver(X, Y, Ux, Uy, 'b');&lt;br /&gt;
&lt;br /&gt;
xlim([-0.5 4.5]);&lt;br /&gt;
ylim([-0.5 2.5]);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Desplazamiento del Sólido==&lt;br /&gt;
Debido a la fuerza de magnitud desconocida, el sólido experimenta un desplazamiento descrito por el campo vectorial:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{u}(\rho, \theta) = -\frac{1}{20},\rho^2 \cos \theta ; \vec{e}_\theta&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
El sólido se deforma siguiendo este campo de desplazamientos. Como era de esperar, los puntos más próximos al punto de aplicación de la fuerza son los que sufren los mayores desplazamientos, mientras que los situados más lejos apenas se mueven.&lt;br /&gt;
&lt;br /&gt;
Se adjuntan las gráficas que muestran el desplazamiento sufrido. (Nota: el desplazamiento inferior no se aprecia en la visualización actual; sería necesario ajustar los ejes en el código para visualizarlo correctamente).&lt;br /&gt;
[[Archivo:Apartado6deformacion.png|thumb|1000px]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Definición de Geometría y Desplazamientos&lt;br /&gt;
h = 0.1; % Paso del mallado&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la Región &lt;br /&gt;
&lt;br /&gt;
% Aplicamos máscara &lt;br /&gt;
X(~Condicion) = NaN;&lt;br /&gt;
Y(~Condicion) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo de Desplazamientos&lt;br /&gt;
&lt;br /&gt;
Rho = sqrt(X.^2 + Y.^2);&lt;br /&gt;
Theta = atan2(Y, X);&lt;br /&gt;
&lt;br /&gt;
% Valor escalar de u_theta&lt;br /&gt;
U_theta_val = -1/20 .* Rho.^2 .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
% Proyección a cartesianas &lt;br /&gt;
Ux = -U_theta_val .* sin(Theta);&lt;br /&gt;
Uy = U_theta_val .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
% --- Posición Final Deformada ---&lt;br /&gt;
X_final = X + Ux;&lt;br /&gt;
Y_final = Y + Uy;&lt;br /&gt;
&lt;br /&gt;
% Gráfica Comparativa de Sólidos Mallados &lt;br /&gt;
figure('Name', 'Comparación Antes/Después', 'Color', 'w', 'Position', [100, 100, 1000, 500]);&lt;br /&gt;
&lt;br /&gt;
% Placa Original&lt;br /&gt;
subplot(1, 2, 1);&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
mesh(X, Y, zeros(size(X)), 'EdgeColor', [0 0.7 0.9], 'FaceColor', 'none');&lt;br /&gt;
&lt;br /&gt;
view(2); &lt;br /&gt;
axis equal; &lt;br /&gt;
grid on;&lt;br /&gt;
box on; &lt;br /&gt;
&lt;br /&gt;
title('Placa antes del desplazamiento', 'FontWeight', 'bold');&lt;br /&gt;
xlabel('Eje X');&lt;br /&gt;
ylabel('Eje Y');&lt;br /&gt;
axis([-1.5 4.5 0 2.5]);&lt;br /&gt;
&lt;br /&gt;
% Placa Deformada&lt;br /&gt;
subplot(1, 2, 2);&lt;br /&gt;
hold on;&lt;br /&gt;
% Dibujamos la malla usando las coordenadas finales (X_final, Y_final)&lt;br /&gt;
mesh(X_final, Y_final, zeros(size(X)), 'EdgeColor', [0 0.7 0.9], 'FaceColor', 'none');&lt;br /&gt;
&lt;br /&gt;
view(2);&lt;br /&gt;
axis equal;&lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
&lt;br /&gt;
title('Placa después del desplazamiento', 'FontWeight', 'bold');&lt;br /&gt;
xlabel('Eje X');&lt;br /&gt;
ylabel('Eje Y');&lt;br /&gt;
axis([-1.5 4.5 0 2.5]); &lt;br /&gt;
&lt;br /&gt;
sgtitle('Visualización del Sólido Mallado bajo Deformación'); % Título&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Divergencia==&lt;br /&gt;
La divergencia &amp;lt;math&amp;gt;\nabla \cdot \vec{u}&amp;lt;/math&amp;gt; mide la variación de volumen local en el sólido. En nuestro caso, el cálculo da como resultado:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\nabla \cdot \vec{u} = \frac{y}{20}&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Este resultado indica que la placa experimenta una expansión positiva, que aumenta linealmente con la altura, debido al estiramiento de las fibras superiores.&lt;br /&gt;
&lt;br /&gt;
En la representación gráfica se observa la distribución de la divergencia mediante franjas de color:&lt;br /&gt;
&lt;br /&gt;
En azul se encuentra la base, donde el volumen permanece prácticamente constante.&lt;br /&gt;
&lt;br /&gt;
Hacia la parte superior, el color se degrada progresivamente hasta un rojo intenso, indicando el punto de máxima expansión, independiente de la posición horizontal &lt;br /&gt;
𝑥&lt;br /&gt;
x.&lt;br /&gt;
[[Archivo:divergencia09.png|miniaturadeimagen|derecha|800px|Figura 7]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% Definir Malla y Placa&lt;br /&gt;
h = 0.05;&lt;br /&gt;
[X, Y] = meshgrid(0:h:4, 0:h:2); &lt;br /&gt;
f = @(x) x/8;&lt;br /&gt;
g = @(x) 2 - x/8; &lt;br /&gt;
EnPlaca = (Y &amp;gt;= f(X)) &amp;amp; (Y &amp;lt;= g(X)); &lt;br /&gt;
&lt;br /&gt;
% Divergencia&lt;br /&gt;
Div = Y/20;  &lt;br /&gt;
Div(~EnPlaca) = NaN;  &lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure; clf; hold on;&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]); box on;&lt;br /&gt;
title('Divergencia: Cambio de Volumen');&lt;br /&gt;
xlabel('X'); ylabel('Y');&lt;br /&gt;
&lt;br /&gt;
% Mapa de calor de la Divergencia&lt;br /&gt;
contourf(X, Y, Div, 20, 'LineStyle', 'none');  &lt;br /&gt;
colormap(parula);  &lt;br /&gt;
colorbar;  &lt;br /&gt;
ylabel(colorbar, 'Valor de Divergencia');&lt;br /&gt;
&lt;br /&gt;
% Dibujar bordes de la placa&lt;br /&gt;
x_b = linspace(0, 4, 200);&lt;br /&gt;
plot(x_b, x_b/8, 'k-', 'LineWidth', 1);   &lt;br /&gt;
plot(x_b, 2 - x_b/8, 'k-', 'LineWidth', 1);   &lt;br /&gt;
plot([0 0], [0 2], 'k-', 'LineWidth', 1);   &lt;br /&gt;
plot([4 4], [0 2], 'k-', 'LineWidth', 1);   &lt;br /&gt;
&lt;br /&gt;
% Señalar puntos clave (cambié las estrellas por círculos)&lt;br /&gt;
plot(0, 2, 'go', 'MarkerSize', 12, 'MarkerFaceColor', 'g');&lt;br /&gt;
text(0.1, 2.05, 'Max Expansión', 'FontWeight', 'bold', 'Color', 'g');&lt;br /&gt;
&lt;br /&gt;
plot(0, 0, 'ro', 'MarkerSize', 12, 'MarkerFaceColor', 'r');  &lt;br /&gt;
text(0.1, -0.05, 'Divergencia Nula', 'FontWeight', 'bold', 'Color', 'r');&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
saveas(gcf,'divergencia09.png');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rotacional==&lt;br /&gt;
Se calcula el rotacional &amp;lt;math&amp;gt;|\nabla \times \vec{u}|&amp;lt;/math&amp;gt; en todos los puntos del sólido.&lt;br /&gt;
&lt;br /&gt;
Los resultados muestran que los puntos más alejados del origen y alineados con el eje 𝑥&lt;br /&gt;
x experimentan los mayores valores de rotacional, indicando que estas zonas sufren la mayor rotación local debido al campo de desplazamientos aplicado.&lt;br /&gt;
[[Archivo:rotacional09.png|600px|thumb|1000px]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Divergencia&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% Definir Malla y Región&lt;br /&gt;
h = 0.05;               &lt;br /&gt;
x = 0:h:4;              &lt;br /&gt;
y = 0:h:2;              &lt;br /&gt;
[X, Y] = meshgrid(x, y); &lt;br /&gt;
&lt;br /&gt;
% Definición de la placa&lt;br /&gt;
Condition = (Y &amp;gt;= X/8) &amp;amp; (Y &amp;lt;= 2 - X/8);  &lt;br /&gt;
X(~Condition) = NaN;&lt;br /&gt;
Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo del Rotacional&lt;br /&gt;
Rotacional = 0.15 .* X; &lt;br /&gt;
&lt;br /&gt;
% Gráfica en 3D &lt;br /&gt;
figure('Name', 'Rotacional en 3D', 'Color', 'w'); &lt;br /&gt;
&lt;br /&gt;
s = surf(X, Y, Rotacional);&lt;br /&gt;
&lt;br /&gt;
% Estética de la gráfica 3D&lt;br /&gt;
shading interp;  &lt;br /&gt;
colormap(spring); &lt;br /&gt;
alpha(0.9);  &lt;br /&gt;
&lt;br /&gt;
% Ajuste de la vista para la inclinación&lt;br /&gt;
view(45, 30);  &lt;br /&gt;
axis tight;&lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
&lt;br /&gt;
% nombres a los ejes y título&lt;br /&gt;
title('Magnitud del Rotacional a lo largo del eje X');&lt;br /&gt;
xlabel('Eje X (Posición)', 'FontSize', 12, 'FontWeight', 'bold');&lt;br /&gt;
ylabel('Eje Y (Posición)', 'FontSize', 12, 'FontWeight', 'bold');&lt;br /&gt;
zlabel('Magnitud del Rotacional', 'FontSize', 12, 'FontWeight', 'bold');&lt;br /&gt;
&lt;br /&gt;
% barra de colores&lt;br /&gt;
c = colorbar;&lt;br /&gt;
c.Label.String = 'Magnitud';&lt;br /&gt;
c.FontSize = 12;&lt;br /&gt;
&lt;br /&gt;
% Puntos Clave &lt;br /&gt;
hold on;&lt;br /&gt;
plot3(0, 2, 0.6, 'go', 'MarkerSize', 12, 'MarkerFaceColor', 'g');  % Max Expansión&lt;br /&gt;
text(0.1, 2.05, 'Max Expansión', 'FontWeight', 'bold', 'Color', 'g');&lt;br /&gt;
&lt;br /&gt;
plot3(0, 0, 0.1, 'bo', 'MarkerSize', 12, 'MarkerFaceColor', 'b');  % Divergencia Nula&lt;br /&gt;
text(0.1, -0.05, 'Divergencia Nula', 'FontWeight', 'bold', 'Color', 'b');&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Tensores Deformacionales==&lt;br /&gt;
Se define el tensor de deformaciones como la parte simétrica del gradiente del campo de desplazamientos &amp;lt;math&amp;gt;\vec{u}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\varepsilon(\vec{u}) = \frac{1}{2} \big( \nabla \vec{u} + (\nabla \vec{u})^T \big)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En un medio elástico lineal, isótropo y homogéneo, los desplazamientos permiten expresar el tensor de tensiones &amp;lt;math&amp;gt;\sigma&amp;lt;/math&amp;gt; mediante la relación de Hooke generalizada:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\sigma = \lambda , (\nabla \cdot \vec{u}) , I + 2 \mu , \varepsilon(\vec{u})&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
donde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; es el tensor identidad en &amp;lt;math&amp;gt;\mathbb{R}^3&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; son los coeficientes de Lamé, que dependen de las propiedades elásticas del material.&lt;br /&gt;
&lt;br /&gt;
Tomando &amp;lt;math&amp;gt;\lambda = \mu = 1&amp;lt;/math&amp;gt;, se representan las tensiones normales en las direcciones de los ejes coordenados:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{i} \cdot \sigma \cdot \vec{i}&amp;lt;/math&amp;gt; — tensión normal en la dirección del eje &lt;br /&gt;
𝑥&lt;br /&gt;
x,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{j} \cdot \sigma \cdot \vec{j}&amp;lt;/math&amp;gt; — tensión normal en la dirección del eje &lt;br /&gt;
𝑦&lt;br /&gt;
y,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{k} \cdot \sigma \cdot \vec{k}&amp;lt;/math&amp;gt; — tensión normal en la dirección del eje &lt;br /&gt;
𝑧&lt;br /&gt;
z.&lt;br /&gt;
&lt;br /&gt;
Solo se representan las componentes no nulas, mostrando cómo se distribuyen las tensiones normales en el sólido bajo el campo de desplazamientos aplicado.&lt;br /&gt;
[[Archivo:tensoresdeformacionales09.png|miniaturadeimagen|derecha|800px|Figura 9]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%% Apartado 9 (Versión 2D): Tensiones Normales&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% Definición de Geometría y Material&lt;br /&gt;
h = 0.1;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Placa J (Trapecio)&lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
X(~Condition) = NaN; Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
lambda = 1; mu = 1;&lt;br /&gt;
&lt;br /&gt;
% Cálculo de Componentes&lt;br /&gt;
% Deformaciones y Divergencia&lt;br /&gt;
Div_u = Y ./ 20;&lt;br /&gt;
Eps_xx = Y ./ 20;&lt;br /&gt;
Eps_yy = zeros(size(X));&lt;br /&gt;
% Eps_zz es 0&lt;br /&gt;
&lt;br /&gt;
% Tensiones Normales (Sigma = lambda*Div*I + 2*mu*Eps)&lt;br /&gt;
Sig_xx = lambda .* Div_u + 2 .* mu .* Eps_xx; &lt;br /&gt;
Sig_yy = lambda .* Div_u + 2 .* mu .* Eps_yy; &lt;br /&gt;
Sig_zz = lambda .* Div_u; &lt;br /&gt;
Sig_xy = 2 .* mu .* (-X./40);&lt;br /&gt;
&lt;br /&gt;
% Gráfica 2D (Subplot)&lt;br /&gt;
figure('Name', 'Apartado 9: Tensiones Normales (2D)', 'Color', 'w', 'Position', [100, 100, 1200, 400]);&lt;br /&gt;
&lt;br /&gt;
% XX&lt;br /&gt;
subplot(1, 3, 1);&lt;br /&gt;
contourf(X, Y, Sig_xx, 20, 'LineColor', 'none');&lt;br /&gt;
colormap(spring);  % Cambiar la paleta de colores&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]); colorbar;&lt;br /&gt;
title('Tensión Normal en X', 'Interpreter', 'latex');&lt;br /&gt;
xlabel('X'); ylabel('Y');&lt;br /&gt;
&lt;br /&gt;
% YY&lt;br /&gt;
subplot(1, 3, 2);&lt;br /&gt;
contourf(X, Y, Sig_yy, 20, 'LineColor', 'none');&lt;br /&gt;
colormap(spring);  % Cambiar la paleta de colores&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]); colorbar;&lt;br /&gt;
title('Tensión Normal en Y', 'Interpreter', 'latex');&lt;br /&gt;
xlabel('X'); ylabel('Y');&lt;br /&gt;
&lt;br /&gt;
% ZZ&lt;br /&gt;
subplot(1, 3, 3);&lt;br /&gt;
contourf(X, Y, Sig_zz, 20, 'LineColor', 'none');&lt;br /&gt;
colormap(spring);  % Cambiar la paleta de colores&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]); colorbar;&lt;br /&gt;
title('Tensión Normal en Z', 'Interpreter', 'latex');&lt;br /&gt;
xlabel('X'); ylabel('Y');&lt;br /&gt;
&lt;br /&gt;
sgtitle('Componentes Normales del Tensor de Tensiones', 'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tensiones tangenciales==&lt;br /&gt;
Se representan las tensiones tangenciales respecto al plano ortogonal al eje &amp;lt;math&amp;gt;\vec{i}&amp;lt;/math&amp;gt;, definidas como:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;|\sigma \cdot \vec{i} - (\vec{i} \cdot \sigma \cdot \vec{i}) , \vec{i}|&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En la gráfica se muestran únicamente las componentes no nulas, permitiendo visualizar las tensiones tangenciales que actúan sobre los planos perpendiculares al eje &lt;br /&gt;
𝑥&lt;br /&gt;
x.&lt;br /&gt;
[[Archivo:tensiontanggrupo09.png|600px|thumb]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representación del vector de tensión tangencial&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% 1) Crear la malla&lt;br /&gt;
paso = 0.15;&lt;br /&gt;
[X, Y] = meshgrid(0:paso:4, 0:paso:2);&lt;br /&gt;
&lt;br /&gt;
% 2) Zona válida (la placa con forma trapezoidal)&lt;br /&gt;
bajo  = X/8;&lt;br /&gt;
alto  = 2 - X/8;&lt;br /&gt;
&lt;br /&gt;
enZona = (Y &amp;gt;= bajo) &amp;amp; (Y &amp;lt;= alto);&lt;br /&gt;
&lt;br /&gt;
% Quitar puntos fuera&lt;br /&gt;
X(~enZona) = NaN;&lt;br /&gt;
Y(~enZona) = NaN;&lt;br /&gt;
&lt;br /&gt;
% 3) Tensión tangencial τ_xy&lt;br /&gt;
tau_xy = -X/20;&lt;br /&gt;
&lt;br /&gt;
% 4) Componentes del vector&lt;br /&gt;
u_comp = zeros(size(X));   % componente horizontal&lt;br /&gt;
v_comp = tau_xy;           % componente vertical&lt;br /&gt;
&lt;br /&gt;
% 5) Dibujar el campo vectorial&lt;br /&gt;
figure('Name','Tensión tangencial','Color','w');&lt;br /&gt;
&lt;br /&gt;
quiver(X, Y, u_comp, v_comp, 'r', 'LineWidth', 1);&lt;br /&gt;
&lt;br /&gt;
title('Campo de Tensión Tangencial \tau_{xy}');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
&lt;br /&gt;
axis equal;&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&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 mediante la expresión:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma_{VM} = \sqrt{\frac{(\sigma_1 - \sigma_2)^2 + (\sigma_2 - \sigma_3)^2 + (\sigma_3 - \sigma_1)^2}{2}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Esta fórmula combina las diferencias entre las tensiones principales (𝜎1,𝜎2,𝜎3σ1,σ2,σ3) y permite calcular el esfuerzo equivalente que experimenta el material, útil para evaluar la resistencia frente a la plasticidad o el fallo.&lt;br /&gt;
[[Archivo:vonmisesgrupo09.png|miniaturadeimagen|derecha|700px|Figura 11]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
% Cálculo de tensiones y Von Mises en una placa&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% 1) Crear la malla&lt;br /&gt;
paso = 0.1;&lt;br /&gt;
[X, Y] = meshgrid(0:paso:4, 0:paso:2);&lt;br /&gt;
&lt;br /&gt;
% Límites del trapecio&lt;br /&gt;
limInf = X/8;&lt;br /&gt;
limSup = 2 - X/8;&lt;br /&gt;
zona = (Y &amp;gt;= limInf) &amp;amp; (Y &amp;lt;= limSup);&lt;br /&gt;
&lt;br /&gt;
% 2) Definir desplazamientos u_x y u_y&lt;br /&gt;
ux = (X.*Y)/20;&lt;br /&gt;
uy = -(X.^2)/20;&lt;br /&gt;
&lt;br /&gt;
% Derivadas conocidas&lt;br /&gt;
ux_x = Y/20;&lt;br /&gt;
ux_y = X/20;&lt;br /&gt;
uy_x = -X/10;&lt;br /&gt;
uy_y = zeros(size(X));&lt;br /&gt;
&lt;br /&gt;
divU = ux_x + uy_y;&lt;br /&gt;
&lt;br /&gt;
% 3) Tensiones (lambda = mu = 1)&lt;br /&gt;
lambda = 1;&lt;br /&gt;
mu = 1;&lt;br /&gt;
&lt;br /&gt;
% Deformaciones&lt;br /&gt;
exx = ux_x;&lt;br /&gt;
eyy = uy_y;&lt;br /&gt;
exy = 0.5 * (ux_y + uy_x);&lt;br /&gt;
ezz = zeros(size(X));&lt;br /&gt;
&lt;br /&gt;
% Tensiones&lt;br /&gt;
sxx = lambda*divU + 2*mu*exx;&lt;br /&gt;
syy = lambda*divU + 2*mu*eyy;&lt;br /&gt;
szz = lambda*divU + 2*mu*ezz;&lt;br /&gt;
sxy = 2*mu*exy;&lt;br /&gt;
&lt;br /&gt;
% 4) Cálculo de Von Mises usando autovalores&lt;br /&gt;
VM = NaN(size(X));&lt;br /&gt;
&lt;br /&gt;
% Guardar índices dentro de la zona&lt;br /&gt;
[I,J] = find(zona);&lt;br /&gt;
N = length(I);&lt;br /&gt;
&lt;br /&gt;
for k = 1:N&lt;br /&gt;
    r = I(k);&lt;br /&gt;
    c = J(k);&lt;br /&gt;
&lt;br /&gt;
    % Matriz sigma&lt;br /&gt;
    S = [sxx(r,c) sxy(r,c) 0;&lt;br /&gt;
         sxy(r,c) syy(r,c) 0;&lt;br /&gt;
         0        0        szz(r,c)];&lt;br /&gt;
&lt;br /&gt;
    % Autovalores&lt;br /&gt;
    vals = eig(S);&lt;br /&gt;
    &lt;br /&gt;
    s1 = vals(1);&lt;br /&gt;
    s2 = vals(2);&lt;br /&gt;
    s3 = vals(3);&lt;br /&gt;
&lt;br /&gt;
    % Von Mises&lt;br /&gt;
    VM(r,c) = sqrt( ( (s1-s2)^2 + (s2-s3)^2 + (s3-s1)^2 ) / 2 );&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% 5) Encontrar máximo&lt;br /&gt;
[maxVM, idx] = max(VM(:));&lt;br /&gt;
[fMax, cMax] = ind2sub(size(VM), idx);&lt;br /&gt;
xMax = X(fMax, cMax);&lt;br /&gt;
yMax = Y(fMax, cMax);&lt;br /&gt;
&lt;br /&gt;
% 6) Gráfico&lt;br /&gt;
figure;&lt;br /&gt;
contourf(X, Y, VM, 30, 'LineStyle','none');&lt;br /&gt;
colorbar;&lt;br /&gt;
title('Tensión de Von Mises');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
&lt;br /&gt;
% Bordes&lt;br /&gt;
xx = linspace(0,4,200);&lt;br /&gt;
hold on;&lt;br /&gt;
plot(xx, xx/8, 'k','LineWidth',1.3);&lt;br /&gt;
plot(xx, 2-xx/8,'k','LineWidth',1.3);&lt;br /&gt;
plot([0 0],[0 2],'k','LineWidth',1.3);&lt;br /&gt;
plot([4 4],[0.5 1.5],'k','LineWidth',1.3);&lt;br /&gt;
&lt;br /&gt;
% Punto máximo&lt;br /&gt;
plot(xMax, yMax, 'ro','MarkerFaceColor','r');&lt;br /&gt;
text(xMax+0.1, yMax+0.1, sprintf('VM = %.3g', maxVM), 'Color','r');&lt;br /&gt;
&lt;br /&gt;
fprintf('Máx Von Mises = %.6g en (%.3f , %.3f)\n', maxVM, xMax, yMax);&lt;br /&gt;
hold off;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Campo de Fuerzas==&lt;br /&gt;
&lt;br /&gt;
El campo de fuerzas &amp;lt;math&amp;gt;\vec{F}&amp;lt;/math&amp;gt; que actúa sobre la placa, y que es responsable del desplazamiento observado, se puede aproximar mediante la ecuación de la elasticidad lineal:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{F} = - \operatorname{div} \sigma&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt;\operatorname{div} \sigma&amp;lt;/math&amp;gt; es la divergencia de un campo tensorial. En coordenadas cartesianas, se expresa como:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\operatorname{div} \sigma = (\operatorname{div} \sigma)_1 , \vec{i} + (\operatorname{div} \sigma)_2 , \vec{j} + (\operatorname{div} \sigma)3 , \vec{k}, \quad (\operatorname{div} \sigma)i = \sum{j=1}^{3} \frac{\partial \sigma{ij}}{\partial x_j}&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Esta formulación permite calcular, a partir del tensor de tensiones, el campo de fuerzas internas que genera los desplazamientos de la placa.&lt;br /&gt;
[[Archivo:campofuerzasgrupo09.png|700px|thumb]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Evaluación del Campo de Cargas Internas&lt;br /&gt;
clear; clc; close all;&lt;br /&gt;
&lt;br /&gt;
% 1. Generación del mallado sobre la región trapezoidal&lt;br /&gt;
dx = 0.1;&lt;br /&gt;
X = 0:dx:4;&lt;br /&gt;
Y = 0:dx:2;&lt;br /&gt;
[XX, YY] = meshgrid(X, Y);&lt;br /&gt;
&lt;br /&gt;
% Definición del dominio trapezoidal&lt;br /&gt;
enDominio = (YY &amp;gt;= XX/8) &amp;amp; (YY &amp;lt;= 2 - XX/8);&lt;br /&gt;
XX(~enDominio) = NaN;&lt;br /&gt;
YY(~enDominio) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Parámetros elásticos&lt;br /&gt;
lam = 1; &lt;br /&gt;
mus = 1;&lt;br /&gt;
&lt;br /&gt;
% 2. Tensiones: cálculo a partir del campo de deformación&lt;br /&gt;
divU = YY / 20;        % Divergencia&lt;br /&gt;
eps_xx = YY / 20;      % Deformación xx&lt;br /&gt;
eps_yy = zeros(size(XX));  % Deformación yy (nula)&lt;br /&gt;
&lt;br /&gt;
% Componentes del tensor de tensiones&lt;br /&gt;
Sxx = lam .* divU + 2 .* mus .* eps_xx;&lt;br /&gt;
Syy = lam .* divU + 2 .* mus .* eps_yy;&lt;br /&gt;
Sxy = -XX / 20;&lt;br /&gt;
&lt;br /&gt;
% 3. Divergencia del tensor (fuerzas volumétricas)&lt;br /&gt;
% F = -∇·σ&lt;br /&gt;
[dSxx_dx, dSxx_dy] = gradient(Sxx, dx, dx);&lt;br /&gt;
[dSxy_dx, dSxy_dy] = gradient(Sxy, dx, dx);&lt;br /&gt;
[dSyy_dx, dSyy_dy] = gradient(Syy, dx, dx);&lt;br /&gt;
&lt;br /&gt;
Fx = -(dSxx_dx + dSxy_dy);&lt;br /&gt;
Fy = -(dSxy_dx + dSyy_dy);&lt;br /&gt;
&lt;br /&gt;
% 4. Evaluación de la magnitud máxima del campo F&lt;br /&gt;
magnF = sqrt(Fx.^2 + Fy.^2);&lt;br /&gt;
valorMax = max(magnF(:));&lt;br /&gt;
&lt;br /&gt;
fprintf('--- Verificación del equilibrio ---\n');&lt;br /&gt;
fprintf('Máximo valor de |F| = %e\n', valorMax);&lt;br /&gt;
if valorMax &amp;lt; 1e-10&lt;br /&gt;
    fprintf('Conclusión: Se verifica equilibrio estático (F≈0).\n');&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% 5. Representación gráfica&lt;br /&gt;
figure('Name', 'Fuerzas Internas - Verificación', 'Color', 'w');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
quiver(XX, YY, Fx, Fy, 'b');&lt;br /&gt;
&lt;br /&gt;
% Contorno del dominio&lt;br /&gt;
plot([0 4 4 0 0], [0 0.5 1.5 2 0], 'r--', 'LineWidth', 1.2);&lt;br /&gt;
&lt;br /&gt;
title('Distribución del Campo de Fuerzas Internas');&lt;br /&gt;
xlabel('Coordenada X');&lt;br /&gt;
ylabel('Coordenada Y');&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&lt;br /&gt;
&lt;br /&gt;
text(1.2, 1, {'F ≈ 0 en todo el cuerpo','(Equilibrio comprobado)'}, ...&lt;br /&gt;
    'Color', 'm', 'FontWeight', 'bold', 'HorizontalAlignment', 'center');&lt;br /&gt;
&lt;br /&gt;
hold off;}}&lt;br /&gt;
&lt;br /&gt;
==Densidad==&lt;br /&gt;
[[Archivo:masatotalgrupo09.png|miniaturadeimagen|derecha|800px|Figura 10]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%Cálculo de la Masa Total&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% 1.Mallado&lt;br /&gt;
h = 0.01;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% 2. Placa &lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);   % *** corregido ***&lt;br /&gt;
&lt;br /&gt;
% 3. Densidad&lt;br /&gt;
Densidad = (4 - X) .* abs(Y);&lt;br /&gt;
&lt;br /&gt;
% Densidad fuera de la placa = 0&lt;br /&gt;
Densidad(~Condition) = 0;&lt;br /&gt;
&lt;br /&gt;
% 4. Masa&lt;br /&gt;
dA = h * h;&lt;br /&gt;
Masa_Total = sum(Densidad(:)) * dA;&lt;br /&gt;
&lt;br /&gt;
% 5. Gráfica única&lt;br /&gt;
figure('Name','Densidad','Color','w');&lt;br /&gt;
&lt;br /&gt;
step_plot = 10;&lt;br /&gt;
&lt;br /&gt;
surf(X(1:step_plot:end, 1:step_plot:end), ...&lt;br /&gt;
     Y(1:step_plot:end, 1:step_plot:end), ...&lt;br /&gt;
     Densidad(1:step_plot:end, 1:step_plot:end));&lt;br /&gt;
&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(cool); &lt;br /&gt;
colorbar;&lt;br /&gt;
&lt;br /&gt;
title('Distribución de Densidad d(x,y) = (4-x)|y|');&lt;br /&gt;
xlabel('X'); ylabel('Y'); zlabel('Densidad');&lt;br /&gt;
view(45,30); grid on; axis tight;&lt;br /&gt;
hold off;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ejemplos de uso en la ingeniería ==&lt;br /&gt;
&lt;br /&gt;
Las vigas en voladizo destacan por su forma y por la versatilidad que ofrecen, lo que las convierte en un elemento muy empleado en distintos ámbitos. Algunos de sus usos más frecuentes son:&lt;br /&gt;
&lt;br /&gt;
• Arquitectura: se utilizan en balcones, terrazas, marquesinas o cubiertas de acceso.&lt;br /&gt;
• Maquinaria: forman parte de brazos de grúas y de las palas de los aerogeneradores.&lt;br /&gt;
• Ingeniería: se aplican en la construcción de puentes en voladizo y en diferentes componentes estructurales.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Bibliografía==&lt;br /&gt;
&lt;br /&gt;
Para la realización del trabajo nos hemos apoyado en:&lt;br /&gt;
* MATLAB (Creación de gráficas).&lt;br /&gt;
* Apuntes de clase y los proporcionados por la escuela (aportación teórica).&lt;br /&gt;
* Trabajos de años anteriores.&lt;br /&gt;
* Chat GPT y Copilot M365 (ayuda con los códigos Matlab y con la comprensión del ejercicio).&lt;/div&gt;</summary>
		<author><name>Alejandro.Morales</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Placa_Plana_(Grupo_09)&amp;diff=98089</id>
		<title>Placa Plana (Grupo 09)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Placa_Plana_(Grupo_09)&amp;diff=98089"/>
				<updated>2025-12-04T10:06:33Z</updated>
		
		<summary type="html">&lt;p&gt;Alejandro.Morales: /* Gradiente Térmico */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Placa plana. Grupo 09 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC25/26|2025-26]] | Rafael Gonzalez Gomez &amp;lt;br/&amp;gt; Mario Belinchón Buendía &amp;lt;br/&amp;gt;Alejandro Morales Tari&amp;lt;br/&amp;gt;  Pablo Márquez Blanco}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Teoría de Campos]]&lt;br /&gt;
[[Categoría:TC25/26]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
&lt;br /&gt;
Consideramos la sección longitudinal de una viga en voladizo de geometría rectangular (en dimensión 2). Esta viga ocupa la región mostrada en la Figura 1, y permanece anclada en la pared vertical situada en el lado izquierdo. La zona que vamos a estudiar se describe mediante:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
(x,y) \in [0,4] \times [f(x),, g(x)],&lt;br /&gt;
\qquad&lt;br /&gt;
f(x)=\frac{x}{8},&lt;br /&gt;
\qquad&lt;br /&gt;
g(x)= 2-\frac{x}{8}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En esta placa se consideran dos magnitudes físicas relevantes.&lt;br /&gt;
La primera es el campo de temperaturas, modelado por la función:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
T(x,y)=\big(1+(y-1)^2\big),(4-x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
La segunda magnitud corresponde al campo de desplazamientos &amp;lt;math&amp;gt;\vec u(x,y)&amp;lt;/math&amp;gt;, producido por una fuerza externa —cuyo valor exacto no conocemos— y que deforma la placa.&lt;br /&gt;
&lt;br /&gt;
Para describir la deformación, sea&lt;br /&gt;
&amp;lt;math&amp;gt;\vec r_0(x,y)=x,\vec i + y,\vec j&amp;lt;/math&amp;gt;&lt;br /&gt;
el vector de posición inicial de cada punto. Entonces, tras aplicarse la fuerza, la nueva posición de un punto queda dada por:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\vec r_d(x,y)=\vec r_0(x,y)+\vec u(x,y)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Supondremos que la fuerza aplicada induce un desplazamiento expresado, en coordenadas polares &amp;lt;math&amp;gt;(\rho,\theta)&amp;lt;/math&amp;gt;, mediante:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\vec u(\rho,\theta)= -\frac{1}{20},\rho^2\cos\theta ; \vec e_\theta&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Este modelo permite estudiar tanto la distribución térmica en la viga como la deformación resultante, proporcionando una base adecuada para analizar su comportamiento estructural.&lt;br /&gt;
&lt;br /&gt;
==Mallado==&lt;br /&gt;
Para comenzar, construiremos un mallado de la sección longitudinal que nos permita representar los puntos interiores del sólido. Para ello, hemos empleado un paso de muestreo de&lt;br /&gt;
&amp;lt;math&amp;gt;h = \tfrac{1}{10}&amp;lt;/math&amp;gt;&lt;br /&gt;
y hemos definido la malla sobre el rectángulo que delimita los ejes coordenados:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt; (x, y) \in [-1,, 5] \times [-1,, 3] &amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Este mallado servirá como base para discretizar la región de interés y facilitar los cálculos posteriores.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:mimallado.png|thumb|700px|]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
h = 1/10;&lt;br /&gt;
color_malla = [0, 1, 0]; % Color &lt;br /&gt;
&lt;br /&gt;
% Coordenadas&lt;br /&gt;
u = 0 : h : 4;&lt;br /&gt;
v = 0 : h : 2;&lt;br /&gt;
[U, V] = meshgrid(u, v);&lt;br /&gt;
&lt;br /&gt;
% Calculamos los bordes &lt;br /&gt;
y_abajo = U ./ 8;&lt;br /&gt;
y_arriba = 2 - (U ./ 8);&lt;br /&gt;
&lt;br /&gt;
% Interpolamos&lt;br /&gt;
factor_altura = V ./ 2; % Va de 0 (abajo) a 1 (arriba)&lt;br /&gt;
&lt;br /&gt;
X = U;&lt;br /&gt;
Y = y_abajo + factor_altura .* (y_arriba - y_abajo);&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Color', 'w'); hold on;&lt;br /&gt;
&lt;br /&gt;
% Dibujar las líneas VERTICALES&lt;br /&gt;
plot(X, Y, 'Color', color_malla, 'LineWidth', 0.25);&lt;br /&gt;
&lt;br /&gt;
% Dibujar las líneas HORIZONTALES&lt;br /&gt;
plot(X', Y', 'Color', color_malla, 'LineWidth', 0.25);&lt;br /&gt;
&lt;br /&gt;
% Dibujar el contorno &lt;br /&gt;
plot(u, u./8, 'k-', 'LineWidth', 2); % Borde Abajo&lt;br /&gt;
plot(u, 2 - u./8, 'k-', 'LineWidth', 2); % Borde Arriba&lt;br /&gt;
plot([0 0], [0 2], 'k-', 'LineWidth', 2); % Borde Izquierdo&lt;br /&gt;
plot([4 4], [0.5 1.5], 'k-', 'LineWidth', 2); % Borde Derecho&lt;br /&gt;
&lt;br /&gt;
% Configuración final&lt;br /&gt;
axis([-1 5 -1 3]); % Zoom/Encuadre exacto&lt;br /&gt;
xlabel('x'); ylabel('y');&lt;br /&gt;
title('Mallado de la placa plana');&lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Curvas de nivel==&lt;br /&gt;
A continuación se representan las curvas de nivel de la temperatura con el fin de identificar visualmente la zona donde esta alcanza su valor máximo. A partir de la gráfica puede apreciarse que los puntos donde la temperatura es mayor son:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;(x,y) = (0,0) \quad \text{y} \quad (0,2)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Además, calculamos el gradiente de la temperatura para analizar la dirección de mayor variación de esta magnitud. El gradiente viene dado por:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\nabla T(x,y)&lt;br /&gt;
= \left( \frac{\partial T}{\partial x},, \frac{\partial T}{\partial y} \right)&lt;br /&gt;
= \Big( -\big(1+(y-1)^2\big),; (4-x)\cdot 2(y-1) \Big).&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En la representación gráfica se observa que el vector gradiente es ortogonal a las curvas de nivel, tal como establece la teoría: apunta siempre en la dirección de crecimiento más rápido de la temperatura.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Curvasdenivelgrupo009.png|miniaturadeimagen|derecha|800px|Figura 2]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% Parámetros del mallado&lt;br /&gt;
h = 0.1;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);  &lt;br /&gt;
&lt;br /&gt;
% Funciones de los bordes de la placa&lt;br /&gt;
f = @(x) x/8;&lt;br /&gt;
g = @(x) 2 - x/8;&lt;br /&gt;
&lt;br /&gt;
% Zona válida de la placa&lt;br /&gt;
zona = (Y &amp;gt;= f(X)) &amp;amp; (Y &amp;lt;= g(X));&lt;br /&gt;
&lt;br /&gt;
% Temperatura T(x,y)&lt;br /&gt;
T = (1 + (Y - 1).^2) .* (4 - X);&lt;br /&gt;
&lt;br /&gt;
% Enmascarado visual&lt;br /&gt;
T_mask = T;&lt;br /&gt;
T_mask(~zona) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo del gradiente de T&lt;br /&gt;
Ux = -(1 + (Y - 1).^2);          &lt;br /&gt;
Vy =  2 .* (Y - 1) .* (4 - X);    &lt;br /&gt;
&lt;br /&gt;
Ux(~zona) = NaN;&lt;br /&gt;
Vy(~zona) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Gráfica&lt;br /&gt;
figure(1); clf; hold on;&lt;br /&gt;
axis equal;&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&lt;br /&gt;
&lt;br /&gt;
title(&amp;quot;Distribución de la Temperatura y el Gradiente \nabla T&amp;quot;);&lt;br /&gt;
xlabel(&amp;quot;x&amp;quot;);&lt;br /&gt;
ylabel(&amp;quot;y&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
% Mapa de calor de T&lt;br /&gt;
contourf(X, Y, T_mask, 20, 'LineStyle', 'none');   &lt;br /&gt;
colormap(&amp;quot;parula&amp;quot;);  &lt;br /&gt;
colorbar;  &lt;br /&gt;
ylabel(colorbar, 'Temperatura T(x,y)');&lt;br /&gt;
&lt;br /&gt;
% Curvas de nivel&lt;br /&gt;
[C, hC] = contour(X, Y, T_mask, 10, 'r', 'LineWidth', 1.5); &lt;br /&gt;
clabel(C, hC, 'FontSize', 9, 'FontWeight', 'bold', 'Color', 'r');  &lt;br /&gt;
&lt;br /&gt;
% Campo vectorial (gradiente)&lt;br /&gt;
paso = 3;&lt;br /&gt;
quiver(X(1:paso:end, 1:paso:end), Y(1:paso:end, 1:paso:end), Ux(1:paso:end, 1:paso:end), Vy(1:paso:end, 1:paso:end), 1.2, 'c', 'LineWidth', 1);  &lt;br /&gt;
&lt;br /&gt;
% Dibujar contorno de la placa (en color verde oscuro)&lt;br /&gt;
plot(x, f(x), 'g-', 'LineWidth', 2);  &lt;br /&gt;
plot(x, g(x), 'g-', 'LineWidth', 2);   &lt;br /&gt;
plot([0 0], [f(0) g(0)], 'g-', 'LineWidth', 2);   &lt;br /&gt;
plot([4 4], [f(4) g(4)], 'g-', 'LineWidth', 2);  &lt;br /&gt;
&lt;br /&gt;
% Señalar los puntos de máximos (marcadores en forma de círculo)&lt;br /&gt;
plot(0, 0, 'ko', 'MarkerFaceColor', 'y', 'MarkerSize', 12);  &lt;br /&gt;
plot(0, 2, 'ko', 'MarkerFaceColor', 'y', 'MarkerSize', 12);  &lt;br /&gt;
&lt;br /&gt;
% Etiquetas de los puntos de máximos&lt;br /&gt;
text(0.1, 0, 'Máx T', 'Color', 'black', 'FontWeight', 'bold');&lt;br /&gt;
text(0.1, 2, 'Máx T', 'Color', 'black', 'FontWeight', 'bold');&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
&lt;br /&gt;
saveas(gcf,'curvasdenivelgrupo009.png');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ley de Fourier==&lt;br /&gt;
Según la ley de Fourier, el flujo de energía calorífica &amp;lt;math&amp;gt;\vec{Q}&amp;lt;/math&amp;gt; viene dado por:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{Q} = -\kappa , \nabla T&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt;\kappa&amp;lt;/math&amp;gt; representa la conductividad térmica del material. En nuestro caso, consideramos&lt;br /&gt;
&amp;lt;math&amp;gt;\kappa = 1&amp;lt;/math&amp;gt;, de modo que la expresión se simplifica a:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{Q} = - \nabla T&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Bajo esta suposición, en la representación gráfica puede apreciarse que el flujo calorífico es simplemente el opuesto del gradiente de la temperatura, señalando siempre la dirección de máxima disminución térmica.&lt;br /&gt;
[[Archivo:vectorflujocalor.png|thumb|700px|]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Mallado y dominio geométrico&lt;br /&gt;
paso = 0.2;&lt;br /&gt;
xx = 0:paso:4;&lt;br /&gt;
yy = 0:paso:2;&lt;br /&gt;
[X, Y] = meshgrid(xx, yy);&lt;br /&gt;
&lt;br /&gt;
% Bordes superior e inferior de la región física&lt;br /&gt;
lim_inf = X / 8;&lt;br /&gt;
lim_sup = 2 - X / 8;&lt;br /&gt;
&lt;br /&gt;
% Máscara lógica: puntos válidos&lt;br /&gt;
zona = (Y &amp;gt;= lim_inf) &amp;amp; (Y &amp;lt;= lim_sup);&lt;br /&gt;
&lt;br /&gt;
% Campo escalar de temperatura&lt;br /&gt;
Temp = (1 + (Y - 1).^2) .* (4 - X);   % misma función, escrita directamente&lt;br /&gt;
Temp(~zona) = NaN;                   % filtrado de la zona útil&lt;br /&gt;
&lt;br /&gt;
% Gradiente numérico y flujo térmico&lt;br /&gt;
% gradient devuelve: [dT/dy , dT/dx]&lt;br /&gt;
[dTy, dTx] = gradient(Temp, paso);&lt;br /&gt;
&lt;br /&gt;
flujo_x = -dTx;    % Ley de Fourier en 2D&lt;br /&gt;
flujo_y = -dTy;&lt;br /&gt;
&lt;br /&gt;
flujo_x(~zona) = NaN;&lt;br /&gt;
flujo_y(~zona) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Representación gráfica&lt;br /&gt;
fig = figure('Color','white','Name','Mapa de flujo térmico');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
% Campo escalar coloreado&lt;br /&gt;
contourf(X, Y, Temp, 20, 'LineStyle','none');&lt;br /&gt;
colormap jet;&lt;br /&gt;
&lt;br /&gt;
% Indicador de escala&lt;br /&gt;
barra = colorbar;&lt;br /&gt;
barra.Label.String = 'T(x,y)';&lt;br /&gt;
barra.Label.FontSize = 10;&lt;br /&gt;
&lt;br /&gt;
% Representación vectorial del flujo&lt;br /&gt;
quiver(X, Y, flujo_x, flujo_y, 'k', ...&lt;br /&gt;
       'LineWidth', 1.2, 'AutoScaleFactor', 1.5);&lt;br /&gt;
&lt;br /&gt;
% Dibujar la frontera física del sólido&lt;br /&gt;
tramo = [0 4];&lt;br /&gt;
plot(tramo, [0 0.5], 'k', 'LineWidth', 2);&lt;br /&gt;
plot(tramo, [2 1.5], 'k', 'LineWidth', 2);&lt;br /&gt;
plot([0 0], [0 2],   'k', 'LineWidth', 2);&lt;br /&gt;
plot([4 4], [0.5 1.5],'k', 'LineWidth', 2);&lt;br /&gt;
&lt;br /&gt;
% Ajustes finales del gráfico&lt;br /&gt;
axis equal;&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&lt;br /&gt;
&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
title({'Campo de Flujo Térmico'});&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Gradiente Térmico==&lt;br /&gt;
El punto de máxima variación térmica corresponde al lugar donde el gradiente de la temperatura alcanza su valor máximo. En la práctica, esto se obtiene igualando la derivada del gradiente a cero.&lt;br /&gt;
&lt;br /&gt;
Mientras que la variación térmica sigue la dirección del gradiente, el flujo de calor más intenso se orienta en sentido contrario, es decir, hacia donde disminuye la temperatura.&lt;br /&gt;
&lt;br /&gt;
Paso 1: Definición de la función para maximizar&lt;br /&gt;
&lt;br /&gt;
Llamamos a la función:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;G(x,y) = |\nabla T|^2&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Desarrollando los términos:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;G(x,y) = \big(1+(y-1)^2\big)^2 + \big(2(y-1)(4-x)\big)^2&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;G(x,y) = (y^2 - 2y + 2)^2 + 4(y-1)^2(4-x)^2&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Paso 2: Cálculo de los puntos críticos&lt;br /&gt;
&lt;br /&gt;
Para maximizar la función, derivamos y resolvemos el sistema:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial G}{\partial x} = -8 (y-1)^2 (4-x) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial G}{\partial y} = 4 (y-1) \big(1 + (y-1)^2 + 2 (4-x)^2 \big) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Al resolver este sistema, encontramos que los mínimos se sitúan sobre la recta:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;y = 1&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Como no hay máximos aislados dentro del dominio, los máximos deben encontrarse en la frontera:&lt;br /&gt;
&lt;br /&gt;
Borde izquierdo: &amp;lt;math&amp;gt;x=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Borde derecho: &amp;lt;math&amp;gt;x=4&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curva inferior: &amp;lt;math&amp;gt;y = x/8&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curva superior: &amp;lt;math&amp;gt;y = 2 - x/8&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras analizar los límites del recinto, los máximos de la función del gradiente térmico se localizan en el borde izquierdo, &amp;lt;math&amp;gt;x=0&amp;lt;/math&amp;gt;. Las coordenadas de los máximos son:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
P(1): x=0.00, y=0.00, Dirección del vector: [-2.00, -8.00]&lt;br /&gt;
P(2): x=0.00, y=2.00, Dirección del vector: [-2.00, 8.00]&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Paso 3: Cálculo de la máxima variación térmica&lt;br /&gt;
&lt;br /&gt;
El valor de la norma del gradiente es igual para P(1) y P(2). Calculamos, por ejemplo, para P(1) = (0,0):&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\nabla T(0,0) = \big(-(1 + (0-1)^2), 2(0-1)(4-0)\big) = (-2,-8)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;|\nabla T(0,0)| = \sqrt{(-2)^2 + (-8)^2} = \sqrt{4 + 64} = 2\sqrt{17} \approx 8.246&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Por lo tanto, la máxima variación térmica en la placa se produce en los puntos P(1) y P(2) y tiene un valor aproximado de 8.246.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:gradientetermico.png|miniaturadeimagen|derecha|800px|Figura 4:Máxima Variación de T]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc;&lt;br /&gt;
clear;&lt;br /&gt;
close all;&lt;br /&gt;
&lt;br /&gt;
% Mallado de la región&lt;br /&gt;
h = 0.05;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Curvas que delimitan la placa&lt;br /&gt;
y_inf = X./8;&lt;br /&gt;
y_sup = 2 - X./8;&lt;br /&gt;
&lt;br /&gt;
% Puntos que pertenecen a la placa&lt;br /&gt;
enPlaca = (Y &amp;gt;= y_inf) &amp;amp; (Y &amp;lt;= y_sup);&lt;br /&gt;
&lt;br /&gt;
% Gradiente de T(x,y)&lt;br /&gt;
% T(x,y) = (1 + (y - 1)^2) * (4 - x)&lt;br /&gt;
Tx = -(1 + (Y - 1).^2);          % dT/dx&lt;br /&gt;
Ty =  2 .* (Y - 1) .* (4 - X);   % dT/dy&lt;br /&gt;
&lt;br /&gt;
% Módulo del gradiente&lt;br /&gt;
NormaGrad = sqrt(Tx.^2 + Ty.^2);&lt;br /&gt;
&lt;br /&gt;
% Fuera de la placa lo ponemos a NaN para que no se pinte&lt;br /&gt;
NormaGrad(~enPlaca) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Búsqueda de los puntos de máximo&lt;br /&gt;
max_val = max(NormaGrad(:));             % valor máximo del módulo&lt;br /&gt;
[filas, columnas] = find(NormaGrad == max_val);&lt;br /&gt;
&lt;br /&gt;
% Coordenadas de los puntos donde se alcanza el máximo&lt;br /&gt;
x_max = X(filas, columnas);&lt;br /&gt;
y_max = Y(filas, columnas);&lt;br /&gt;
&lt;br /&gt;
% Componentes del vector gradiente en esos puntos&lt;br /&gt;
u_dir = Tx(filas, columnas);&lt;br /&gt;
v_dir = Ty(filas, columnas);&lt;br /&gt;
&lt;br /&gt;
% Representación gráfica&lt;br /&gt;
figure('Name', 'Máxima variación de T');&lt;br /&gt;
hold on;&lt;br /&gt;
axis equal;&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&lt;br /&gt;
&lt;br /&gt;
title('Puntos de máxima variación de T');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
&lt;br /&gt;
% Mapa de colores con el módulo del gradiente&lt;br /&gt;
contourf(X, Y, NormaGrad, 20, 'LineStyle', 'none');&lt;br /&gt;
colormap(jet);&lt;br /&gt;
colorbar;&lt;br /&gt;
&lt;br /&gt;
% Contorno aproximado de la placa&lt;br /&gt;
xp = [0 4 4 0 0];&lt;br /&gt;
yp = [0 0.5 1.5 2 0];&lt;br /&gt;
plot(xp, yp, 'k', 'LineWidth', 1.5);&lt;br /&gt;
&lt;br /&gt;
% Puntos de máximo&lt;br /&gt;
plot(x_max, y_max, 'ro', 'MarkerSize', 7, 'MarkerFaceColor', 'r');&lt;br /&gt;
&lt;br /&gt;
% Vectores dirección del gradiente en los máximos&lt;br /&gt;
quiver(x_max, y_max, u_dir, v_dir, 0.5, 'k', 'LineWidth', 2, 'MaxHeadSize', 0.5);&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
&lt;br /&gt;
% Información por pantalla&lt;br /&gt;
fprintf('La variación máxima del módulo del gradiente es: %.2f\n', max_val);&lt;br /&gt;
fprintf('Se alcanza en los siguientes puntos:\n');&lt;br /&gt;
&lt;br /&gt;
for k = 1:length(x_max)&lt;br /&gt;
    fprintf('Punto %d: x = %.2f, y = %.2f, vector gradiente = [%.2f, %.2f]\n', ...&lt;br /&gt;
        k, x_max(k), y_max(k), u_dir(k), v_dir(k));&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Campo de Desplazamientos==&lt;br /&gt;
El campo de desplazamientos de un sólido se representa mediante un campo vectorial, que indica la dirección y sentido del desplazamiento de cada punto mediante vectores (representados como flechas rojas).&lt;br /&gt;
&lt;br /&gt;
Como se puede observar, los puntos que se encuentran más próximos al punto de aplicación de la fuerza experimentan los desplazamientos más grandes, mientras que los situados más alejados apenas se mueven.&lt;br /&gt;
[[Archivo:Desplazamiento_manuel.jpg|thumb|600px]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
&lt;br /&gt;
h = 0.1; &lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la región &lt;br /&gt;
Condicion = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
&lt;br /&gt;
% Aplicamos Máscara&lt;br /&gt;
X(~Condicion) = NaN;&lt;br /&gt;
Y(~Condicion) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo del Campo de Desplazamientos &lt;br /&gt;
&lt;br /&gt;
Rho = sqrt(X.^2 + Y.^2);&lt;br /&gt;
Theta = atan2(Y, X);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U_theta_val = -1/20 .* Rho.^2 .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ux = -U_theta_val .* sin(Theta);&lt;br /&gt;
Uy = U_theta_val .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Calcular la posición deformada&lt;br /&gt;
&lt;br /&gt;
% Posición final = Posición inicial + Desplazamiento&lt;br /&gt;
X_final = X + Ux;&lt;br /&gt;
Y_final = Y + Uy;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Comparativa&lt;br /&gt;
&lt;br /&gt;
figure('Name', 'Deformación de la Placa', 'Color', 'w');&lt;br /&gt;
&lt;br /&gt;
% PLACA ORIGINAL&lt;br /&gt;
subplot(1, 2, 1);&lt;br /&gt;
% Usamos mesh con Z=0 para dibujar la 'rejilla' plana&lt;br /&gt;
mesh(X, Y, zeros(size(X)), 'EdgeColor', 'b');&lt;br /&gt;
view(2); % Vista superior (2D)&lt;br /&gt;
axis equal; grid on;&lt;br /&gt;
title('Placa antes del desplazamiento');&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
&lt;br /&gt;
% PLACA DEFORMADA &lt;br /&gt;
subplot(1, 2, 2);&lt;br /&gt;
mesh(X_final, Y_final, zeros(size(X)), 'EdgeColor', 'b');&lt;br /&gt;
view(2);&lt;br /&gt;
axis equal; grid on;&lt;br /&gt;
title('Placa después del desplazamiento');&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Apartado 5 &lt;br /&gt;
&lt;br /&gt;
figure('Name', 'Campo Vectorial de Desplazamientos');&lt;br /&gt;
hold on; axis equal; grid on;&lt;br /&gt;
title('Campo de Desplazamientos');&lt;br /&gt;
&lt;br /&gt;
% Dibujamos contorno original de referencia&lt;br /&gt;
plot(X(:), Y(:), '.k', 'MarkerSize', 1);&lt;br /&gt;
&lt;br /&gt;
% Dibujamos los vectores &lt;br /&gt;
quiver(X, Y, Ux, Uy, 0, 'r', 'LineWidth', 1.5);&lt;br /&gt;
&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
xlim([-0.5 4.5]); ylim([-0.5 2.5]);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Desplazamiento del Sólido==&lt;br /&gt;
Debido a la fuerza de magnitud desconocida, el sólido experimenta un desplazamiento descrito por el campo vectorial:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{u}(\rho, \theta) = -\frac{1}{20},\rho^2 \cos \theta ; \vec{e}_\theta&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
El sólido se deforma siguiendo este campo de desplazamientos. Como era de esperar, los puntos más próximos al punto de aplicación de la fuerza son los que sufren los mayores desplazamientos, mientras que los situados más lejos apenas se mueven.&lt;br /&gt;
&lt;br /&gt;
Se adjuntan las gráficas que muestran el desplazamiento sufrido. (Nota: el desplazamiento inferior no se aprecia en la visualización actual; sería necesario ajustar los ejes en el código para visualizarlo correctamente).&lt;br /&gt;
[[Archivo:Apartado6deformacion.png|thumb|1000px]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Definición de Geometría y Desplazamientos&lt;br /&gt;
h = 0.1; % Paso del mallado&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la Región &lt;br /&gt;
&lt;br /&gt;
% Aplicamos máscara &lt;br /&gt;
X(~Condicion) = NaN;&lt;br /&gt;
Y(~Condicion) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo de Desplazamientos&lt;br /&gt;
&lt;br /&gt;
Rho = sqrt(X.^2 + Y.^2);&lt;br /&gt;
Theta = atan2(Y, X);&lt;br /&gt;
&lt;br /&gt;
% Valor escalar de u_theta&lt;br /&gt;
U_theta_val = -1/20 .* Rho.^2 .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
% Proyección a cartesianas &lt;br /&gt;
Ux = -U_theta_val .* sin(Theta);&lt;br /&gt;
Uy = U_theta_val .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
% --- Posición Final Deformada ---&lt;br /&gt;
X_final = X + Ux;&lt;br /&gt;
Y_final = Y + Uy;&lt;br /&gt;
&lt;br /&gt;
% Gráfica Comparativa de Sólidos Mallados &lt;br /&gt;
figure('Name', 'Comparación Antes/Después', 'Color', 'w', 'Position', [100, 100, 1000, 500]);&lt;br /&gt;
&lt;br /&gt;
% Placa Original&lt;br /&gt;
subplot(1, 2, 1);&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
mesh(X, Y, zeros(size(X)), 'EdgeColor', [0 0.7 0.9], 'FaceColor', 'none');&lt;br /&gt;
&lt;br /&gt;
view(2); &lt;br /&gt;
axis equal; &lt;br /&gt;
grid on;&lt;br /&gt;
box on; &lt;br /&gt;
&lt;br /&gt;
title('Placa antes del desplazamiento', 'FontWeight', 'bold');&lt;br /&gt;
xlabel('Eje X');&lt;br /&gt;
ylabel('Eje Y');&lt;br /&gt;
axis([-1.5 4.5 0 2.5]);&lt;br /&gt;
&lt;br /&gt;
% Placa Deformada&lt;br /&gt;
subplot(1, 2, 2);&lt;br /&gt;
hold on;&lt;br /&gt;
% Dibujamos la malla usando las coordenadas finales (X_final, Y_final)&lt;br /&gt;
mesh(X_final, Y_final, zeros(size(X)), 'EdgeColor', [0 0.7 0.9], 'FaceColor', 'none');&lt;br /&gt;
&lt;br /&gt;
view(2);&lt;br /&gt;
axis equal;&lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
&lt;br /&gt;
title('Placa después del desplazamiento', 'FontWeight', 'bold');&lt;br /&gt;
xlabel('Eje X');&lt;br /&gt;
ylabel('Eje Y');&lt;br /&gt;
axis([-1.5 4.5 0 2.5]); &lt;br /&gt;
&lt;br /&gt;
sgtitle('Visualización del Sólido Mallado bajo Deformación'); % Título&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Divergencia==&lt;br /&gt;
La divergencia &amp;lt;math&amp;gt;\nabla \cdot \vec{u}&amp;lt;/math&amp;gt; mide la variación de volumen local en el sólido. En nuestro caso, el cálculo da como resultado:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\nabla \cdot \vec{u} = \frac{y}{20}&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Este resultado indica que la placa experimenta una expansión positiva, que aumenta linealmente con la altura, debido al estiramiento de las fibras superiores.&lt;br /&gt;
&lt;br /&gt;
En la representación gráfica se observa la distribución de la divergencia mediante franjas de color:&lt;br /&gt;
&lt;br /&gt;
En azul se encuentra la base, donde el volumen permanece prácticamente constante.&lt;br /&gt;
&lt;br /&gt;
Hacia la parte superior, el color se degrada progresivamente hasta un rojo intenso, indicando el punto de máxima expansión, independiente de la posición horizontal &lt;br /&gt;
𝑥&lt;br /&gt;
x.&lt;br /&gt;
[[Archivo:divergencia09.png|miniaturadeimagen|derecha|800px|Figura 7]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% Definir Malla y Placa&lt;br /&gt;
h = 0.05;&lt;br /&gt;
[X, Y] = meshgrid(0:h:4, 0:h:2); &lt;br /&gt;
f = @(x) x/8;&lt;br /&gt;
g = @(x) 2 - x/8; &lt;br /&gt;
EnPlaca = (Y &amp;gt;= f(X)) &amp;amp; (Y &amp;lt;= g(X)); &lt;br /&gt;
&lt;br /&gt;
% Divergencia&lt;br /&gt;
Div = Y/20;  &lt;br /&gt;
Div(~EnPlaca) = NaN;  &lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure; clf; hold on;&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]); box on;&lt;br /&gt;
title('Divergencia: Cambio de Volumen');&lt;br /&gt;
xlabel('X'); ylabel('Y');&lt;br /&gt;
&lt;br /&gt;
% Mapa de calor de la Divergencia&lt;br /&gt;
contourf(X, Y, Div, 20, 'LineStyle', 'none');  &lt;br /&gt;
colormap(parula);  &lt;br /&gt;
colorbar;  &lt;br /&gt;
ylabel(colorbar, 'Valor de Divergencia');&lt;br /&gt;
&lt;br /&gt;
% Dibujar bordes de la placa&lt;br /&gt;
x_b = linspace(0, 4, 200);&lt;br /&gt;
plot(x_b, x_b/8, 'k-', 'LineWidth', 1);   &lt;br /&gt;
plot(x_b, 2 - x_b/8, 'k-', 'LineWidth', 1);   &lt;br /&gt;
plot([0 0], [0 2], 'k-', 'LineWidth', 1);   &lt;br /&gt;
plot([4 4], [0 2], 'k-', 'LineWidth', 1);   &lt;br /&gt;
&lt;br /&gt;
% Señalar puntos clave (cambié las estrellas por círculos)&lt;br /&gt;
plot(0, 2, 'go', 'MarkerSize', 12, 'MarkerFaceColor', 'g');&lt;br /&gt;
text(0.1, 2.05, 'Max Expansión', 'FontWeight', 'bold', 'Color', 'g');&lt;br /&gt;
&lt;br /&gt;
plot(0, 0, 'ro', 'MarkerSize', 12, 'MarkerFaceColor', 'r');  &lt;br /&gt;
text(0.1, -0.05, 'Divergencia Nula', 'FontWeight', 'bold', 'Color', 'r');&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
saveas(gcf,'divergencia09.png');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rotacional==&lt;br /&gt;
Se calcula el rotacional &amp;lt;math&amp;gt;|\nabla \times \vec{u}|&amp;lt;/math&amp;gt; en todos los puntos del sólido.&lt;br /&gt;
&lt;br /&gt;
Los resultados muestran que los puntos más alejados del origen y alineados con el eje 𝑥&lt;br /&gt;
x experimentan los mayores valores de rotacional, indicando que estas zonas sufren la mayor rotación local debido al campo de desplazamientos aplicado.&lt;br /&gt;
[[Archivo:rotacional09.png|600px|thumb|1000px]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Divergencia&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% Definir Malla y Región&lt;br /&gt;
h = 0.05;               &lt;br /&gt;
x = 0:h:4;              &lt;br /&gt;
y = 0:h:2;              &lt;br /&gt;
[X, Y] = meshgrid(x, y); &lt;br /&gt;
&lt;br /&gt;
% Definición de la placa&lt;br /&gt;
Condition = (Y &amp;gt;= X/8) &amp;amp; (Y &amp;lt;= 2 - X/8);  &lt;br /&gt;
X(~Condition) = NaN;&lt;br /&gt;
Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo del Rotacional&lt;br /&gt;
Rotacional = 0.15 .* X; &lt;br /&gt;
&lt;br /&gt;
% Gráfica en 3D &lt;br /&gt;
figure('Name', 'Rotacional en 3D', 'Color', 'w'); &lt;br /&gt;
&lt;br /&gt;
s = surf(X, Y, Rotacional);&lt;br /&gt;
&lt;br /&gt;
% Estética de la gráfica 3D&lt;br /&gt;
shading interp;  &lt;br /&gt;
colormap(spring); &lt;br /&gt;
alpha(0.9);  &lt;br /&gt;
&lt;br /&gt;
% Ajuste de la vista para la inclinación&lt;br /&gt;
view(45, 30);  &lt;br /&gt;
axis tight;&lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
&lt;br /&gt;
% nombres a los ejes y título&lt;br /&gt;
title('Magnitud del Rotacional a lo largo del eje X');&lt;br /&gt;
xlabel('Eje X (Posición)', 'FontSize', 12, 'FontWeight', 'bold');&lt;br /&gt;
ylabel('Eje Y (Posición)', 'FontSize', 12, 'FontWeight', 'bold');&lt;br /&gt;
zlabel('Magnitud del Rotacional', 'FontSize', 12, 'FontWeight', 'bold');&lt;br /&gt;
&lt;br /&gt;
% barra de colores&lt;br /&gt;
c = colorbar;&lt;br /&gt;
c.Label.String = 'Magnitud';&lt;br /&gt;
c.FontSize = 12;&lt;br /&gt;
&lt;br /&gt;
% Puntos Clave &lt;br /&gt;
hold on;&lt;br /&gt;
plot3(0, 2, 0.6, 'go', 'MarkerSize', 12, 'MarkerFaceColor', 'g');  % Max Expansión&lt;br /&gt;
text(0.1, 2.05, 'Max Expansión', 'FontWeight', 'bold', 'Color', 'g');&lt;br /&gt;
&lt;br /&gt;
plot3(0, 0, 0.1, 'bo', 'MarkerSize', 12, 'MarkerFaceColor', 'b');  % Divergencia Nula&lt;br /&gt;
text(0.1, -0.05, 'Divergencia Nula', 'FontWeight', 'bold', 'Color', 'b');&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Tensores Deformacionales==&lt;br /&gt;
Se define el tensor de deformaciones como la parte simétrica del gradiente del campo de desplazamientos &amp;lt;math&amp;gt;\vec{u}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\varepsilon(\vec{u}) = \frac{1}{2} \big( \nabla \vec{u} + (\nabla \vec{u})^T \big)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En un medio elástico lineal, isótropo y homogéneo, los desplazamientos permiten expresar el tensor de tensiones &amp;lt;math&amp;gt;\sigma&amp;lt;/math&amp;gt; mediante la relación de Hooke generalizada:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\sigma = \lambda , (\nabla \cdot \vec{u}) , I + 2 \mu , \varepsilon(\vec{u})&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
donde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; es el tensor identidad en &amp;lt;math&amp;gt;\mathbb{R}^3&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; son los coeficientes de Lamé, que dependen de las propiedades elásticas del material.&lt;br /&gt;
&lt;br /&gt;
Tomando &amp;lt;math&amp;gt;\lambda = \mu = 1&amp;lt;/math&amp;gt;, se representan las tensiones normales en las direcciones de los ejes coordenados:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{i} \cdot \sigma \cdot \vec{i}&amp;lt;/math&amp;gt; — tensión normal en la dirección del eje &lt;br /&gt;
𝑥&lt;br /&gt;
x,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{j} \cdot \sigma \cdot \vec{j}&amp;lt;/math&amp;gt; — tensión normal en la dirección del eje &lt;br /&gt;
𝑦&lt;br /&gt;
y,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{k} \cdot \sigma \cdot \vec{k}&amp;lt;/math&amp;gt; — tensión normal en la dirección del eje &lt;br /&gt;
𝑧&lt;br /&gt;
z.&lt;br /&gt;
&lt;br /&gt;
Solo se representan las componentes no nulas, mostrando cómo se distribuyen las tensiones normales en el sólido bajo el campo de desplazamientos aplicado.&lt;br /&gt;
[[Archivo:tensoresdeformacionales09.png|miniaturadeimagen|derecha|800px|Figura 9]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%% Apartado 9 (Versión 2D): Tensiones Normales&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% Definición de Geometría y Material&lt;br /&gt;
h = 0.1;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Placa J (Trapecio)&lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
X(~Condition) = NaN; Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
lambda = 1; mu = 1;&lt;br /&gt;
&lt;br /&gt;
% Cálculo de Componentes&lt;br /&gt;
% Deformaciones y Divergencia&lt;br /&gt;
Div_u = Y ./ 20;&lt;br /&gt;
Eps_xx = Y ./ 20;&lt;br /&gt;
Eps_yy = zeros(size(X));&lt;br /&gt;
% Eps_zz es 0&lt;br /&gt;
&lt;br /&gt;
% Tensiones Normales (Sigma = lambda*Div*I + 2*mu*Eps)&lt;br /&gt;
Sig_xx = lambda .* Div_u + 2 .* mu .* Eps_xx; &lt;br /&gt;
Sig_yy = lambda .* Div_u + 2 .* mu .* Eps_yy; &lt;br /&gt;
Sig_zz = lambda .* Div_u; &lt;br /&gt;
Sig_xy = 2 .* mu .* (-X./40);&lt;br /&gt;
&lt;br /&gt;
% Gráfica 2D (Subplot)&lt;br /&gt;
figure('Name', 'Apartado 9: Tensiones Normales (2D)', 'Color', 'w', 'Position', [100, 100, 1200, 400]);&lt;br /&gt;
&lt;br /&gt;
% XX&lt;br /&gt;
subplot(1, 3, 1);&lt;br /&gt;
contourf(X, Y, Sig_xx, 20, 'LineColor', 'none');&lt;br /&gt;
colormap(spring);  % Cambiar la paleta de colores&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]); colorbar;&lt;br /&gt;
title('Tensión Normal en X', 'Interpreter', 'latex');&lt;br /&gt;
xlabel('X'); ylabel('Y');&lt;br /&gt;
&lt;br /&gt;
% YY&lt;br /&gt;
subplot(1, 3, 2);&lt;br /&gt;
contourf(X, Y, Sig_yy, 20, 'LineColor', 'none');&lt;br /&gt;
colormap(spring);  % Cambiar la paleta de colores&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]); colorbar;&lt;br /&gt;
title('Tensión Normal en Y', 'Interpreter', 'latex');&lt;br /&gt;
xlabel('X'); ylabel('Y');&lt;br /&gt;
&lt;br /&gt;
% ZZ&lt;br /&gt;
subplot(1, 3, 3);&lt;br /&gt;
contourf(X, Y, Sig_zz, 20, 'LineColor', 'none');&lt;br /&gt;
colormap(spring);  % Cambiar la paleta de colores&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]); colorbar;&lt;br /&gt;
title('Tensión Normal en Z', 'Interpreter', 'latex');&lt;br /&gt;
xlabel('X'); ylabel('Y');&lt;br /&gt;
&lt;br /&gt;
sgtitle('Componentes Normales del Tensor de Tensiones', 'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tensiones tangenciales==&lt;br /&gt;
Se representan las tensiones tangenciales respecto al plano ortogonal al eje &amp;lt;math&amp;gt;\vec{i}&amp;lt;/math&amp;gt;, definidas como:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;|\sigma \cdot \vec{i} - (\vec{i} \cdot \sigma \cdot \vec{i}) , \vec{i}|&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En la gráfica se muestran únicamente las componentes no nulas, permitiendo visualizar las tensiones tangenciales que actúan sobre los planos perpendiculares al eje &lt;br /&gt;
𝑥&lt;br /&gt;
x.&lt;br /&gt;
[[Archivo:tensiontanggrupo09.png|600px|thumb]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representación del vector de tensión tangencial&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% 1) Crear la malla&lt;br /&gt;
paso = 0.15;&lt;br /&gt;
[X, Y] = meshgrid(0:paso:4, 0:paso:2);&lt;br /&gt;
&lt;br /&gt;
% 2) Zona válida (la placa con forma trapezoidal)&lt;br /&gt;
bajo  = X/8;&lt;br /&gt;
alto  = 2 - X/8;&lt;br /&gt;
&lt;br /&gt;
enZona = (Y &amp;gt;= bajo) &amp;amp; (Y &amp;lt;= alto);&lt;br /&gt;
&lt;br /&gt;
% Quitar puntos fuera&lt;br /&gt;
X(~enZona) = NaN;&lt;br /&gt;
Y(~enZona) = NaN;&lt;br /&gt;
&lt;br /&gt;
% 3) Tensión tangencial τ_xy&lt;br /&gt;
tau_xy = -X/20;&lt;br /&gt;
&lt;br /&gt;
% 4) Componentes del vector&lt;br /&gt;
u_comp = zeros(size(X));   % componente horizontal&lt;br /&gt;
v_comp = tau_xy;           % componente vertical&lt;br /&gt;
&lt;br /&gt;
% 5) Dibujar el campo vectorial&lt;br /&gt;
figure('Name','Tensión tangencial','Color','w');&lt;br /&gt;
&lt;br /&gt;
quiver(X, Y, u_comp, v_comp, 'r', 'LineWidth', 1);&lt;br /&gt;
&lt;br /&gt;
title('Campo de Tensión Tangencial \tau_{xy}');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
&lt;br /&gt;
axis equal;&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&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 mediante la expresión:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma_{VM} = \sqrt{\frac{(\sigma_1 - \sigma_2)^2 + (\sigma_2 - \sigma_3)^2 + (\sigma_3 - \sigma_1)^2}{2}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Esta fórmula combina las diferencias entre las tensiones principales (𝜎1,𝜎2,𝜎3σ1,σ2,σ3) y permite calcular el esfuerzo equivalente que experimenta el material, útil para evaluar la resistencia frente a la plasticidad o el fallo.&lt;br /&gt;
[[Archivo:vonmisesgrupo09.png|miniaturadeimagen|derecha|700px|Figura 11]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
% Cálculo de tensiones y Von Mises en una placa&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% 1) Crear la malla&lt;br /&gt;
paso = 0.1;&lt;br /&gt;
[X, Y] = meshgrid(0:paso:4, 0:paso:2);&lt;br /&gt;
&lt;br /&gt;
% Límites del trapecio&lt;br /&gt;
limInf = X/8;&lt;br /&gt;
limSup = 2 - X/8;&lt;br /&gt;
zona = (Y &amp;gt;= limInf) &amp;amp; (Y &amp;lt;= limSup);&lt;br /&gt;
&lt;br /&gt;
% 2) Definir desplazamientos u_x y u_y&lt;br /&gt;
ux = (X.*Y)/20;&lt;br /&gt;
uy = -(X.^2)/20;&lt;br /&gt;
&lt;br /&gt;
% Derivadas conocidas&lt;br /&gt;
ux_x = Y/20;&lt;br /&gt;
ux_y = X/20;&lt;br /&gt;
uy_x = -X/10;&lt;br /&gt;
uy_y = zeros(size(X));&lt;br /&gt;
&lt;br /&gt;
divU = ux_x + uy_y;&lt;br /&gt;
&lt;br /&gt;
% 3) Tensiones (lambda = mu = 1)&lt;br /&gt;
lambda = 1;&lt;br /&gt;
mu = 1;&lt;br /&gt;
&lt;br /&gt;
% Deformaciones&lt;br /&gt;
exx = ux_x;&lt;br /&gt;
eyy = uy_y;&lt;br /&gt;
exy = 0.5 * (ux_y + uy_x);&lt;br /&gt;
ezz = zeros(size(X));&lt;br /&gt;
&lt;br /&gt;
% Tensiones&lt;br /&gt;
sxx = lambda*divU + 2*mu*exx;&lt;br /&gt;
syy = lambda*divU + 2*mu*eyy;&lt;br /&gt;
szz = lambda*divU + 2*mu*ezz;&lt;br /&gt;
sxy = 2*mu*exy;&lt;br /&gt;
&lt;br /&gt;
% 4) Cálculo de Von Mises usando autovalores&lt;br /&gt;
VM = NaN(size(X));&lt;br /&gt;
&lt;br /&gt;
% Guardar índices dentro de la zona&lt;br /&gt;
[I,J] = find(zona);&lt;br /&gt;
N = length(I);&lt;br /&gt;
&lt;br /&gt;
for k = 1:N&lt;br /&gt;
    r = I(k);&lt;br /&gt;
    c = J(k);&lt;br /&gt;
&lt;br /&gt;
    % Matriz sigma&lt;br /&gt;
    S = [sxx(r,c) sxy(r,c) 0;&lt;br /&gt;
         sxy(r,c) syy(r,c) 0;&lt;br /&gt;
         0        0        szz(r,c)];&lt;br /&gt;
&lt;br /&gt;
    % Autovalores&lt;br /&gt;
    vals = eig(S);&lt;br /&gt;
    &lt;br /&gt;
    s1 = vals(1);&lt;br /&gt;
    s2 = vals(2);&lt;br /&gt;
    s3 = vals(3);&lt;br /&gt;
&lt;br /&gt;
    % Von Mises&lt;br /&gt;
    VM(r,c) = sqrt( ( (s1-s2)^2 + (s2-s3)^2 + (s3-s1)^2 ) / 2 );&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% 5) Encontrar máximo&lt;br /&gt;
[maxVM, idx] = max(VM(:));&lt;br /&gt;
[fMax, cMax] = ind2sub(size(VM), idx);&lt;br /&gt;
xMax = X(fMax, cMax);&lt;br /&gt;
yMax = Y(fMax, cMax);&lt;br /&gt;
&lt;br /&gt;
% 6) Gráfico&lt;br /&gt;
figure;&lt;br /&gt;
contourf(X, Y, VM, 30, 'LineStyle','none');&lt;br /&gt;
colorbar;&lt;br /&gt;
title('Tensión de Von Mises');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
&lt;br /&gt;
% Bordes&lt;br /&gt;
xx = linspace(0,4,200);&lt;br /&gt;
hold on;&lt;br /&gt;
plot(xx, xx/8, 'k','LineWidth',1.3);&lt;br /&gt;
plot(xx, 2-xx/8,'k','LineWidth',1.3);&lt;br /&gt;
plot([0 0],[0 2],'k','LineWidth',1.3);&lt;br /&gt;
plot([4 4],[0.5 1.5],'k','LineWidth',1.3);&lt;br /&gt;
&lt;br /&gt;
% Punto máximo&lt;br /&gt;
plot(xMax, yMax, 'ro','MarkerFaceColor','r');&lt;br /&gt;
text(xMax+0.1, yMax+0.1, sprintf('VM = %.3g', maxVM), 'Color','r');&lt;br /&gt;
&lt;br /&gt;
fprintf('Máx Von Mises = %.6g en (%.3f , %.3f)\n', maxVM, xMax, yMax);&lt;br /&gt;
hold off;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Campo de Fuerzas==&lt;br /&gt;
&lt;br /&gt;
El campo de fuerzas &amp;lt;math&amp;gt;\vec{F}&amp;lt;/math&amp;gt; que actúa sobre la placa, y que es responsable del desplazamiento observado, se puede aproximar mediante la ecuación de la elasticidad lineal:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{F} = - \operatorname{div} \sigma&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt;\operatorname{div} \sigma&amp;lt;/math&amp;gt; es la divergencia de un campo tensorial. En coordenadas cartesianas, se expresa como:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\operatorname{div} \sigma = (\operatorname{div} \sigma)_1 , \vec{i} + (\operatorname{div} \sigma)_2 , \vec{j} + (\operatorname{div} \sigma)3 , \vec{k}, \quad (\operatorname{div} \sigma)i = \sum{j=1}^{3} \frac{\partial \sigma{ij}}{\partial x_j}&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Esta formulación permite calcular, a partir del tensor de tensiones, el campo de fuerzas internas que genera los desplazamientos de la placa.&lt;br /&gt;
[[Archivo:campofuerzasgrupo09.png|700px|thumb]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Evaluación del Campo de Cargas Internas&lt;br /&gt;
clear; clc; close all;&lt;br /&gt;
&lt;br /&gt;
% 1. Generación del mallado sobre la región trapezoidal&lt;br /&gt;
dx = 0.1;&lt;br /&gt;
X = 0:dx:4;&lt;br /&gt;
Y = 0:dx:2;&lt;br /&gt;
[XX, YY] = meshgrid(X, Y);&lt;br /&gt;
&lt;br /&gt;
% Definición del dominio trapezoidal&lt;br /&gt;
enDominio = (YY &amp;gt;= XX/8) &amp;amp; (YY &amp;lt;= 2 - XX/8);&lt;br /&gt;
XX(~enDominio) = NaN;&lt;br /&gt;
YY(~enDominio) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Parámetros elásticos&lt;br /&gt;
lam = 1; &lt;br /&gt;
mus = 1;&lt;br /&gt;
&lt;br /&gt;
% 2. Tensiones: cálculo a partir del campo de deformación&lt;br /&gt;
divU = YY / 20;        % Divergencia&lt;br /&gt;
eps_xx = YY / 20;      % Deformación xx&lt;br /&gt;
eps_yy = zeros(size(XX));  % Deformación yy (nula)&lt;br /&gt;
&lt;br /&gt;
% Componentes del tensor de tensiones&lt;br /&gt;
Sxx = lam .* divU + 2 .* mus .* eps_xx;&lt;br /&gt;
Syy = lam .* divU + 2 .* mus .* eps_yy;&lt;br /&gt;
Sxy = -XX / 20;&lt;br /&gt;
&lt;br /&gt;
% 3. Divergencia del tensor (fuerzas volumétricas)&lt;br /&gt;
% F = -∇·σ&lt;br /&gt;
[dSxx_dx, dSxx_dy] = gradient(Sxx, dx, dx);&lt;br /&gt;
[dSxy_dx, dSxy_dy] = gradient(Sxy, dx, dx);&lt;br /&gt;
[dSyy_dx, dSyy_dy] = gradient(Syy, dx, dx);&lt;br /&gt;
&lt;br /&gt;
Fx = -(dSxx_dx + dSxy_dy);&lt;br /&gt;
Fy = -(dSxy_dx + dSyy_dy);&lt;br /&gt;
&lt;br /&gt;
% 4. Evaluación de la magnitud máxima del campo F&lt;br /&gt;
magnF = sqrt(Fx.^2 + Fy.^2);&lt;br /&gt;
valorMax = max(magnF(:));&lt;br /&gt;
&lt;br /&gt;
fprintf('--- Verificación del equilibrio ---\n');&lt;br /&gt;
fprintf('Máximo valor de |F| = %e\n', valorMax);&lt;br /&gt;
if valorMax &amp;lt; 1e-10&lt;br /&gt;
    fprintf('Conclusión: Se verifica equilibrio estático (F≈0).\n');&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% 5. Representación gráfica&lt;br /&gt;
figure('Name', 'Fuerzas Internas - Verificación', 'Color', 'w');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
quiver(XX, YY, Fx, Fy, 'b');&lt;br /&gt;
&lt;br /&gt;
% Contorno del dominio&lt;br /&gt;
plot([0 4 4 0 0], [0 0.5 1.5 2 0], 'r--', 'LineWidth', 1.2);&lt;br /&gt;
&lt;br /&gt;
title('Distribución del Campo de Fuerzas Internas');&lt;br /&gt;
xlabel('Coordenada X');&lt;br /&gt;
ylabel('Coordenada Y');&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&lt;br /&gt;
&lt;br /&gt;
text(1.2, 1, {'F ≈ 0 en todo el cuerpo','(Equilibrio comprobado)'}, ...&lt;br /&gt;
    'Color', 'm', 'FontWeight', 'bold', 'HorizontalAlignment', 'center');&lt;br /&gt;
&lt;br /&gt;
hold off;}}&lt;br /&gt;
&lt;br /&gt;
==Densidad==&lt;br /&gt;
[[Archivo:masatotalgrupo09.png|miniaturadeimagen|derecha|800px|Figura 10]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%Cálculo de la Masa Total&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% 1.Mallado&lt;br /&gt;
h = 0.01;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% 2. Placa &lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);   % *** corregido ***&lt;br /&gt;
&lt;br /&gt;
% 3. Densidad&lt;br /&gt;
Densidad = (4 - X) .* abs(Y);&lt;br /&gt;
&lt;br /&gt;
% Densidad fuera de la placa = 0&lt;br /&gt;
Densidad(~Condition) = 0;&lt;br /&gt;
&lt;br /&gt;
% 4. Masa&lt;br /&gt;
dA = h * h;&lt;br /&gt;
Masa_Total = sum(Densidad(:)) * dA;&lt;br /&gt;
&lt;br /&gt;
% 5. Gráfica única&lt;br /&gt;
figure('Name','Densidad','Color','w');&lt;br /&gt;
&lt;br /&gt;
step_plot = 10;&lt;br /&gt;
&lt;br /&gt;
surf(X(1:step_plot:end, 1:step_plot:end), ...&lt;br /&gt;
     Y(1:step_plot:end, 1:step_plot:end), ...&lt;br /&gt;
     Densidad(1:step_plot:end, 1:step_plot:end));&lt;br /&gt;
&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(cool); &lt;br /&gt;
colorbar;&lt;br /&gt;
&lt;br /&gt;
title('Distribución de Densidad d(x,y) = (4-x)|y|');&lt;br /&gt;
xlabel('X'); ylabel('Y'); zlabel('Densidad');&lt;br /&gt;
view(45,30); grid on; axis tight;&lt;br /&gt;
hold off;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ejemplos de uso en la ingeniería ==&lt;br /&gt;
&lt;br /&gt;
Las vigas en voladizo destacan por su forma y por la versatilidad que ofrecen, lo que las convierte en un elemento muy empleado en distintos ámbitos. Algunos de sus usos más frecuentes son:&lt;br /&gt;
&lt;br /&gt;
• Arquitectura: se utilizan en balcones, terrazas, marquesinas o cubiertas de acceso.&lt;br /&gt;
• Maquinaria: forman parte de brazos de grúas y de las palas de los aerogeneradores.&lt;br /&gt;
• Ingeniería: se aplican en la construcción de puentes en voladizo y en diferentes componentes estructurales.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Bibliografía==&lt;br /&gt;
&lt;br /&gt;
Para la realización del trabajo nos hemos apoyado en:&lt;br /&gt;
* MATLAB (Creación de gráficas).&lt;br /&gt;
* Apuntes de clase y los proporcionados por la escuela (aportación teórica).&lt;br /&gt;
* Trabajos de años anteriores.&lt;br /&gt;
* Chat GPT y Copilot M365 (ayuda con los códigos Matlab y con la comprensión del ejercicio).&lt;/div&gt;</summary>
		<author><name>Alejandro.Morales</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Gradientetermico.png&amp;diff=98083</id>
		<title>Archivo:Gradientetermico.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Gradientetermico.png&amp;diff=98083"/>
				<updated>2025-12-04T10:05:32Z</updated>
		
		<summary type="html">&lt;p&gt;Alejandro.Morales: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Alejandro.Morales</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Placa_Plana_(Grupo_09)&amp;diff=98080</id>
		<title>Placa Plana (Grupo 09)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Placa_Plana_(Grupo_09)&amp;diff=98080"/>
				<updated>2025-12-04T10:05:06Z</updated>
		
		<summary type="html">&lt;p&gt;Alejandro.Morales: /* Gradiente Térmico */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Placa plana. Grupo 09 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC25/26|2025-26]] | Rafael Gonzalez Gomez &amp;lt;br/&amp;gt; Mario Belinchón Buendía &amp;lt;br/&amp;gt;Alejandro Morales Tari&amp;lt;br/&amp;gt;  Pablo Márquez Blanco}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Teoría de Campos]]&lt;br /&gt;
[[Categoría:TC25/26]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
&lt;br /&gt;
Consideramos la sección longitudinal de una viga en voladizo de geometría rectangular (en dimensión 2). Esta viga ocupa la región mostrada en la Figura 1, y permanece anclada en la pared vertical situada en el lado izquierdo. La zona que vamos a estudiar se describe mediante:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
(x,y) \in [0,4] \times [f(x),, g(x)],&lt;br /&gt;
\qquad&lt;br /&gt;
f(x)=\frac{x}{8},&lt;br /&gt;
\qquad&lt;br /&gt;
g(x)= 2-\frac{x}{8}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En esta placa se consideran dos magnitudes físicas relevantes.&lt;br /&gt;
La primera es el campo de temperaturas, modelado por la función:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
T(x,y)=\big(1+(y-1)^2\big),(4-x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
La segunda magnitud corresponde al campo de desplazamientos &amp;lt;math&amp;gt;\vec u(x,y)&amp;lt;/math&amp;gt;, producido por una fuerza externa —cuyo valor exacto no conocemos— y que deforma la placa.&lt;br /&gt;
&lt;br /&gt;
Para describir la deformación, sea&lt;br /&gt;
&amp;lt;math&amp;gt;\vec r_0(x,y)=x,\vec i + y,\vec j&amp;lt;/math&amp;gt;&lt;br /&gt;
el vector de posición inicial de cada punto. Entonces, tras aplicarse la fuerza, la nueva posición de un punto queda dada por:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\vec r_d(x,y)=\vec r_0(x,y)+\vec u(x,y)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Supondremos que la fuerza aplicada induce un desplazamiento expresado, en coordenadas polares &amp;lt;math&amp;gt;(\rho,\theta)&amp;lt;/math&amp;gt;, mediante:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\vec u(\rho,\theta)= -\frac{1}{20},\rho^2\cos\theta ; \vec e_\theta&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Este modelo permite estudiar tanto la distribución térmica en la viga como la deformación resultante, proporcionando una base adecuada para analizar su comportamiento estructural.&lt;br /&gt;
&lt;br /&gt;
==Mallado==&lt;br /&gt;
Para comenzar, construiremos un mallado de la sección longitudinal que nos permita representar los puntos interiores del sólido. Para ello, hemos empleado un paso de muestreo de&lt;br /&gt;
&amp;lt;math&amp;gt;h = \tfrac{1}{10}&amp;lt;/math&amp;gt;&lt;br /&gt;
y hemos definido la malla sobre el rectángulo que delimita los ejes coordenados:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt; (x, y) \in [-1,, 5] \times [-1,, 3] &amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Este mallado servirá como base para discretizar la región de interés y facilitar los cálculos posteriores.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:mimallado.png|thumb|700px|]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
h = 1/10;&lt;br /&gt;
color_malla = [0, 1, 0]; % Color &lt;br /&gt;
&lt;br /&gt;
% Coordenadas&lt;br /&gt;
u = 0 : h : 4;&lt;br /&gt;
v = 0 : h : 2;&lt;br /&gt;
[U, V] = meshgrid(u, v);&lt;br /&gt;
&lt;br /&gt;
% Calculamos los bordes &lt;br /&gt;
y_abajo = U ./ 8;&lt;br /&gt;
y_arriba = 2 - (U ./ 8);&lt;br /&gt;
&lt;br /&gt;
% Interpolamos&lt;br /&gt;
factor_altura = V ./ 2; % Va de 0 (abajo) a 1 (arriba)&lt;br /&gt;
&lt;br /&gt;
X = U;&lt;br /&gt;
Y = y_abajo + factor_altura .* (y_arriba - y_abajo);&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Color', 'w'); hold on;&lt;br /&gt;
&lt;br /&gt;
% Dibujar las líneas VERTICALES&lt;br /&gt;
plot(X, Y, 'Color', color_malla, 'LineWidth', 0.25);&lt;br /&gt;
&lt;br /&gt;
% Dibujar las líneas HORIZONTALES&lt;br /&gt;
plot(X', Y', 'Color', color_malla, 'LineWidth', 0.25);&lt;br /&gt;
&lt;br /&gt;
% Dibujar el contorno &lt;br /&gt;
plot(u, u./8, 'k-', 'LineWidth', 2); % Borde Abajo&lt;br /&gt;
plot(u, 2 - u./8, 'k-', 'LineWidth', 2); % Borde Arriba&lt;br /&gt;
plot([0 0], [0 2], 'k-', 'LineWidth', 2); % Borde Izquierdo&lt;br /&gt;
plot([4 4], [0.5 1.5], 'k-', 'LineWidth', 2); % Borde Derecho&lt;br /&gt;
&lt;br /&gt;
% Configuración final&lt;br /&gt;
axis([-1 5 -1 3]); % Zoom/Encuadre exacto&lt;br /&gt;
xlabel('x'); ylabel('y');&lt;br /&gt;
title('Mallado de la placa plana');&lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Curvas de nivel==&lt;br /&gt;
A continuación se representan las curvas de nivel de la temperatura con el fin de identificar visualmente la zona donde esta alcanza su valor máximo. A partir de la gráfica puede apreciarse que los puntos donde la temperatura es mayor son:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;(x,y) = (0,0) \quad \text{y} \quad (0,2)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Además, calculamos el gradiente de la temperatura para analizar la dirección de mayor variación de esta magnitud. El gradiente viene dado por:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\nabla T(x,y)&lt;br /&gt;
= \left( \frac{\partial T}{\partial x},, \frac{\partial T}{\partial y} \right)&lt;br /&gt;
= \Big( -\big(1+(y-1)^2\big),; (4-x)\cdot 2(y-1) \Big).&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En la representación gráfica se observa que el vector gradiente es ortogonal a las curvas de nivel, tal como establece la teoría: apunta siempre en la dirección de crecimiento más rápido de la temperatura.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Curvasdenivelgrupo009.png|miniaturadeimagen|derecha|800px|Figura 2]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% Parámetros del mallado&lt;br /&gt;
h = 0.1;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);  &lt;br /&gt;
&lt;br /&gt;
% Funciones de los bordes de la placa&lt;br /&gt;
f = @(x) x/8;&lt;br /&gt;
g = @(x) 2 - x/8;&lt;br /&gt;
&lt;br /&gt;
% Zona válida de la placa&lt;br /&gt;
zona = (Y &amp;gt;= f(X)) &amp;amp; (Y &amp;lt;= g(X));&lt;br /&gt;
&lt;br /&gt;
% Temperatura T(x,y)&lt;br /&gt;
T = (1 + (Y - 1).^2) .* (4 - X);&lt;br /&gt;
&lt;br /&gt;
% Enmascarado visual&lt;br /&gt;
T_mask = T;&lt;br /&gt;
T_mask(~zona) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo del gradiente de T&lt;br /&gt;
Ux = -(1 + (Y - 1).^2);          &lt;br /&gt;
Vy =  2 .* (Y - 1) .* (4 - X);    &lt;br /&gt;
&lt;br /&gt;
Ux(~zona) = NaN;&lt;br /&gt;
Vy(~zona) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Gráfica&lt;br /&gt;
figure(1); clf; hold on;&lt;br /&gt;
axis equal;&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&lt;br /&gt;
&lt;br /&gt;
title(&amp;quot;Distribución de la Temperatura y el Gradiente \nabla T&amp;quot;);&lt;br /&gt;
xlabel(&amp;quot;x&amp;quot;);&lt;br /&gt;
ylabel(&amp;quot;y&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
% Mapa de calor de T&lt;br /&gt;
contourf(X, Y, T_mask, 20, 'LineStyle', 'none');   &lt;br /&gt;
colormap(&amp;quot;parula&amp;quot;);  &lt;br /&gt;
colorbar;  &lt;br /&gt;
ylabel(colorbar, 'Temperatura T(x,y)');&lt;br /&gt;
&lt;br /&gt;
% Curvas de nivel&lt;br /&gt;
[C, hC] = contour(X, Y, T_mask, 10, 'r', 'LineWidth', 1.5); &lt;br /&gt;
clabel(C, hC, 'FontSize', 9, 'FontWeight', 'bold', 'Color', 'r');  &lt;br /&gt;
&lt;br /&gt;
% Campo vectorial (gradiente)&lt;br /&gt;
paso = 3;&lt;br /&gt;
quiver(X(1:paso:end, 1:paso:end), Y(1:paso:end, 1:paso:end), Ux(1:paso:end, 1:paso:end), Vy(1:paso:end, 1:paso:end), 1.2, 'c', 'LineWidth', 1);  &lt;br /&gt;
&lt;br /&gt;
% Dibujar contorno de la placa (en color verde oscuro)&lt;br /&gt;
plot(x, f(x), 'g-', 'LineWidth', 2);  &lt;br /&gt;
plot(x, g(x), 'g-', 'LineWidth', 2);   &lt;br /&gt;
plot([0 0], [f(0) g(0)], 'g-', 'LineWidth', 2);   &lt;br /&gt;
plot([4 4], [f(4) g(4)], 'g-', 'LineWidth', 2);  &lt;br /&gt;
&lt;br /&gt;
% Señalar los puntos de máximos (marcadores en forma de círculo)&lt;br /&gt;
plot(0, 0, 'ko', 'MarkerFaceColor', 'y', 'MarkerSize', 12);  &lt;br /&gt;
plot(0, 2, 'ko', 'MarkerFaceColor', 'y', 'MarkerSize', 12);  &lt;br /&gt;
&lt;br /&gt;
% Etiquetas de los puntos de máximos&lt;br /&gt;
text(0.1, 0, 'Máx T', 'Color', 'black', 'FontWeight', 'bold');&lt;br /&gt;
text(0.1, 2, 'Máx T', 'Color', 'black', 'FontWeight', 'bold');&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
&lt;br /&gt;
saveas(gcf,'curvasdenivelgrupo009.png');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ley de Fourier==&lt;br /&gt;
Según la ley de Fourier, el flujo de energía calorífica &amp;lt;math&amp;gt;\vec{Q}&amp;lt;/math&amp;gt; viene dado por:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{Q} = -\kappa , \nabla T&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt;\kappa&amp;lt;/math&amp;gt; representa la conductividad térmica del material. En nuestro caso, consideramos&lt;br /&gt;
&amp;lt;math&amp;gt;\kappa = 1&amp;lt;/math&amp;gt;, de modo que la expresión se simplifica a:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{Q} = - \nabla T&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Bajo esta suposición, en la representación gráfica puede apreciarse que el flujo calorífico es simplemente el opuesto del gradiente de la temperatura, señalando siempre la dirección de máxima disminución térmica.&lt;br /&gt;
[[Archivo:vectorflujocalor.png|thumb|700px|]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Mallado y dominio geométrico&lt;br /&gt;
paso = 0.2;&lt;br /&gt;
xx = 0:paso:4;&lt;br /&gt;
yy = 0:paso:2;&lt;br /&gt;
[X, Y] = meshgrid(xx, yy);&lt;br /&gt;
&lt;br /&gt;
% Bordes superior e inferior de la región física&lt;br /&gt;
lim_inf = X / 8;&lt;br /&gt;
lim_sup = 2 - X / 8;&lt;br /&gt;
&lt;br /&gt;
% Máscara lógica: puntos válidos&lt;br /&gt;
zona = (Y &amp;gt;= lim_inf) &amp;amp; (Y &amp;lt;= lim_sup);&lt;br /&gt;
&lt;br /&gt;
% Campo escalar de temperatura&lt;br /&gt;
Temp = (1 + (Y - 1).^2) .* (4 - X);   % misma función, escrita directamente&lt;br /&gt;
Temp(~zona) = NaN;                   % filtrado de la zona útil&lt;br /&gt;
&lt;br /&gt;
% Gradiente numérico y flujo térmico&lt;br /&gt;
% gradient devuelve: [dT/dy , dT/dx]&lt;br /&gt;
[dTy, dTx] = gradient(Temp, paso);&lt;br /&gt;
&lt;br /&gt;
flujo_x = -dTx;    % Ley de Fourier en 2D&lt;br /&gt;
flujo_y = -dTy;&lt;br /&gt;
&lt;br /&gt;
flujo_x(~zona) = NaN;&lt;br /&gt;
flujo_y(~zona) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Representación gráfica&lt;br /&gt;
fig = figure('Color','white','Name','Mapa de flujo térmico');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
% Campo escalar coloreado&lt;br /&gt;
contourf(X, Y, Temp, 20, 'LineStyle','none');&lt;br /&gt;
colormap jet;&lt;br /&gt;
&lt;br /&gt;
% Indicador de escala&lt;br /&gt;
barra = colorbar;&lt;br /&gt;
barra.Label.String = 'T(x,y)';&lt;br /&gt;
barra.Label.FontSize = 10;&lt;br /&gt;
&lt;br /&gt;
% Representación vectorial del flujo&lt;br /&gt;
quiver(X, Y, flujo_x, flujo_y, 'k', ...&lt;br /&gt;
       'LineWidth', 1.2, 'AutoScaleFactor', 1.5);&lt;br /&gt;
&lt;br /&gt;
% Dibujar la frontera física del sólido&lt;br /&gt;
tramo = [0 4];&lt;br /&gt;
plot(tramo, [0 0.5], 'k', 'LineWidth', 2);&lt;br /&gt;
plot(tramo, [2 1.5], 'k', 'LineWidth', 2);&lt;br /&gt;
plot([0 0], [0 2],   'k', 'LineWidth', 2);&lt;br /&gt;
plot([4 4], [0.5 1.5],'k', 'LineWidth', 2);&lt;br /&gt;
&lt;br /&gt;
% Ajustes finales del gráfico&lt;br /&gt;
axis equal;&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&lt;br /&gt;
&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
title({'Campo de Flujo Térmico'});&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Gradiente Térmico==&lt;br /&gt;
El punto de máxima variación térmica corresponde al lugar donde el gradiente de la temperatura alcanza su valor máximo. En la práctica, esto se obtiene igualando la derivada del gradiente a cero.&lt;br /&gt;
&lt;br /&gt;
Mientras que la variación térmica sigue la dirección del gradiente, el flujo de calor más intenso se orienta en sentido contrario, es decir, hacia donde disminuye la temperatura.&lt;br /&gt;
&lt;br /&gt;
Paso 1: Definición de la función para maximizar&lt;br /&gt;
&lt;br /&gt;
Llamamos a la función:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;G(x,y) = |\nabla T|^2&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Desarrollando los términos:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;G(x,y) = \big(1+(y-1)^2\big)^2 + \big(2(y-1)(4-x)\big)^2&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;G(x,y) = (y^2 - 2y + 2)^2 + 4(y-1)^2(4-x)^2&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Paso 2: Cálculo de los puntos críticos&lt;br /&gt;
&lt;br /&gt;
Para maximizar la función, derivamos y resolvemos el sistema:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial G}{\partial x} = -8 (y-1)^2 (4-x) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial G}{\partial y} = 4 (y-1) \big(1 + (y-1)^2 + 2 (4-x)^2 \big) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Al resolver este sistema, encontramos que los mínimos se sitúan sobre la recta:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;y = 1&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Como no hay máximos aislados dentro del dominio, los máximos deben encontrarse en la frontera:&lt;br /&gt;
&lt;br /&gt;
Borde izquierdo: &amp;lt;math&amp;gt;x=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Borde derecho: &amp;lt;math&amp;gt;x=4&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curva inferior: &amp;lt;math&amp;gt;y = x/8&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curva superior: &amp;lt;math&amp;gt;y = 2 - x/8&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras analizar los límites del recinto, los máximos de la función del gradiente térmico se localizan en el borde izquierdo, &amp;lt;math&amp;gt;x=0&amp;lt;/math&amp;gt;. Las coordenadas de los máximos son:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
P(1): x=0.00, y=0.00, Dirección del vector: [-2.00, -8.00]&lt;br /&gt;
P(2): x=0.00, y=2.00, Dirección del vector: [-2.00, 8.00]&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Paso 3: Cálculo de la máxima variación térmica&lt;br /&gt;
&lt;br /&gt;
El valor de la norma del gradiente es igual para P(1) y P(2). Calculamos, por ejemplo, para P(1) = (0,0):&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\nabla T(0,0) = \big(-(1 + (0-1)^2), 2(0-1)(4-0)\big) = (-2,-8)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;|\nabla T(0,0)| = \sqrt{(-2)^2 + (-8)^2} = \sqrt{4 + 64} = 2\sqrt{17} \approx 8.246&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Por lo tanto, la máxima variación térmica en la placa se produce en los puntos P(1) y P(2) y tiene un valor aproximado de 8.246.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:maxvart.jpg|miniaturadeimagen|derecha|800px|Figura 4:Máxima Variación de T]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc;&lt;br /&gt;
clear;&lt;br /&gt;
close all;&lt;br /&gt;
&lt;br /&gt;
% Mallado de la región&lt;br /&gt;
h = 0.05;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Curvas que delimitan la placa&lt;br /&gt;
y_inf = X./8;&lt;br /&gt;
y_sup = 2 - X./8;&lt;br /&gt;
&lt;br /&gt;
% Puntos que pertenecen a la placa&lt;br /&gt;
enPlaca = (Y &amp;gt;= y_inf) &amp;amp; (Y &amp;lt;= y_sup);&lt;br /&gt;
&lt;br /&gt;
% Gradiente de T(x,y)&lt;br /&gt;
% T(x,y) = (1 + (y - 1)^2) * (4 - x)&lt;br /&gt;
Tx = -(1 + (Y - 1).^2);          % dT/dx&lt;br /&gt;
Ty =  2 .* (Y - 1) .* (4 - X);   % dT/dy&lt;br /&gt;
&lt;br /&gt;
% Módulo del gradiente&lt;br /&gt;
NormaGrad = sqrt(Tx.^2 + Ty.^2);&lt;br /&gt;
&lt;br /&gt;
% Fuera de la placa lo ponemos a NaN para que no se pinte&lt;br /&gt;
NormaGrad(~enPlaca) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Búsqueda de los puntos de máximo&lt;br /&gt;
max_val = max(NormaGrad(:));             % valor máximo del módulo&lt;br /&gt;
[filas, columnas] = find(NormaGrad == max_val);&lt;br /&gt;
&lt;br /&gt;
% Coordenadas de los puntos donde se alcanza el máximo&lt;br /&gt;
x_max = X(filas, columnas);&lt;br /&gt;
y_max = Y(filas, columnas);&lt;br /&gt;
&lt;br /&gt;
% Componentes del vector gradiente en esos puntos&lt;br /&gt;
u_dir = Tx(filas, columnas);&lt;br /&gt;
v_dir = Ty(filas, columnas);&lt;br /&gt;
&lt;br /&gt;
% Representación gráfica&lt;br /&gt;
figure('Name', 'Máxima variación de T');&lt;br /&gt;
hold on;&lt;br /&gt;
axis equal;&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&lt;br /&gt;
&lt;br /&gt;
title('Puntos de máxima variación de T');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
&lt;br /&gt;
% Mapa de colores con el módulo del gradiente&lt;br /&gt;
contourf(X, Y, NormaGrad, 20, 'LineStyle', 'none');&lt;br /&gt;
colormap(jet);&lt;br /&gt;
colorbar;&lt;br /&gt;
&lt;br /&gt;
% Contorno aproximado de la placa&lt;br /&gt;
xp = [0 4 4 0 0];&lt;br /&gt;
yp = [0 0.5 1.5 2 0];&lt;br /&gt;
plot(xp, yp, 'k', 'LineWidth', 1.5);&lt;br /&gt;
&lt;br /&gt;
% Puntos de máximo&lt;br /&gt;
plot(x_max, y_max, 'ro', 'MarkerSize', 7, 'MarkerFaceColor', 'r');&lt;br /&gt;
&lt;br /&gt;
% Vectores dirección del gradiente en los máximos&lt;br /&gt;
quiver(x_max, y_max, u_dir, v_dir, 0.5, 'k', 'LineWidth', 2, 'MaxHeadSize', 0.5);&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
&lt;br /&gt;
% Información por pantalla&lt;br /&gt;
fprintf('La variación máxima del módulo del gradiente es: %.2f\n', max_val);&lt;br /&gt;
fprintf('Se alcanza en los siguientes puntos:\n');&lt;br /&gt;
&lt;br /&gt;
for k = 1:length(x_max)&lt;br /&gt;
    fprintf('Punto %d: x = %.2f, y = %.2f, vector gradiente = [%.2f, %.2f]\n', ...&lt;br /&gt;
        k, x_max(k), y_max(k), u_dir(k), v_dir(k));&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Campo de Desplazamientos==&lt;br /&gt;
El campo de desplazamientos de un sólido se representa mediante un campo vectorial, que indica la dirección y sentido del desplazamiento de cada punto mediante vectores (representados como flechas rojas).&lt;br /&gt;
&lt;br /&gt;
Como se puede observar, los puntos que se encuentran más próximos al punto de aplicación de la fuerza experimentan los desplazamientos más grandes, mientras que los situados más alejados apenas se mueven.&lt;br /&gt;
[[Archivo:Desplazamiento_manuel.jpg|thumb|600px]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
&lt;br /&gt;
h = 0.1; &lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la región &lt;br /&gt;
Condicion = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
&lt;br /&gt;
% Aplicamos Máscara&lt;br /&gt;
X(~Condicion) = NaN;&lt;br /&gt;
Y(~Condicion) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo del Campo de Desplazamientos &lt;br /&gt;
&lt;br /&gt;
Rho = sqrt(X.^2 + Y.^2);&lt;br /&gt;
Theta = atan2(Y, X);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U_theta_val = -1/20 .* Rho.^2 .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ux = -U_theta_val .* sin(Theta);&lt;br /&gt;
Uy = U_theta_val .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Calcular la posición deformada&lt;br /&gt;
&lt;br /&gt;
% Posición final = Posición inicial + Desplazamiento&lt;br /&gt;
X_final = X + Ux;&lt;br /&gt;
Y_final = Y + Uy;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Comparativa&lt;br /&gt;
&lt;br /&gt;
figure('Name', 'Deformación de la Placa', 'Color', 'w');&lt;br /&gt;
&lt;br /&gt;
% PLACA ORIGINAL&lt;br /&gt;
subplot(1, 2, 1);&lt;br /&gt;
% Usamos mesh con Z=0 para dibujar la 'rejilla' plana&lt;br /&gt;
mesh(X, Y, zeros(size(X)), 'EdgeColor', 'b');&lt;br /&gt;
view(2); % Vista superior (2D)&lt;br /&gt;
axis equal; grid on;&lt;br /&gt;
title('Placa antes del desplazamiento');&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
&lt;br /&gt;
% PLACA DEFORMADA &lt;br /&gt;
subplot(1, 2, 2);&lt;br /&gt;
mesh(X_final, Y_final, zeros(size(X)), 'EdgeColor', 'b');&lt;br /&gt;
view(2);&lt;br /&gt;
axis equal; grid on;&lt;br /&gt;
title('Placa después del desplazamiento');&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Apartado 5 &lt;br /&gt;
&lt;br /&gt;
figure('Name', 'Campo Vectorial de Desplazamientos');&lt;br /&gt;
hold on; axis equal; grid on;&lt;br /&gt;
title('Campo de Desplazamientos');&lt;br /&gt;
&lt;br /&gt;
% Dibujamos contorno original de referencia&lt;br /&gt;
plot(X(:), Y(:), '.k', 'MarkerSize', 1);&lt;br /&gt;
&lt;br /&gt;
% Dibujamos los vectores &lt;br /&gt;
quiver(X, Y, Ux, Uy, 0, 'r', 'LineWidth', 1.5);&lt;br /&gt;
&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
xlim([-0.5 4.5]); ylim([-0.5 2.5]);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Desplazamiento del Sólido==&lt;br /&gt;
Debido a la fuerza de magnitud desconocida, el sólido experimenta un desplazamiento descrito por el campo vectorial:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{u}(\rho, \theta) = -\frac{1}{20},\rho^2 \cos \theta ; \vec{e}_\theta&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
El sólido se deforma siguiendo este campo de desplazamientos. Como era de esperar, los puntos más próximos al punto de aplicación de la fuerza son los que sufren los mayores desplazamientos, mientras que los situados más lejos apenas se mueven.&lt;br /&gt;
&lt;br /&gt;
Se adjuntan las gráficas que muestran el desplazamiento sufrido. (Nota: el desplazamiento inferior no se aprecia en la visualización actual; sería necesario ajustar los ejes en el código para visualizarlo correctamente).&lt;br /&gt;
[[Archivo:Apartado6deformacion.png|thumb|1000px]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Definición de Geometría y Desplazamientos&lt;br /&gt;
h = 0.1; % Paso del mallado&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la Región &lt;br /&gt;
&lt;br /&gt;
% Aplicamos máscara &lt;br /&gt;
X(~Condicion) = NaN;&lt;br /&gt;
Y(~Condicion) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo de Desplazamientos&lt;br /&gt;
&lt;br /&gt;
Rho = sqrt(X.^2 + Y.^2);&lt;br /&gt;
Theta = atan2(Y, X);&lt;br /&gt;
&lt;br /&gt;
% Valor escalar de u_theta&lt;br /&gt;
U_theta_val = -1/20 .* Rho.^2 .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
% Proyección a cartesianas &lt;br /&gt;
Ux = -U_theta_val .* sin(Theta);&lt;br /&gt;
Uy = U_theta_val .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
% --- Posición Final Deformada ---&lt;br /&gt;
X_final = X + Ux;&lt;br /&gt;
Y_final = Y + Uy;&lt;br /&gt;
&lt;br /&gt;
% Gráfica Comparativa de Sólidos Mallados &lt;br /&gt;
figure('Name', 'Comparación Antes/Después', 'Color', 'w', 'Position', [100, 100, 1000, 500]);&lt;br /&gt;
&lt;br /&gt;
% Placa Original&lt;br /&gt;
subplot(1, 2, 1);&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
mesh(X, Y, zeros(size(X)), 'EdgeColor', [0 0.7 0.9], 'FaceColor', 'none');&lt;br /&gt;
&lt;br /&gt;
view(2); &lt;br /&gt;
axis equal; &lt;br /&gt;
grid on;&lt;br /&gt;
box on; &lt;br /&gt;
&lt;br /&gt;
title('Placa antes del desplazamiento', 'FontWeight', 'bold');&lt;br /&gt;
xlabel('Eje X');&lt;br /&gt;
ylabel('Eje Y');&lt;br /&gt;
axis([-1.5 4.5 0 2.5]);&lt;br /&gt;
&lt;br /&gt;
% Placa Deformada&lt;br /&gt;
subplot(1, 2, 2);&lt;br /&gt;
hold on;&lt;br /&gt;
% Dibujamos la malla usando las coordenadas finales (X_final, Y_final)&lt;br /&gt;
mesh(X_final, Y_final, zeros(size(X)), 'EdgeColor', [0 0.7 0.9], 'FaceColor', 'none');&lt;br /&gt;
&lt;br /&gt;
view(2);&lt;br /&gt;
axis equal;&lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
&lt;br /&gt;
title('Placa después del desplazamiento', 'FontWeight', 'bold');&lt;br /&gt;
xlabel('Eje X');&lt;br /&gt;
ylabel('Eje Y');&lt;br /&gt;
axis([-1.5 4.5 0 2.5]); &lt;br /&gt;
&lt;br /&gt;
sgtitle('Visualización del Sólido Mallado bajo Deformación'); % Título&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Divergencia==&lt;br /&gt;
La divergencia &amp;lt;math&amp;gt;\nabla \cdot \vec{u}&amp;lt;/math&amp;gt; mide la variación de volumen local en el sólido. En nuestro caso, el cálculo da como resultado:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\nabla \cdot \vec{u} = \frac{y}{20}&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Este resultado indica que la placa experimenta una expansión positiva, que aumenta linealmente con la altura, debido al estiramiento de las fibras superiores.&lt;br /&gt;
&lt;br /&gt;
En la representación gráfica se observa la distribución de la divergencia mediante franjas de color:&lt;br /&gt;
&lt;br /&gt;
En azul se encuentra la base, donde el volumen permanece prácticamente constante.&lt;br /&gt;
&lt;br /&gt;
Hacia la parte superior, el color se degrada progresivamente hasta un rojo intenso, indicando el punto de máxima expansión, independiente de la posición horizontal &lt;br /&gt;
𝑥&lt;br /&gt;
x.&lt;br /&gt;
[[Archivo:divergencia09.png|miniaturadeimagen|derecha|800px|Figura 7]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% Definir Malla y Placa&lt;br /&gt;
h = 0.05;&lt;br /&gt;
[X, Y] = meshgrid(0:h:4, 0:h:2); &lt;br /&gt;
f = @(x) x/8;&lt;br /&gt;
g = @(x) 2 - x/8; &lt;br /&gt;
EnPlaca = (Y &amp;gt;= f(X)) &amp;amp; (Y &amp;lt;= g(X)); &lt;br /&gt;
&lt;br /&gt;
% Divergencia&lt;br /&gt;
Div = Y/20;  &lt;br /&gt;
Div(~EnPlaca) = NaN;  &lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure; clf; hold on;&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]); box on;&lt;br /&gt;
title('Divergencia: Cambio de Volumen');&lt;br /&gt;
xlabel('X'); ylabel('Y');&lt;br /&gt;
&lt;br /&gt;
% Mapa de calor de la Divergencia&lt;br /&gt;
contourf(X, Y, Div, 20, 'LineStyle', 'none');  &lt;br /&gt;
colormap(parula);  &lt;br /&gt;
colorbar;  &lt;br /&gt;
ylabel(colorbar, 'Valor de Divergencia');&lt;br /&gt;
&lt;br /&gt;
% Dibujar bordes de la placa&lt;br /&gt;
x_b = linspace(0, 4, 200);&lt;br /&gt;
plot(x_b, x_b/8, 'k-', 'LineWidth', 1);   &lt;br /&gt;
plot(x_b, 2 - x_b/8, 'k-', 'LineWidth', 1);   &lt;br /&gt;
plot([0 0], [0 2], 'k-', 'LineWidth', 1);   &lt;br /&gt;
plot([4 4], [0 2], 'k-', 'LineWidth', 1);   &lt;br /&gt;
&lt;br /&gt;
% Señalar puntos clave (cambié las estrellas por círculos)&lt;br /&gt;
plot(0, 2, 'go', 'MarkerSize', 12, 'MarkerFaceColor', 'g');&lt;br /&gt;
text(0.1, 2.05, 'Max Expansión', 'FontWeight', 'bold', 'Color', 'g');&lt;br /&gt;
&lt;br /&gt;
plot(0, 0, 'ro', 'MarkerSize', 12, 'MarkerFaceColor', 'r');  &lt;br /&gt;
text(0.1, -0.05, 'Divergencia Nula', 'FontWeight', 'bold', 'Color', 'r');&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
saveas(gcf,'divergencia09.png');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rotacional==&lt;br /&gt;
Se calcula el rotacional &amp;lt;math&amp;gt;|\nabla \times \vec{u}|&amp;lt;/math&amp;gt; en todos los puntos del sólido.&lt;br /&gt;
&lt;br /&gt;
Los resultados muestran que los puntos más alejados del origen y alineados con el eje 𝑥&lt;br /&gt;
x experimentan los mayores valores de rotacional, indicando que estas zonas sufren la mayor rotación local debido al campo de desplazamientos aplicado.&lt;br /&gt;
[[Archivo:rotacional09.png|600px|thumb|1000px]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Divergencia&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% Definir Malla y Región&lt;br /&gt;
h = 0.05;               &lt;br /&gt;
x = 0:h:4;              &lt;br /&gt;
y = 0:h:2;              &lt;br /&gt;
[X, Y] = meshgrid(x, y); &lt;br /&gt;
&lt;br /&gt;
% Definición de la placa&lt;br /&gt;
Condition = (Y &amp;gt;= X/8) &amp;amp; (Y &amp;lt;= 2 - X/8);  &lt;br /&gt;
X(~Condition) = NaN;&lt;br /&gt;
Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo del Rotacional&lt;br /&gt;
Rotacional = 0.15 .* X; &lt;br /&gt;
&lt;br /&gt;
% Gráfica en 3D &lt;br /&gt;
figure('Name', 'Rotacional en 3D', 'Color', 'w'); &lt;br /&gt;
&lt;br /&gt;
s = surf(X, Y, Rotacional);&lt;br /&gt;
&lt;br /&gt;
% Estética de la gráfica 3D&lt;br /&gt;
shading interp;  &lt;br /&gt;
colormap(spring); &lt;br /&gt;
alpha(0.9);  &lt;br /&gt;
&lt;br /&gt;
% Ajuste de la vista para la inclinación&lt;br /&gt;
view(45, 30);  &lt;br /&gt;
axis tight;&lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
&lt;br /&gt;
% nombres a los ejes y título&lt;br /&gt;
title('Magnitud del Rotacional a lo largo del eje X');&lt;br /&gt;
xlabel('Eje X (Posición)', 'FontSize', 12, 'FontWeight', 'bold');&lt;br /&gt;
ylabel('Eje Y (Posición)', 'FontSize', 12, 'FontWeight', 'bold');&lt;br /&gt;
zlabel('Magnitud del Rotacional', 'FontSize', 12, 'FontWeight', 'bold');&lt;br /&gt;
&lt;br /&gt;
% barra de colores&lt;br /&gt;
c = colorbar;&lt;br /&gt;
c.Label.String = 'Magnitud';&lt;br /&gt;
c.FontSize = 12;&lt;br /&gt;
&lt;br /&gt;
% Puntos Clave &lt;br /&gt;
hold on;&lt;br /&gt;
plot3(0, 2, 0.6, 'go', 'MarkerSize', 12, 'MarkerFaceColor', 'g');  % Max Expansión&lt;br /&gt;
text(0.1, 2.05, 'Max Expansión', 'FontWeight', 'bold', 'Color', 'g');&lt;br /&gt;
&lt;br /&gt;
plot3(0, 0, 0.1, 'bo', 'MarkerSize', 12, 'MarkerFaceColor', 'b');  % Divergencia Nula&lt;br /&gt;
text(0.1, -0.05, 'Divergencia Nula', 'FontWeight', 'bold', 'Color', 'b');&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Tensores Deformacionales==&lt;br /&gt;
Se define el tensor de deformaciones como la parte simétrica del gradiente del campo de desplazamientos &amp;lt;math&amp;gt;\vec{u}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\varepsilon(\vec{u}) = \frac{1}{2} \big( \nabla \vec{u} + (\nabla \vec{u})^T \big)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En un medio elástico lineal, isótropo y homogéneo, los desplazamientos permiten expresar el tensor de tensiones &amp;lt;math&amp;gt;\sigma&amp;lt;/math&amp;gt; mediante la relación de Hooke generalizada:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\sigma = \lambda , (\nabla \cdot \vec{u}) , I + 2 \mu , \varepsilon(\vec{u})&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
donde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; es el tensor identidad en &amp;lt;math&amp;gt;\mathbb{R}^3&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; son los coeficientes de Lamé, que dependen de las propiedades elásticas del material.&lt;br /&gt;
&lt;br /&gt;
Tomando &amp;lt;math&amp;gt;\lambda = \mu = 1&amp;lt;/math&amp;gt;, se representan las tensiones normales en las direcciones de los ejes coordenados:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{i} \cdot \sigma \cdot \vec{i}&amp;lt;/math&amp;gt; — tensión normal en la dirección del eje &lt;br /&gt;
𝑥&lt;br /&gt;
x,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{j} \cdot \sigma \cdot \vec{j}&amp;lt;/math&amp;gt; — tensión normal en la dirección del eje &lt;br /&gt;
𝑦&lt;br /&gt;
y,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{k} \cdot \sigma \cdot \vec{k}&amp;lt;/math&amp;gt; — tensión normal en la dirección del eje &lt;br /&gt;
𝑧&lt;br /&gt;
z.&lt;br /&gt;
&lt;br /&gt;
Solo se representan las componentes no nulas, mostrando cómo se distribuyen las tensiones normales en el sólido bajo el campo de desplazamientos aplicado.&lt;br /&gt;
[[Archivo:tensoresdeformacionales09.png|miniaturadeimagen|derecha|800px|Figura 9]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%% Apartado 9 (Versión 2D): Tensiones Normales&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% Definición de Geometría y Material&lt;br /&gt;
h = 0.1;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Placa J (Trapecio)&lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
X(~Condition) = NaN; Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
lambda = 1; mu = 1;&lt;br /&gt;
&lt;br /&gt;
% Cálculo de Componentes&lt;br /&gt;
% Deformaciones y Divergencia&lt;br /&gt;
Div_u = Y ./ 20;&lt;br /&gt;
Eps_xx = Y ./ 20;&lt;br /&gt;
Eps_yy = zeros(size(X));&lt;br /&gt;
% Eps_zz es 0&lt;br /&gt;
&lt;br /&gt;
% Tensiones Normales (Sigma = lambda*Div*I + 2*mu*Eps)&lt;br /&gt;
Sig_xx = lambda .* Div_u + 2 .* mu .* Eps_xx; &lt;br /&gt;
Sig_yy = lambda .* Div_u + 2 .* mu .* Eps_yy; &lt;br /&gt;
Sig_zz = lambda .* Div_u; &lt;br /&gt;
Sig_xy = 2 .* mu .* (-X./40);&lt;br /&gt;
&lt;br /&gt;
% Gráfica 2D (Subplot)&lt;br /&gt;
figure('Name', 'Apartado 9: Tensiones Normales (2D)', 'Color', 'w', 'Position', [100, 100, 1200, 400]);&lt;br /&gt;
&lt;br /&gt;
% XX&lt;br /&gt;
subplot(1, 3, 1);&lt;br /&gt;
contourf(X, Y, Sig_xx, 20, 'LineColor', 'none');&lt;br /&gt;
colormap(spring);  % Cambiar la paleta de colores&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]); colorbar;&lt;br /&gt;
title('Tensión Normal en X', 'Interpreter', 'latex');&lt;br /&gt;
xlabel('X'); ylabel('Y');&lt;br /&gt;
&lt;br /&gt;
% YY&lt;br /&gt;
subplot(1, 3, 2);&lt;br /&gt;
contourf(X, Y, Sig_yy, 20, 'LineColor', 'none');&lt;br /&gt;
colormap(spring);  % Cambiar la paleta de colores&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]); colorbar;&lt;br /&gt;
title('Tensión Normal en Y', 'Interpreter', 'latex');&lt;br /&gt;
xlabel('X'); ylabel('Y');&lt;br /&gt;
&lt;br /&gt;
% ZZ&lt;br /&gt;
subplot(1, 3, 3);&lt;br /&gt;
contourf(X, Y, Sig_zz, 20, 'LineColor', 'none');&lt;br /&gt;
colormap(spring);  % Cambiar la paleta de colores&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]); colorbar;&lt;br /&gt;
title('Tensión Normal en Z', 'Interpreter', 'latex');&lt;br /&gt;
xlabel('X'); ylabel('Y');&lt;br /&gt;
&lt;br /&gt;
sgtitle('Componentes Normales del Tensor de Tensiones', 'Interpreter', 'latex');&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tensiones tangenciales==&lt;br /&gt;
Se representan las tensiones tangenciales respecto al plano ortogonal al eje &amp;lt;math&amp;gt;\vec{i}&amp;lt;/math&amp;gt;, definidas como:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;|\sigma \cdot \vec{i} - (\vec{i} \cdot \sigma \cdot \vec{i}) , \vec{i}|&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En la gráfica se muestran únicamente las componentes no nulas, permitiendo visualizar las tensiones tangenciales que actúan sobre los planos perpendiculares al eje &lt;br /&gt;
𝑥&lt;br /&gt;
x.&lt;br /&gt;
[[Archivo:tensiontanggrupo09.png|600px|thumb]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representación del vector de tensión tangencial&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% 1) Crear la malla&lt;br /&gt;
paso = 0.15;&lt;br /&gt;
[X, Y] = meshgrid(0:paso:4, 0:paso:2);&lt;br /&gt;
&lt;br /&gt;
% 2) Zona válida (la placa con forma trapezoidal)&lt;br /&gt;
bajo  = X/8;&lt;br /&gt;
alto  = 2 - X/8;&lt;br /&gt;
&lt;br /&gt;
enZona = (Y &amp;gt;= bajo) &amp;amp; (Y &amp;lt;= alto);&lt;br /&gt;
&lt;br /&gt;
% Quitar puntos fuera&lt;br /&gt;
X(~enZona) = NaN;&lt;br /&gt;
Y(~enZona) = NaN;&lt;br /&gt;
&lt;br /&gt;
% 3) Tensión tangencial τ_xy&lt;br /&gt;
tau_xy = -X/20;&lt;br /&gt;
&lt;br /&gt;
% 4) Componentes del vector&lt;br /&gt;
u_comp = zeros(size(X));   % componente horizontal&lt;br /&gt;
v_comp = tau_xy;           % componente vertical&lt;br /&gt;
&lt;br /&gt;
% 5) Dibujar el campo vectorial&lt;br /&gt;
figure('Name','Tensión tangencial','Color','w');&lt;br /&gt;
&lt;br /&gt;
quiver(X, Y, u_comp, v_comp, 'r', 'LineWidth', 1);&lt;br /&gt;
&lt;br /&gt;
title('Campo de Tensión Tangencial \tau_{xy}');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
&lt;br /&gt;
axis equal;&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&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 mediante la expresión:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma_{VM} = \sqrt{\frac{(\sigma_1 - \sigma_2)^2 + (\sigma_2 - \sigma_3)^2 + (\sigma_3 - \sigma_1)^2}{2}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Esta fórmula combina las diferencias entre las tensiones principales (𝜎1,𝜎2,𝜎3σ1,σ2,σ3) y permite calcular el esfuerzo equivalente que experimenta el material, útil para evaluar la resistencia frente a la plasticidad o el fallo.&lt;br /&gt;
[[Archivo:vonmisesgrupo09.png|miniaturadeimagen|derecha|700px|Figura 11]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
% Cálculo de tensiones y Von Mises en una placa&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% 1) Crear la malla&lt;br /&gt;
paso = 0.1;&lt;br /&gt;
[X, Y] = meshgrid(0:paso:4, 0:paso:2);&lt;br /&gt;
&lt;br /&gt;
% Límites del trapecio&lt;br /&gt;
limInf = X/8;&lt;br /&gt;
limSup = 2 - X/8;&lt;br /&gt;
zona = (Y &amp;gt;= limInf) &amp;amp; (Y &amp;lt;= limSup);&lt;br /&gt;
&lt;br /&gt;
% 2) Definir desplazamientos u_x y u_y&lt;br /&gt;
ux = (X.*Y)/20;&lt;br /&gt;
uy = -(X.^2)/20;&lt;br /&gt;
&lt;br /&gt;
% Derivadas conocidas&lt;br /&gt;
ux_x = Y/20;&lt;br /&gt;
ux_y = X/20;&lt;br /&gt;
uy_x = -X/10;&lt;br /&gt;
uy_y = zeros(size(X));&lt;br /&gt;
&lt;br /&gt;
divU = ux_x + uy_y;&lt;br /&gt;
&lt;br /&gt;
% 3) Tensiones (lambda = mu = 1)&lt;br /&gt;
lambda = 1;&lt;br /&gt;
mu = 1;&lt;br /&gt;
&lt;br /&gt;
% Deformaciones&lt;br /&gt;
exx = ux_x;&lt;br /&gt;
eyy = uy_y;&lt;br /&gt;
exy = 0.5 * (ux_y + uy_x);&lt;br /&gt;
ezz = zeros(size(X));&lt;br /&gt;
&lt;br /&gt;
% Tensiones&lt;br /&gt;
sxx = lambda*divU + 2*mu*exx;&lt;br /&gt;
syy = lambda*divU + 2*mu*eyy;&lt;br /&gt;
szz = lambda*divU + 2*mu*ezz;&lt;br /&gt;
sxy = 2*mu*exy;&lt;br /&gt;
&lt;br /&gt;
% 4) Cálculo de Von Mises usando autovalores&lt;br /&gt;
VM = NaN(size(X));&lt;br /&gt;
&lt;br /&gt;
% Guardar índices dentro de la zona&lt;br /&gt;
[I,J] = find(zona);&lt;br /&gt;
N = length(I);&lt;br /&gt;
&lt;br /&gt;
for k = 1:N&lt;br /&gt;
    r = I(k);&lt;br /&gt;
    c = J(k);&lt;br /&gt;
&lt;br /&gt;
    % Matriz sigma&lt;br /&gt;
    S = [sxx(r,c) sxy(r,c) 0;&lt;br /&gt;
         sxy(r,c) syy(r,c) 0;&lt;br /&gt;
         0        0        szz(r,c)];&lt;br /&gt;
&lt;br /&gt;
    % Autovalores&lt;br /&gt;
    vals = eig(S);&lt;br /&gt;
    &lt;br /&gt;
    s1 = vals(1);&lt;br /&gt;
    s2 = vals(2);&lt;br /&gt;
    s3 = vals(3);&lt;br /&gt;
&lt;br /&gt;
    % Von Mises&lt;br /&gt;
    VM(r,c) = sqrt( ( (s1-s2)^2 + (s2-s3)^2 + (s3-s1)^2 ) / 2 );&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% 5) Encontrar máximo&lt;br /&gt;
[maxVM, idx] = max(VM(:));&lt;br /&gt;
[fMax, cMax] = ind2sub(size(VM), idx);&lt;br /&gt;
xMax = X(fMax, cMax);&lt;br /&gt;
yMax = Y(fMax, cMax);&lt;br /&gt;
&lt;br /&gt;
% 6) Gráfico&lt;br /&gt;
figure;&lt;br /&gt;
contourf(X, Y, VM, 30, 'LineStyle','none');&lt;br /&gt;
colorbar;&lt;br /&gt;
title('Tensión de Von Mises');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
&lt;br /&gt;
% Bordes&lt;br /&gt;
xx = linspace(0,4,200);&lt;br /&gt;
hold on;&lt;br /&gt;
plot(xx, xx/8, 'k','LineWidth',1.3);&lt;br /&gt;
plot(xx, 2-xx/8,'k','LineWidth',1.3);&lt;br /&gt;
plot([0 0],[0 2],'k','LineWidth',1.3);&lt;br /&gt;
plot([4 4],[0.5 1.5],'k','LineWidth',1.3);&lt;br /&gt;
&lt;br /&gt;
% Punto máximo&lt;br /&gt;
plot(xMax, yMax, 'ro','MarkerFaceColor','r');&lt;br /&gt;
text(xMax+0.1, yMax+0.1, sprintf('VM = %.3g', maxVM), 'Color','r');&lt;br /&gt;
&lt;br /&gt;
fprintf('Máx Von Mises = %.6g en (%.3f , %.3f)\n', maxVM, xMax, yMax);&lt;br /&gt;
hold off;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Campo de Fuerzas==&lt;br /&gt;
&lt;br /&gt;
El campo de fuerzas &amp;lt;math&amp;gt;\vec{F}&amp;lt;/math&amp;gt; que actúa sobre la placa, y que es responsable del desplazamiento observado, se puede aproximar mediante la ecuación de la elasticidad lineal:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{F} = - \operatorname{div} \sigma&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt;\operatorname{div} \sigma&amp;lt;/math&amp;gt; es la divergencia de un campo tensorial. En coordenadas cartesianas, se expresa como:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\operatorname{div} \sigma = (\operatorname{div} \sigma)_1 , \vec{i} + (\operatorname{div} \sigma)_2 , \vec{j} + (\operatorname{div} \sigma)3 , \vec{k}, \quad (\operatorname{div} \sigma)i = \sum{j=1}^{3} \frac{\partial \sigma{ij}}{\partial x_j}&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Esta formulación permite calcular, a partir del tensor de tensiones, el campo de fuerzas internas que genera los desplazamientos de la placa.&lt;br /&gt;
[[Archivo:campofuerzasgrupo09.png|700px|thumb]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Evaluación del Campo de Cargas Internas&lt;br /&gt;
clear; clc; close all;&lt;br /&gt;
&lt;br /&gt;
% 1. Generación del mallado sobre la región trapezoidal&lt;br /&gt;
dx = 0.1;&lt;br /&gt;
X = 0:dx:4;&lt;br /&gt;
Y = 0:dx:2;&lt;br /&gt;
[XX, YY] = meshgrid(X, Y);&lt;br /&gt;
&lt;br /&gt;
% Definición del dominio trapezoidal&lt;br /&gt;
enDominio = (YY &amp;gt;= XX/8) &amp;amp; (YY &amp;lt;= 2 - XX/8);&lt;br /&gt;
XX(~enDominio) = NaN;&lt;br /&gt;
YY(~enDominio) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Parámetros elásticos&lt;br /&gt;
lam = 1; &lt;br /&gt;
mus = 1;&lt;br /&gt;
&lt;br /&gt;
% 2. Tensiones: cálculo a partir del campo de deformación&lt;br /&gt;
divU = YY / 20;        % Divergencia&lt;br /&gt;
eps_xx = YY / 20;      % Deformación xx&lt;br /&gt;
eps_yy = zeros(size(XX));  % Deformación yy (nula)&lt;br /&gt;
&lt;br /&gt;
% Componentes del tensor de tensiones&lt;br /&gt;
Sxx = lam .* divU + 2 .* mus .* eps_xx;&lt;br /&gt;
Syy = lam .* divU + 2 .* mus .* eps_yy;&lt;br /&gt;
Sxy = -XX / 20;&lt;br /&gt;
&lt;br /&gt;
% 3. Divergencia del tensor (fuerzas volumétricas)&lt;br /&gt;
% F = -∇·σ&lt;br /&gt;
[dSxx_dx, dSxx_dy] = gradient(Sxx, dx, dx);&lt;br /&gt;
[dSxy_dx, dSxy_dy] = gradient(Sxy, dx, dx);&lt;br /&gt;
[dSyy_dx, dSyy_dy] = gradient(Syy, dx, dx);&lt;br /&gt;
&lt;br /&gt;
Fx = -(dSxx_dx + dSxy_dy);&lt;br /&gt;
Fy = -(dSxy_dx + dSyy_dy);&lt;br /&gt;
&lt;br /&gt;
% 4. Evaluación de la magnitud máxima del campo F&lt;br /&gt;
magnF = sqrt(Fx.^2 + Fy.^2);&lt;br /&gt;
valorMax = max(magnF(:));&lt;br /&gt;
&lt;br /&gt;
fprintf('--- Verificación del equilibrio ---\n');&lt;br /&gt;
fprintf('Máximo valor de |F| = %e\n', valorMax);&lt;br /&gt;
if valorMax &amp;lt; 1e-10&lt;br /&gt;
    fprintf('Conclusión: Se verifica equilibrio estático (F≈0).\n');&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% 5. Representación gráfica&lt;br /&gt;
figure('Name', 'Fuerzas Internas - Verificación', 'Color', 'w');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
quiver(XX, YY, Fx, Fy, 'b');&lt;br /&gt;
&lt;br /&gt;
% Contorno del dominio&lt;br /&gt;
plot([0 4 4 0 0], [0 0.5 1.5 2 0], 'r--', 'LineWidth', 1.2);&lt;br /&gt;
&lt;br /&gt;
title('Distribución del Campo de Fuerzas Internas');&lt;br /&gt;
xlabel('Coordenada X');&lt;br /&gt;
ylabel('Coordenada Y');&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&lt;br /&gt;
&lt;br /&gt;
text(1.2, 1, {'F ≈ 0 en todo el cuerpo','(Equilibrio comprobado)'}, ...&lt;br /&gt;
    'Color', 'm', 'FontWeight', 'bold', 'HorizontalAlignment', 'center');&lt;br /&gt;
&lt;br /&gt;
hold off;}}&lt;br /&gt;
&lt;br /&gt;
==Densidad==&lt;br /&gt;
[[Archivo:masatotalgrupo09.png|miniaturadeimagen|derecha|800px|Figura 10]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
%Cálculo de la Masa Total&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% 1.Mallado&lt;br /&gt;
h = 0.01;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% 2. Placa &lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);   % *** corregido ***&lt;br /&gt;
&lt;br /&gt;
% 3. Densidad&lt;br /&gt;
Densidad = (4 - X) .* abs(Y);&lt;br /&gt;
&lt;br /&gt;
% Densidad fuera de la placa = 0&lt;br /&gt;
Densidad(~Condition) = 0;&lt;br /&gt;
&lt;br /&gt;
% 4. Masa&lt;br /&gt;
dA = h * h;&lt;br /&gt;
Masa_Total = sum(Densidad(:)) * dA;&lt;br /&gt;
&lt;br /&gt;
% 5. Gráfica única&lt;br /&gt;
figure('Name','Densidad','Color','w');&lt;br /&gt;
&lt;br /&gt;
step_plot = 10;&lt;br /&gt;
&lt;br /&gt;
surf(X(1:step_plot:end, 1:step_plot:end), ...&lt;br /&gt;
     Y(1:step_plot:end, 1:step_plot:end), ...&lt;br /&gt;
     Densidad(1:step_plot:end, 1:step_plot:end));&lt;br /&gt;
&lt;br /&gt;
shading interp;&lt;br /&gt;
colormap(cool); &lt;br /&gt;
colorbar;&lt;br /&gt;
&lt;br /&gt;
title('Distribución de Densidad d(x,y) = (4-x)|y|');&lt;br /&gt;
xlabel('X'); ylabel('Y'); zlabel('Densidad');&lt;br /&gt;
view(45,30); grid on; axis tight;&lt;br /&gt;
hold off;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ejemplos de uso en la ingeniería ==&lt;br /&gt;
&lt;br /&gt;
Las vigas en voladizo destacan por su forma y por la versatilidad que ofrecen, lo que las convierte en un elemento muy empleado en distintos ámbitos. Algunos de sus usos más frecuentes son:&lt;br /&gt;
&lt;br /&gt;
• Arquitectura: se utilizan en balcones, terrazas, marquesinas o cubiertas de acceso.&lt;br /&gt;
• Maquinaria: forman parte de brazos de grúas y de las palas de los aerogeneradores.&lt;br /&gt;
• Ingeniería: se aplican en la construcción de puentes en voladizo y en diferentes componentes estructurales.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Bibliografía==&lt;br /&gt;
&lt;br /&gt;
Para la realización del trabajo nos hemos apoyado en:&lt;br /&gt;
* MATLAB (Creación de gráficas).&lt;br /&gt;
* Apuntes de clase y los proporcionados por la escuela (aportación teórica).&lt;br /&gt;
* Trabajos de años anteriores.&lt;br /&gt;
* Chat GPT y Copilot M365 (ayuda con los códigos Matlab y con la comprensión del ejercicio).&lt;/div&gt;</summary>
		<author><name>Alejandro.Morales</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Placa_Plana_(Grupo_09)&amp;diff=96056</id>
		<title>Placa Plana (Grupo 09)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Placa_Plana_(Grupo_09)&amp;diff=96056"/>
				<updated>2025-12-03T11:25:31Z</updated>
		
		<summary type="html">&lt;p&gt;Alejandro.Morales: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Placa plana. Grupo 09 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC25/26|2025-26]] | Rafael Gonzalez Gomez &amp;lt;br/&amp;gt; Mario Belinchón Buendía &amp;lt;br/&amp;gt;Alejandro Morales Tari&amp;lt;br/&amp;gt;  Pablo Márquez Blanco}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Teoría de Campos]]&lt;br /&gt;
[[Categoría:TC25/26]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
&lt;br /&gt;
Consideramos la sección longitudinal de una viga en voladizo de geometría rectangular (en dimensión 2). Esta viga ocupa la región mostrada en la Figura 1, y permanece anclada en la pared vertical situada en el lado izquierdo. La zona que vamos a estudiar se describe mediante:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
(x,y) \in [0,4] \times [f(x),, g(x)],&lt;br /&gt;
\qquad&lt;br /&gt;
f(x)=\frac{x}{8},&lt;br /&gt;
\qquad&lt;br /&gt;
g(x)= 2-\frac{x}{8}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En esta placa se consideran dos magnitudes físicas relevantes.&lt;br /&gt;
La primera es el campo de temperaturas, modelado por la función:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
T(x,y)=\big(1+(y-1)^2\big),(4-x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
La segunda magnitud corresponde al campo de desplazamientos &amp;lt;math&amp;gt;\vec u(x,y)&amp;lt;/math&amp;gt;, producido por una fuerza externa —cuyo valor exacto no conocemos— y que deforma la placa.&lt;br /&gt;
&lt;br /&gt;
Para describir la deformación, sea&lt;br /&gt;
&amp;lt;math&amp;gt;\vec r_0(x,y)=x,\vec i + y,\vec j&amp;lt;/math&amp;gt;&lt;br /&gt;
el vector de posición inicial de cada punto. Entonces, tras aplicarse la fuerza, la nueva posición de un punto queda dada por:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\vec r_d(x,y)=\vec r_0(x,y)+\vec u(x,y)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Supondremos que la fuerza aplicada induce un desplazamiento expresado, en coordenadas polares &amp;lt;math&amp;gt;(\rho,\theta)&amp;lt;/math&amp;gt;, mediante:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\vec u(\rho,\theta)= -\frac{1}{20},\rho^2\cos\theta ; \vec e_\theta&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Este modelo permite estudiar tanto la distribución térmica en la viga como la deformación resultante, proporcionando una base adecuada para analizar su comportamiento estructural.&lt;br /&gt;
&lt;br /&gt;
==Mallado==&lt;br /&gt;
Para comenzar, construiremos un mallado de la sección longitudinal que nos permita representar los puntos interiores del sólido. Para ello, hemos empleado un paso de muestreo de&lt;br /&gt;
&amp;lt;math&amp;gt;h = \tfrac{1}{10}&amp;lt;/math&amp;gt;&lt;br /&gt;
y hemos definido la malla sobre el rectángulo que delimita los ejes coordenados:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt; (x, y) \in [-1,, 5] \times [-1,, 3] &amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Este mallado servirá como base para discretizar la región de interés y facilitar los cálculos posteriores.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:mimallado.png|thumb|700px|]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
h = 1/10;&lt;br /&gt;
color_malla = [0, 1, 0]; % Color &lt;br /&gt;
&lt;br /&gt;
% Coordenadas&lt;br /&gt;
u = 0 : h : 4;&lt;br /&gt;
v = 0 : h : 2;&lt;br /&gt;
[U, V] = meshgrid(u, v);&lt;br /&gt;
&lt;br /&gt;
% Calculamos los bordes &lt;br /&gt;
y_abajo = U ./ 8;&lt;br /&gt;
y_arriba = 2 - (U ./ 8);&lt;br /&gt;
&lt;br /&gt;
% Interpolamos&lt;br /&gt;
factor_altura = V ./ 2; % Va de 0 (abajo) a 1 (arriba)&lt;br /&gt;
&lt;br /&gt;
X = U;&lt;br /&gt;
Y = y_abajo + factor_altura .* (y_arriba - y_abajo);&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Color', 'w'); hold on;&lt;br /&gt;
&lt;br /&gt;
% Dibujar las líneas VERTICALES&lt;br /&gt;
plot(X, Y, 'Color', color_malla, 'LineWidth', 0.25);&lt;br /&gt;
&lt;br /&gt;
% Dibujar las líneas HORIZONTALES&lt;br /&gt;
plot(X', Y', 'Color', color_malla, 'LineWidth', 0.25);&lt;br /&gt;
&lt;br /&gt;
% Dibujar el contorno &lt;br /&gt;
plot(u, u./8, 'k-', 'LineWidth', 2); % Borde Abajo&lt;br /&gt;
plot(u, 2 - u./8, 'k-', 'LineWidth', 2); % Borde Arriba&lt;br /&gt;
plot([0 0], [0 2], 'k-', 'LineWidth', 2); % Borde Izquierdo&lt;br /&gt;
plot([4 4], [0.5 1.5], 'k-', 'LineWidth', 2); % Borde Derecho&lt;br /&gt;
&lt;br /&gt;
% Configuración final&lt;br /&gt;
axis([-1 5 -1 3]); % Zoom/Encuadre exacto&lt;br /&gt;
xlabel('x'); ylabel('y');&lt;br /&gt;
title('Mallado de la placa plana');&lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Curvas de nivel==&lt;br /&gt;
A continuación se representan las curvas de nivel de la temperatura con el fin de identificar visualmente la zona donde esta alcanza su valor máximo. A partir de la gráfica puede apreciarse que los puntos donde la temperatura es mayor son:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;(x,y) = (0,0) \quad \text{y} \quad (0,2)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Además, calculamos el gradiente de la temperatura para analizar la dirección de mayor variación de esta magnitud. El gradiente viene dado por:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\nabla T(x,y)&lt;br /&gt;
= \left( \frac{\partial T}{\partial x},, \frac{\partial T}{\partial y} \right)&lt;br /&gt;
= \Big( -\big(1+(y-1)^2\big),; (4-x)\cdot 2(y-1) \Big).&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En la representación gráfica se observa que el vector gradiente es ortogonal a las curvas de nivel, tal como establece la teoría: apunta siempre en la dirección de crecimiento más rápido de la temperatura.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:curvadenivel.jpeg|miniaturadeimagen|derecha|800px|Figura 2]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
% Definición &lt;br /&gt;
h=0.1;               &lt;br /&gt;
x=0:h:4;                  &lt;br /&gt;
y=0:h:2;           &lt;br /&gt;
[X,Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Funciones  &lt;br /&gt;
f=@(x)x./8;  &lt;br /&gt;
g=@(x)2-x./8;  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EnPlaca=Y&amp;gt;=f(X)&amp;amp;Y&amp;lt; g(X);&lt;br /&gt;
&lt;br /&gt;
% Definición de la Temperatura y el Gradiente&lt;br /&gt;
&lt;br /&gt;
T=(1+(Y-1).^2).*(4-X);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
T_plot=T;&lt;br /&gt;
T_plot(~EnPlaca)=NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo numérico del gradiente para los vectores &lt;br /&gt;
&lt;br /&gt;
U=-(1+(Y-1).^2);          &lt;br /&gt;
V=2.*(Y-1).*(4-X);   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U(~EnPlaca)=NaN;&lt;br /&gt;
V(~EnPlaca)=NaN;&lt;br /&gt;
&lt;br /&gt;
% Gráfica&lt;br /&gt;
figure(1);&lt;br /&gt;
clf; &lt;br /&gt;
hold on;&lt;br /&gt;
axis equal; &lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&lt;br /&gt;
title({'Isotermas y Gradiente \nabla T', 'T(x,y) = (1+(y-1)^2)(4-x)'});&lt;br /&gt;
xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
% Mapa de calor &lt;br /&gt;
[C_fill, h_fill] = contourf(X, Y, T_plot, 20, 'LineStyle', 'none');&lt;br /&gt;
colormap(jet); &lt;br /&gt;
cb=colorbar;&lt;br /&gt;
ylabel(cb,'Temperatura T');&lt;br /&gt;
&lt;br /&gt;
% Curvas de nivel&lt;br /&gt;
[C, h_cont]=contour(X,Y,T_plot,10,'k','LineWidth',1.5);&lt;br /&gt;
clabel(C,h_cont,'FontSize',9,'Color','k','FontWeight','bold');&lt;br /&gt;
&lt;br /&gt;
% Campo Vectorial &lt;br /&gt;
&lt;br /&gt;
step=3; &lt;br /&gt;
quiver(X(1:step:end,1:step:end),Y(1:step:end, 1:step:end), ...&lt;br /&gt;
U(1:step:end,1:step:end),V(1:step:end,1:step:end), ...&lt;br /&gt;
1.2,'k','LineWidth',1); % '1.2' es el factor de escala de las flechas&lt;br /&gt;
&lt;br /&gt;
% Dibujar bordes de la placa&lt;br /&gt;
plot(x,f(x),'k-','LineWidth',2);&lt;br /&gt;
plot(x,g(x),'k-','LineWidth',2); &lt;br /&gt;
plot([0 0],[f(0) g(0)],'k-','LineWidth',2); &lt;br /&gt;
plot([4 4],[f(4) g(4)],'k-','LineWidth',2); &lt;br /&gt;
&lt;br /&gt;
% Señalar Máximo&lt;br /&gt;
plot(0,0,'rp','MarkerSize',12,'MarkerFaceColor','r');&lt;br /&gt;
plot(0,2,'rp','MarkerSize',12,'MarkerFaceColor','r');&lt;br /&gt;
text(0.1,0,'Max T','Color','white','FontWeight','bold');&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ley de Fourier==&lt;br /&gt;
Según la ley de Fourier, el flujo de energía calorífica &amp;lt;math&amp;gt;\vec{Q}&amp;lt;/math&amp;gt; viene dado por:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{Q} = -\kappa , \nabla T&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt;\kappa&amp;lt;/math&amp;gt; representa la conductividad térmica del material. En nuestro caso, consideramos&lt;br /&gt;
&amp;lt;math&amp;gt;\kappa = 1&amp;lt;/math&amp;gt;, de modo que la expresión se simplifica a:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{Q} = - \nabla T&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Bajo esta suposición, en la representación gráfica puede apreciarse que el flujo calorífico es simplemente el opuesto del gradiente de la temperatura, señalando siempre la dirección de máxima disminución térmica.&lt;br /&gt;
[[Archivo:vectorflujocalor.png|thumb|700px|]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Mallado y dominio geométrico&lt;br /&gt;
paso = 0.2;&lt;br /&gt;
xx = 0:paso:4;&lt;br /&gt;
yy = 0:paso:2;&lt;br /&gt;
[X, Y] = meshgrid(xx, yy);&lt;br /&gt;
&lt;br /&gt;
% Bordes superior e inferior de la región física&lt;br /&gt;
lim_inf = X / 8;&lt;br /&gt;
lim_sup = 2 - X / 8;&lt;br /&gt;
&lt;br /&gt;
% Máscara lógica: puntos válidos&lt;br /&gt;
zona = (Y &amp;gt;= lim_inf) &amp;amp; (Y &amp;lt;= lim_sup);&lt;br /&gt;
&lt;br /&gt;
% Campo escalar de temperatura&lt;br /&gt;
Temp = (1 + (Y - 1).^2) .* (4 - X);   % misma función, escrita directamente&lt;br /&gt;
Temp(~zona) = NaN;                   % filtrado de la zona útil&lt;br /&gt;
&lt;br /&gt;
% Gradiente numérico y flujo térmico&lt;br /&gt;
% gradient devuelve: [dT/dy , dT/dx]&lt;br /&gt;
[dTy, dTx] = gradient(Temp, paso);&lt;br /&gt;
&lt;br /&gt;
flujo_x = -dTx;    % Ley de Fourier en 2D&lt;br /&gt;
flujo_y = -dTy;&lt;br /&gt;
&lt;br /&gt;
flujo_x(~zona) = NaN;&lt;br /&gt;
flujo_y(~zona) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Representación gráfica&lt;br /&gt;
fig = figure('Color','white','Name','Mapa de flujo térmico');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
% Campo escalar coloreado&lt;br /&gt;
contourf(X, Y, Temp, 20, 'LineStyle','none');&lt;br /&gt;
colormap jet;&lt;br /&gt;
&lt;br /&gt;
% Indicador de escala&lt;br /&gt;
barra = colorbar;&lt;br /&gt;
barra.Label.String = 'T(x,y)';&lt;br /&gt;
barra.Label.FontSize = 10;&lt;br /&gt;
&lt;br /&gt;
% Representación vectorial del flujo&lt;br /&gt;
quiver(X, Y, flujo_x, flujo_y, 'k', ...&lt;br /&gt;
       'LineWidth', 1.2, 'AutoScaleFactor', 1.5);&lt;br /&gt;
&lt;br /&gt;
% Dibujar la frontera física del sólido&lt;br /&gt;
tramo = [0 4];&lt;br /&gt;
plot(tramo, [0 0.5], 'k', 'LineWidth', 2);&lt;br /&gt;
plot(tramo, [2 1.5], 'k', 'LineWidth', 2);&lt;br /&gt;
plot([0 0], [0 2],   'k', 'LineWidth', 2);&lt;br /&gt;
plot([4 4], [0.5 1.5],'k', 'LineWidth', 2);&lt;br /&gt;
&lt;br /&gt;
% Ajustes finales del gráfico&lt;br /&gt;
axis equal;&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&lt;br /&gt;
&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
title({'Campo de Flujo Térmico'});&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Gradiente Térmico==&lt;br /&gt;
El punto de máxima variación térmica corresponde al lugar donde el gradiente de la temperatura alcanza su valor máximo. En la práctica, esto se obtiene igualando la derivada del gradiente a cero.&lt;br /&gt;
&lt;br /&gt;
Mientras que la variación térmica sigue la dirección del gradiente, el flujo de calor más intenso se orienta en sentido contrario, es decir, hacia donde disminuye la temperatura.&lt;br /&gt;
&lt;br /&gt;
Paso 1: Definición de la función para maximizar&lt;br /&gt;
&lt;br /&gt;
Llamamos a la función:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;G(x,y) = |\nabla T|^2&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Desarrollando los términos:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;G(x,y) = \big(1+(y-1)^2\big)^2 + \big(2(y-1)(4-x)\big)^2&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;G(x,y) = (y^2 - 2y + 2)^2 + 4(y-1)^2(4-x)^2&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Paso 2: Cálculo de los puntos críticos&lt;br /&gt;
&lt;br /&gt;
Para maximizar la función, derivamos y resolvemos el sistema:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial G}{\partial x} = -8 (y-1)^2 (4-x) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial G}{\partial y} = 4 (y-1) \big(1 + (y-1)^2 + 2 (4-x)^2 \big) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Al resolver este sistema, encontramos que los mínimos se sitúan sobre la recta:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;y = 1&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Como no hay máximos aislados dentro del dominio, los máximos deben encontrarse en la frontera:&lt;br /&gt;
&lt;br /&gt;
Borde izquierdo: &amp;lt;math&amp;gt;x=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Borde derecho: &amp;lt;math&amp;gt;x=4&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curva inferior: &amp;lt;math&amp;gt;y = x/8&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curva superior: &amp;lt;math&amp;gt;y = 2 - x/8&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras analizar los límites del recinto, los máximos de la función del gradiente térmico se localizan en el borde izquierdo, &amp;lt;math&amp;gt;x=0&amp;lt;/math&amp;gt;. Las coordenadas de los máximos son:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
P(1): x=0.00, y=0.00, Dirección del vector: [-2.00, -8.00]&lt;br /&gt;
P(2): x=0.00, y=2.00, Dirección del vector: [-2.00, 8.00]&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Paso 3: Cálculo de la máxima variación térmica&lt;br /&gt;
&lt;br /&gt;
El valor de la norma del gradiente es igual para P(1) y P(2). Calculamos, por ejemplo, para P(1) = (0,0):&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\nabla T(0,0) = \big(-(1 + (0-1)^2), 2(0-1)(4-0)\big) = (-2,-8)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;|\nabla T(0,0)| = \sqrt{(-2)^2 + (-8)^2} = \sqrt{4 + 64} = 2\sqrt{17} \approx 8.246&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Por lo tanto, la máxima variación térmica en la placa se produce en los puntos P(1) y P(2) y tiene un valor aproximado de 8.246.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:maxvart.jpg|miniaturadeimagen|derecha|800px|Figura 4:Máxima Variación de T]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
h=0.05;&lt;br /&gt;
[X,Y]=meshgrid(0:h:4,0:h:2);&lt;br /&gt;
f=X./8;g=2-X./8;&lt;br /&gt;
EnPlaca=Y&amp;gt;=f&amp;amp;Y&amp;lt;=g;&lt;br /&gt;
&lt;br /&gt;
% Gradiente y Norma&lt;br /&gt;
Tx=-(1+(Y-1).^2); &lt;br /&gt;
Ty=2.*(Y-1).*(4-X);&lt;br /&gt;
&lt;br /&gt;
% Gradiente&lt;br /&gt;
NormaGrad=sqrt(Tx.^2+Ty.^2);&lt;br /&gt;
NormaGrad(~EnPlaca)=0; &lt;br /&gt;
&lt;br /&gt;
% Máximo&lt;br /&gt;
max_val=max(NormaGrad(:));&lt;br /&gt;
[filas,cols]=find(NormaGrad==max_val);&lt;br /&gt;
&lt;br /&gt;
% puntos máximos&lt;br /&gt;
x_max=X(filas,cols);&lt;br /&gt;
y_max=Y(filas,cols);&lt;br /&gt;
&lt;br /&gt;
% Componentes del vector dirección &lt;br /&gt;
u_dir=Tx(filas,cols);&lt;br /&gt;
v_dir=Ty(filas,cols);&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Name','Máxima Variación de T');&lt;br /&gt;
hold on;axis equal;axis([-0.5 4.5 -0.5 2.5]);grid on;&lt;br /&gt;
title({'Puntos de Máxima Variación de Temperatura', '(Color = Magnitud del Gradiente T)'});&lt;br /&gt;
xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
% Mapa de calor&lt;br /&gt;
NormaGrad(~EnPlaca)=NaN;&lt;br /&gt;
contourf(X,Y,NormaGrad,20,'LineStyle','none');&lt;br /&gt;
colormap(jet);colorbar;&lt;br /&gt;
&lt;br /&gt;
% Contorno&lt;br /&gt;
plot([0 4 4 0 0],[0 0.5 1.5 2 0],'k','LineWidth',1.5);&lt;br /&gt;
&lt;br /&gt;
% Puntos rojos y dirección&lt;br /&gt;
plot(x_max, y_max,'ro','MarkerSize',7.5,'MarkerFaceColor','r');&lt;br /&gt;
&lt;br /&gt;
% Flechas de dirección&lt;br /&gt;
quiver(x_max,y_max,u_dir,v_dir,0.5,'k','LineWidth',2,'MaxHeadSize',0.5);&lt;br /&gt;
&lt;br /&gt;
% Resultados&lt;br /&gt;
fprintf('La variación máxima es %.2f\n', max_val);&lt;br /&gt;
fprintf('Ocurre en los puntos:\n');&lt;br /&gt;
for i=1:length(x_max)&lt;br /&gt;
    fprintf('P(%d): x=%.2f, y=%.2f. Dirección del vector: [%.2f, %.2f]\n',i,x_max(i),y_max(i),u_dir(i),v_dir(i));&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Campo de Desplazamientos==&lt;br /&gt;
El campo de desplazamientos de un sólido se representa mediante un campo vectorial, que indica la dirección y sentido del desplazamiento de cada punto mediante vectores (representados como flechas rojas).&lt;br /&gt;
&lt;br /&gt;
Como se puede observar, los puntos que se encuentran más próximos al punto de aplicación de la fuerza experimentan los desplazamientos más grandes, mientras que los situados más alejados apenas se mueven.&lt;br /&gt;
[[Archivo:Desplazamiento_manuel.jpg|thumb|600px]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
&lt;br /&gt;
h = 0.1; &lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la región &lt;br /&gt;
Condicion = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
&lt;br /&gt;
% Aplicamos Máscara&lt;br /&gt;
X(~Condicion) = NaN;&lt;br /&gt;
Y(~Condicion) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo del Campo de Desplazamientos &lt;br /&gt;
&lt;br /&gt;
Rho = sqrt(X.^2 + Y.^2);&lt;br /&gt;
Theta = atan2(Y, X);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U_theta_val = -1/20 .* Rho.^2 .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ux = -U_theta_val .* sin(Theta);&lt;br /&gt;
Uy = U_theta_val .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Calcular la posición deformada&lt;br /&gt;
&lt;br /&gt;
% Posición final = Posición inicial + Desplazamiento&lt;br /&gt;
X_final = X + Ux;&lt;br /&gt;
Y_final = Y + Uy;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Comparativa&lt;br /&gt;
&lt;br /&gt;
figure('Name', 'Deformación de la Placa', 'Color', 'w');&lt;br /&gt;
&lt;br /&gt;
% PLACA ORIGINAL&lt;br /&gt;
subplot(1, 2, 1);&lt;br /&gt;
% Usamos mesh con Z=0 para dibujar la 'rejilla' plana&lt;br /&gt;
mesh(X, Y, zeros(size(X)), 'EdgeColor', 'b');&lt;br /&gt;
view(2); % Vista superior (2D)&lt;br /&gt;
axis equal; grid on;&lt;br /&gt;
title('Placa antes del desplazamiento');&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
&lt;br /&gt;
% PLACA DEFORMADA &lt;br /&gt;
subplot(1, 2, 2);&lt;br /&gt;
mesh(X_final, Y_final, zeros(size(X)), 'EdgeColor', 'b');&lt;br /&gt;
view(2);&lt;br /&gt;
axis equal; grid on;&lt;br /&gt;
title('Placa después del desplazamiento');&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Apartado 5 &lt;br /&gt;
&lt;br /&gt;
figure('Name', 'Campo Vectorial de Desplazamientos');&lt;br /&gt;
hold on; axis equal; grid on;&lt;br /&gt;
title('Campo de Desplazamientos');&lt;br /&gt;
&lt;br /&gt;
% Dibujamos contorno original de referencia&lt;br /&gt;
plot(X(:), Y(:), '.k', 'MarkerSize', 1);&lt;br /&gt;
&lt;br /&gt;
% Dibujamos los vectores &lt;br /&gt;
quiver(X, Y, Ux, Uy, 0, 'r', 'LineWidth', 1.5);&lt;br /&gt;
&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
xlim([-0.5 4.5]); ylim([-0.5 2.5]);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Desplazamiento del Sólido==&lt;br /&gt;
Debido a la fuerza de magnitud desconocida, el sólido experimenta un desplazamiento descrito por el campo vectorial:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{u}(\rho, \theta) = -\frac{1}{20},\rho^2 \cos \theta ; \vec{e}_\theta&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
El sólido se deforma siguiendo este campo de desplazamientos. Como era de esperar, los puntos más próximos al punto de aplicación de la fuerza son los que sufren los mayores desplazamientos, mientras que los situados más lejos apenas se mueven.&lt;br /&gt;
&lt;br /&gt;
Se adjuntan las gráficas que muestran el desplazamiento sufrido. (Nota: el desplazamiento inferior no se aprecia en la visualización actual; sería necesario ajustar los ejes en el código para visualizarlo correctamente).&lt;br /&gt;
[[Archivo:Apartado6deformacion.png|thumb|1000px]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Definición de Geometría y Desplazamientos&lt;br /&gt;
h = 0.1; % Paso del mallado&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la Región &lt;br /&gt;
&lt;br /&gt;
% Aplicamos máscara &lt;br /&gt;
X(~Condicion) = NaN;&lt;br /&gt;
Y(~Condicion) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo de Desplazamientos&lt;br /&gt;
&lt;br /&gt;
Rho = sqrt(X.^2 + Y.^2);&lt;br /&gt;
Theta = atan2(Y, X);&lt;br /&gt;
&lt;br /&gt;
% Valor escalar de u_theta&lt;br /&gt;
U_theta_val = -1/20 .* Rho.^2 .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
% Proyección a cartesianas &lt;br /&gt;
Ux = -U_theta_val .* sin(Theta);&lt;br /&gt;
Uy = U_theta_val .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
% --- Posición Final Deformada ---&lt;br /&gt;
X_final = X + Ux;&lt;br /&gt;
Y_final = Y + Uy;&lt;br /&gt;
&lt;br /&gt;
% Gráfica Comparativa de Sólidos Mallados &lt;br /&gt;
figure('Name', 'Comparación Antes/Después', 'Color', 'w', 'Position', [100, 100, 1000, 500]);&lt;br /&gt;
&lt;br /&gt;
% Placa Original&lt;br /&gt;
subplot(1, 2, 1);&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
mesh(X, Y, zeros(size(X)), 'EdgeColor', [0 0.7 0.9], 'FaceColor', 'none');&lt;br /&gt;
&lt;br /&gt;
view(2); &lt;br /&gt;
axis equal; &lt;br /&gt;
grid on;&lt;br /&gt;
box on; &lt;br /&gt;
&lt;br /&gt;
title('Placa antes del desplazamiento', 'FontWeight', 'bold');&lt;br /&gt;
xlabel('Eje X');&lt;br /&gt;
ylabel('Eje Y');&lt;br /&gt;
axis([-1.5 4.5 0 2.5]);&lt;br /&gt;
&lt;br /&gt;
% Placa Deformada&lt;br /&gt;
subplot(1, 2, 2);&lt;br /&gt;
hold on;&lt;br /&gt;
% Dibujamos la malla usando las coordenadas finales (X_final, Y_final)&lt;br /&gt;
mesh(X_final, Y_final, zeros(size(X)), 'EdgeColor', [0 0.7 0.9], 'FaceColor', 'none');&lt;br /&gt;
&lt;br /&gt;
view(2);&lt;br /&gt;
axis equal;&lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
&lt;br /&gt;
title('Placa después del desplazamiento', 'FontWeight', 'bold');&lt;br /&gt;
xlabel('Eje X');&lt;br /&gt;
ylabel('Eje Y');&lt;br /&gt;
axis([-1.5 4.5 0 2.5]); &lt;br /&gt;
&lt;br /&gt;
sgtitle('Visualización del Sólido Mallado bajo Deformación'); % Título&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Divergencia==&lt;br /&gt;
La divergencia &amp;lt;math&amp;gt;\nabla \cdot \vec{u}&amp;lt;/math&amp;gt; mide la variación de volumen local en el sólido. En nuestro caso, el cálculo da como resultado:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\nabla \cdot \vec{u} = \frac{y}{20}&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Este resultado indica que la placa experimenta una expansión positiva, que aumenta linealmente con la altura, debido al estiramiento de las fibras superiores.&lt;br /&gt;
&lt;br /&gt;
En la representación gráfica se observa la distribución de la divergencia mediante franjas de color:&lt;br /&gt;
&lt;br /&gt;
En azul se encuentra la base, donde el volumen permanece prácticamente constante.&lt;br /&gt;
&lt;br /&gt;
Hacia la parte superior, el color se degrada progresivamente hasta un rojo intenso, indicando el punto de máxima expansión, independiente de la posición horizontal &lt;br /&gt;
𝑥&lt;br /&gt;
x.&lt;br /&gt;
[[Archivo:divergenciaplaca.jpg|miniaturadeimagen|derecha|800px|Figura 7]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
% Definir Malla y Placa&lt;br /&gt;
h=0.05;&lt;br /&gt;
[X,Y]=meshgrid(0:h:4, 0:h:2);&lt;br /&gt;
f=X./8;g=2-X./8; % Límites&lt;br /&gt;
EnPlaca=Y&amp;gt;=f&amp;amp;Y&amp;lt;=g; % Máscara lógica&lt;br /&gt;
&lt;br /&gt;
% Divergencia&lt;br /&gt;
Div=Y./20; &lt;br /&gt;
Div(~EnPlaca)=NaN;&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Name','Divergencia');clf;hold on;&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]);box on;&lt;br /&gt;
title('Divergencia: Cambio de Volumen');&lt;br /&gt;
xlabel('X'); ylabel('Y');&lt;br /&gt;
[C, h_cont]=contourf(X, Y, Div, 20,'LineStyle','none');&lt;br /&gt;
colormap(jet);&lt;br /&gt;
c=colorbar;ylabel(c,'Valor de Divergencia');&lt;br /&gt;
&lt;br /&gt;
% Dibujar bordes negros&lt;br /&gt;
x_b = linspace(0, 4, 200);&lt;br /&gt;
plot(x_b, x_b./8,'k','LineWidth',1);&lt;br /&gt;
plot(x_b, 2 - x_b./8,'k','LineWidth',1);&lt;br /&gt;
plot([0 0],[0 2],'k','LineWidth',1);&lt;br /&gt;
plot([4 4],[0.5 1.5],'k','LineWidth',1);&lt;br /&gt;
&lt;br /&gt;
% Señalar puntos clave&lt;br /&gt;
plot(0,2,'kp','MarkerSize',12,'MarkerFaceColor','r');&lt;br /&gt;
text(0.1, 2.1,'Max Expansión','FontWeight','bold');&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
plot(0,0,'kp','MarkerSize',12,'MarkerFaceColor','b');&lt;br /&gt;
text(0.1,-0.1,'Divergencia Nula','FontWeight','bold');&lt;br /&gt;
hold off;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rotacional==&lt;br /&gt;
Se calcula el rotacional &amp;lt;math&amp;gt;|\nabla \times \vec{u}|&amp;lt;/math&amp;gt; en todos los puntos del sólido.&lt;br /&gt;
&lt;br /&gt;
Los resultados muestran que los puntos más alejados del origen y alineados con el eje &lt;br /&gt;
𝑥&lt;br /&gt;
x experimentan los mayores valores de rotacional, indicando que estas zonas sufren la mayor rotación local debido al campo de desplazamientos aplicado.&lt;br /&gt;
[[Archivo:Rotacionaldemanuel.png|600px|thumb]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Mallado y Región&lt;br /&gt;
h = 0.05;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la placa&lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
X(~Condition) = NaN;&lt;br /&gt;
Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Definición del Mallado y Región&lt;br /&gt;
h = 0.05;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la placa &lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
X(~Condition) = NaN;&lt;br /&gt;
Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
% 2. Cálculo del Rotacional (Magnitud)&lt;br /&gt;
% |Rot(u)| = 0.15 * x&lt;br /&gt;
Rotacional = 0.15 .* X;&lt;br /&gt;
&lt;br /&gt;
% Gráfica en 3D &lt;br /&gt;
figure('Name', 'Rotacional en 3D', 'Color', 'w');&lt;br /&gt;
&lt;br /&gt;
% 'surf' crea la superficie 3D. X e Y son la base, Rotacional es la altura.&lt;br /&gt;
s = surf(X, Y, Rotacional);&lt;br /&gt;
&lt;br /&gt;
% --- Estética de la gráfica 3D ---&lt;br /&gt;
shading interp; % Suaviza los colores (quita las líneas de la cuadrícula)&lt;br /&gt;
colormap(jet); % Mapa de colores (Azul -&amp;gt; Rojo)&lt;br /&gt;
alpha(0.9); % Un poco de transparencia (opcional)&lt;br /&gt;
&lt;br /&gt;
view(3); % Pone la vista en perspectiva 3D automáticamente&lt;br /&gt;
axis tight; % Ajusta los ejes al contenido&lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
&lt;br /&gt;
% Añadir barra de colores&lt;br /&gt;
c = colorbar;&lt;br /&gt;
c.Label.String = 'Magnitud |\nabla \times u|';&lt;br /&gt;
c.Label.FontSize = 11;&lt;br /&gt;
&lt;br /&gt;
% Etiquetas y Título&lt;br /&gt;
title('Magnitud del Rotacional (Vista 3D)', 'FontSize', 12);&lt;br /&gt;
xlabel('Eje X (Posición)', 'FontWeight', 'bold');&lt;br /&gt;
ylabel('Eje Y (Posición)', 'FontWeight', 'bold');&lt;br /&gt;
zlabel('Valor del Rotacional', 'FontWeight', 'bold');&lt;br /&gt;
&lt;br /&gt;
% Añadir luz&lt;br /&gt;
camlight left;&lt;br /&gt;
lighting phong;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
hold on;&lt;br /&gt;
contour(X, Y, Rotacional, 15, 'z', 'offset', 0, 'LineWidth', 1);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Tensores Deformacionales==&lt;br /&gt;
Se define el tensor de deformaciones como la parte simétrica del gradiente del campo de desplazamientos &amp;lt;math&amp;gt;\vec{u}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\varepsilon(\vec{u}) = \frac{1}{2} \big( \nabla \vec{u} + (\nabla \vec{u})^T \big)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En un medio elástico lineal, isótropo y homogéneo, los desplazamientos permiten expresar el tensor de tensiones &amp;lt;math&amp;gt;\sigma&amp;lt;/math&amp;gt; mediante la relación de Hooke generalizada:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\sigma = \lambda , (\nabla \cdot \vec{u}) , I + 2 \mu , \varepsilon(\vec{u})&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
donde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; es el tensor identidad en &amp;lt;math&amp;gt;\mathbb{R}^3&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; son los coeficientes de Lamé, que dependen de las propiedades elásticas del material.&lt;br /&gt;
&lt;br /&gt;
Tomando &amp;lt;math&amp;gt;\lambda = \mu = 1&amp;lt;/math&amp;gt;, se representan las tensiones normales en las direcciones de los ejes coordenados:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{i} \cdot \sigma \cdot \vec{i}&amp;lt;/math&amp;gt; — tensión normal en la dirección del eje &lt;br /&gt;
𝑥&lt;br /&gt;
x,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{j} \cdot \sigma \cdot \vec{j}&amp;lt;/math&amp;gt; — tensión normal en la dirección del eje &lt;br /&gt;
𝑦&lt;br /&gt;
y,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{k} \cdot \sigma \cdot \vec{k}&amp;lt;/math&amp;gt; — tensión normal en la dirección del eje &lt;br /&gt;
𝑧&lt;br /&gt;
z.&lt;br /&gt;
&lt;br /&gt;
Solo se representan las componentes no nulas, mostrando cómo se distribuyen las tensiones normales en el sólido bajo el campo de desplazamientos aplicado.&lt;br /&gt;
[[Archivo:contorno.jpg|miniaturadeimagen|derecha|800px|Figura 9]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% Geometría de la placa&lt;br /&gt;
h = 0.1;                        &lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
num_puntos_y = round(2/h);&lt;br /&gt;
s = linspace(0,1,num_puntos_y+1);% parámetro vertical [0,1]&lt;br /&gt;
&lt;br /&gt;
[U,S] = meshgrid(x,s);&lt;br /&gt;
f = U./8;                        &lt;br /&gt;
g = 2 - U./8;                   &lt;br /&gt;
&lt;br /&gt;
X = U;                           &lt;br /&gt;
Y = f + S.*(g - f);           &lt;br /&gt;
&lt;br /&gt;
% Campo de desplazamientos aplicado&lt;br /&gt;
&lt;br /&gt;
u = (X.*Y)/20;                   % componente en x&lt;br /&gt;
v = -(X.^2)/20;                  % componente en y&lt;br /&gt;
&lt;br /&gt;
% Derivadas analíticas&lt;br /&gt;
ux_x = Y/20;                    &lt;br /&gt;
ux_y = X/20;                   &lt;br /&gt;
vy_x = -(X/10);                 &lt;br /&gt;
vy_y = zeros(size(X));           &lt;br /&gt;
&lt;br /&gt;
div_u = ux_x + vy_y; % divergencia = y/20&lt;br /&gt;
&lt;br /&gt;
% Tensor de deformaciones&lt;br /&gt;
eps_xx = ux_x;                  &lt;br /&gt;
eps_yy = vy_y;                  &lt;br /&gt;
eps_xy = 0.5*(ux_y + vy_x);      &lt;br /&gt;
&lt;br /&gt;
% Tensiones &lt;br /&gt;
lambda = 1; mu = 1;&lt;br /&gt;
sigma_xx = lambda*div_u + 2*mu*eps_xx;   % = 3y/20&lt;br /&gt;
sigma_yy = lambda*div_u + 2*mu*eps_yy;   % = y/20&lt;br /&gt;
sigma_zz = lambda*div_u;                 % = y/20 (eps_zz=0)&lt;br /&gt;
sigma_xy = 2*mu*eps_xy;                  % = -x/20&lt;br /&gt;
sigma_yx = sigma_xy;                     % simétrico&lt;br /&gt;
sigma_xz = zeros(size(X));               % no hay variación en z&lt;br /&gt;
sigma_zx = zeros(size(X));               % idem&lt;br /&gt;
&lt;br /&gt;
% Tensión tangencial respecto al plano ortogonal a i &lt;br /&gt;
&lt;br /&gt;
tau_i = abs(sigma_yx);                   % = | -x/20 |&lt;br /&gt;
&lt;br /&gt;
% Gráficos&lt;br /&gt;
&lt;br /&gt;
cm = turbo;&lt;br /&gt;
lw = 1.2;&lt;br /&gt;
&lt;br /&gt;
% Mallado y contornos de la placa&lt;br /&gt;
figure('Name','Mallado de la placa','Color','w');&lt;br /&gt;
mesh(X,Y,zeros(size(X)),'EdgeColor',[0,0.6,0.7],'FaceColor','none'); hold on;&lt;br /&gt;
plot(X(1,:),Y(1,:),'k','LineWidth',2);       % borde inferior&lt;br /&gt;
plot(X(end,:),Y(end,:),'k','LineWidth',2);    % borde superior&lt;br /&gt;
plot(X(:,1),Y(:,1),'k','LineWidth',2);        % borde izquierdo (pared)&lt;br /&gt;
plot(X(:,end),Y(:,end),'k','LineWidth',2);    % borde derecho&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]); axis equal; grid on; box on;&lt;br /&gt;
xlabel('x'); ylabel('y'); title('Mallado y contorno de la placa');&lt;br /&gt;
&lt;br /&gt;
% Tensiones normales&lt;br /&gt;
figure('Name','Tensiones normales','Color','w');&lt;br /&gt;
tiledlayout(1,3,'Padding','compact','TileSpacing','compact');&lt;br /&gt;
&lt;br /&gt;
nexttile;&lt;br /&gt;
surf(X,Y,sigma_xx); shading interp; colormap(cm); colorbar;&lt;br /&gt;
title('\sigma_{xx}'); xlabel('x'); ylabel('y'); zlabel('\sigma_{xx}');&lt;br /&gt;
axis tight; daspect([1 1 0.35]); view(45,30);&lt;br /&gt;
&lt;br /&gt;
nexttile;&lt;br /&gt;
surf(X,Y,sigma_yy); shading interp; colormap(cm); colorbar;&lt;br /&gt;
title('\sigma_{yy}'); xlabel('x'); ylabel('y'); zlabel('\sigma_{yy}');&lt;br /&gt;
axis tight; daspect([1 1 0.35]); view(45,30);&lt;br /&gt;
&lt;br /&gt;
nexttile;&lt;br /&gt;
surf(X,Y,sigma_zz); shading interp; colormap(cm); colorbar;&lt;br /&gt;
title('\sigma_{zz}'); xlabel('x'); ylabel('y'); zlabel('\sigma_{zz}');&lt;br /&gt;
axis tight; daspect([1 1 0.35]); view(45,30);&lt;br /&gt;
sgtitle('Distribución de tensiones normales (\lambda=\mu=1)','FontWeight','bold');&lt;br /&gt;
&lt;br /&gt;
% Tensión tangencial respecto a i &lt;br /&gt;
figure('Name','Tension tangencial respecto a i','Color','w');&lt;br /&gt;
surf(X,Y,tau_i); shading interp; colormap(cm); colorbar;&lt;br /&gt;
title('\tau_{i} = |\sigma_{xy}|'); xlabel('x'); ylabel('y'); zlabel('\tau_{i}');&lt;br /&gt;
axis tight; daspect([1 1 0.35]); view(45,30); grid on;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
figure('Name','Contornos 2D de tensiones','Color','w');&lt;br /&gt;
tiledlayout(1,4,'Padding','compact','TileSpacing','compact');&lt;br /&gt;
&lt;br /&gt;
nexttile; contourf(X,Y,sigma_xx,20,'LineColor','none'); axis equal tight; colorbar;&lt;br /&gt;
title('\sigma_{xx}'); xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
nexttile; contourf(X,Y,sigma_yy,20,'LineColor','none'); axis equal tight; colorbar;&lt;br /&gt;
title('\sigma_{yy}'); xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
nexttile; contourf(X,Y,sigma_zz,20,'LineColor','none'); axis equal tight; colorbar;&lt;br /&gt;
title('\sigma_{zz}'); xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
nexttile; contourf(X,Y,tau_i,20,'LineColor','none'); axis equal tight; colorbar;&lt;br /&gt;
title('\tau_{i}'); xlabel('x'); ylabel('y');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tensiones tangenciales==&lt;br /&gt;
Se representan las tensiones tangenciales respecto al plano ortogonal al eje &amp;lt;math&amp;gt;\vec{i}&amp;lt;/math&amp;gt;, definidas como:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;|\sigma \cdot \vec{i} - (\vec{i} \cdot \sigma \cdot \vec{i}) , \vec{i}|&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En la gráfica se muestran únicamente las componentes no nulas, permitiendo visualizar las tensiones tangenciales que actúan sobre los planos perpendiculares al eje &lt;br /&gt;
𝑥&lt;br /&gt;
x.&lt;br /&gt;
[[Archivo:Tensionesdemanuel.png|600px|thumb]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Definición del Mallado&lt;br /&gt;
h = 0.15; &lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la placa &lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
X(~Condition) = NaN;&lt;br /&gt;
Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo de la Tensión Tangencial &lt;br /&gt;
&lt;br /&gt;
Sig_xy = -X ./ 20;&lt;br /&gt;
&lt;br /&gt;
% Definición del Vector Tangencial&lt;br /&gt;
&lt;br /&gt;
U_vec = zeros(size(X)); % Componente X es 0&lt;br /&gt;
V_vec = Sig_xy; % Componente Y es el valor de la tensión&lt;br /&gt;
&lt;br /&gt;
% Gráfica&lt;br /&gt;
figure('Name', 'Apartado 10: Vector Tensión Tangencial', 'Color', 'w');&lt;br /&gt;
&lt;br /&gt;
% Usamos quiver para dibujar las flechitas azules&lt;br /&gt;
&lt;br /&gt;
quiver(X, Y, U_vec, V_vec, 'b', 'LineWidth', 1);&lt;br /&gt;
&lt;br /&gt;
% Configuración de la vista&lt;br /&gt;
view(2); &lt;br /&gt;
axis equal; &lt;br /&gt;
grid on; &lt;br /&gt;
&lt;br /&gt;
% Títulos &lt;br /&gt;
title('Tensiones tangenciales (Plano ortogonal a i)');&lt;br /&gt;
xlabel('Eje X');&lt;br /&gt;
ylabel('Eje Y');&lt;br /&gt;
&lt;br /&gt;
% Ajuste de límites &lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&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 mediante la expresión:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma_{VM} = \sqrt{\frac{(\sigma_1 - \sigma_2)^2 + (\sigma_2 - \sigma_3)^2 + (\sigma_3 - \sigma_1)^2}{2}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Esta fórmula combina las diferencias entre las tensiones principales (𝜎1,𝜎2,𝜎3σ1,σ2,σ3) y permite calcular el esfuerzo equivalente que experimenta el material, útil para evaluar la resistencia frente a la plasticidad o el fallo.&lt;br /&gt;
[[Archivo:vonn.jpg|miniaturadeimagen|derecha|700px|Figura 11]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% Malla&lt;br /&gt;
h = 0.1;&lt;br /&gt;
[x, y] = meshgrid(0:h:4, 0:h:2);   % ojo: x -&amp;gt; columnas, y -&amp;gt; filas&lt;br /&gt;
X = x; Y = y;&lt;br /&gt;
&lt;br /&gt;
% Bordes de la placa&lt;br /&gt;
f = X./8;&lt;br /&gt;
g = 2 - X./8;&lt;br /&gt;
EnPlaca = (Y &amp;gt;= f) &amp;amp; (Y &amp;lt;= g);&lt;br /&gt;
&lt;br /&gt;
% Definición del campo de desplazamientos en cartesianas&lt;br /&gt;
ux=(1/20).*X.*Y;&lt;br /&gt;
uy=-(1/20).*X.^2;&lt;br /&gt;
&lt;br /&gt;
% Derivadas analíticas:&lt;br /&gt;
% ux_x=d(u_x)/dx=y/20&lt;br /&gt;
% ux_y=d(u_x)/dy=x/20&lt;br /&gt;
% uy_x=d(u_y)/dx=-x/10&lt;br /&gt;
% uy_y=d(u_y)/dy 0&lt;br /&gt;
ux_x=Y./20;&lt;br /&gt;
ux_y=X./20;&lt;br /&gt;
uy_x=-X./10;&lt;br /&gt;
uy_y=zeros(size(X));&lt;br /&gt;
&lt;br /&gt;
% Divergencia (útil para sigma)&lt;br /&gt;
divU=ux_x+uy_y;&lt;br /&gt;
&lt;br /&gt;
% Tensor de deformaciones simétrico &lt;br /&gt;
% epsilon = 1/2(grad u + grad u^T)&lt;br /&gt;
% epsilon_xx = ux_x&lt;br /&gt;
% epsilon_yy = uy_y&lt;br /&gt;
% epsilon_xy = 1/2*(ux_y + uy_x)&lt;br /&gt;
eps_xx = ux_x;&lt;br /&gt;
eps_yy = uy_y;&lt;br /&gt;
eps_xy = 0.5*(ux_y + uy_x);&lt;br /&gt;
&lt;br /&gt;
% Para el caso 3D consideramos eps_zz = 0&lt;br /&gt;
eps_zz = zeros(size(X));&lt;br /&gt;
&lt;br /&gt;
% Coeficientes de Lamé&lt;br /&gt;
lambda=1;&lt;br /&gt;
mu=1;&lt;br /&gt;
&lt;br /&gt;
% Construcción del tensor de tensiones &lt;br /&gt;
%sigma = lambda*div(u)*I + 2*mu*eps&lt;br /&gt;
sigma_xx = lambda.*divU + 2*mu.*eps_xx;&lt;br /&gt;
sigma_yy = lambda.*divU + 2*mu.*eps_yy;&lt;br /&gt;
sigma_zz = lambda.*divU + 2*mu.*eps_zz;&lt;br /&gt;
sigma_xy = 2*mu.*eps_xy;    % = sigma_yx&lt;br /&gt;
&lt;br /&gt;
% Von Mises y matriz para autovalores&lt;br /&gt;
VM = NaN(size(X));&lt;br /&gt;
S1 = NaN(size(X)); S2 = NaN(size(X)); S3 = NaN(size(X));&lt;br /&gt;
&lt;br /&gt;
% Loop sobre puntos dentro de la placa para calcular autovalores&lt;br /&gt;
[idx_i,idx_j]=find(EnPlaca);&lt;br /&gt;
npts=numel(idx_i);&lt;br /&gt;
&lt;br /&gt;
for k = 1:npts&lt;br /&gt;
    i = idx_i(k); j = idx_j(k);   % i: fila (y index), j: columna (x index)&lt;br /&gt;
    % construir sigma 3x3 en ese punto&lt;br /&gt;
    S = [sigma_xx(i,j), sigma_xy(i,j), 0;sigma_xy(i,j), sigma_yy(i,j),0;0,0,sigma_zz(i,j)];&lt;br /&gt;
    e = eig(S);          &lt;br /&gt;
    % ordenar autovalores (no estrictamente necesario, pero ordeno descendente)&lt;br /&gt;
    e = sort(e,'descend');&lt;br /&gt;
    s1 = e(1); s2 = e(2); s3 = e(3);&lt;br /&gt;
    % tensión de Von Mises (fórmula)&lt;br /&gt;
    sigmaVM = sqrt( ((s1-s2).^2 + (s2-s3).^2 + (s3-s1).^2) / 2 );&lt;br /&gt;
    VM(i,j) = sigmaVM;&lt;br /&gt;
    S1(i,j) = s1; S2(i,j) = s2; S3(i,j) = s3;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
VM(~EnPlaca) = NaN;&lt;br /&gt;
% Buscar máximo de Von Mises dentro de la placa&lt;br /&gt;
[maxVM, indMax] = max(VM(:));&lt;br /&gt;
[rowMax, colMax] = ind2sub(size(VM), indMax);&lt;br /&gt;
xMax = X(rowMax, colMax);&lt;br /&gt;
yMax = Y(rowMax, colMax);&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Name','Tensión de Von Mises','Color','w'); clf; hold on;&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]); box on;&lt;br /&gt;
title('Tensión de Von Mises \sigma_{VM}');&lt;br /&gt;
xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
% Contourf del campo VM&lt;br /&gt;
numLevels = 30;&lt;br /&gt;
[C, hC] = contourf(X, Y, VM, numLevels, 'LineStyle','none');&lt;br /&gt;
colormap(jet);&lt;br /&gt;
c = colorbar; ylabel(c, '\sigma_{VM}');&lt;br /&gt;
% Bordes de la placa&lt;br /&gt;
xb = linspace(0,4,200);&lt;br /&gt;
plot(xb, xb./8, 'k-', 'LineWidth', 1.5);         &lt;br /&gt;
plot(xb, 2 - xb./8, 'k-', 'LineWidth', 1.5);    &lt;br /&gt;
plot([0 0], [0 2], 'k-', 'LineWidth', 1.5);  &lt;br /&gt;
plot([4 4], [0.5 1.5], 'k-', 'LineWidth', 1.5); &lt;br /&gt;
&lt;br /&gt;
% Punto de máxima tensión de Von Mises&lt;br /&gt;
plot(xMax, yMax, 'rp', 'MarkerSize', 14, 'MarkerFaceColor', 'r');&lt;br /&gt;
text(xMax+0.08, yMax+0.08, sprintf('Máx VM = %.3g', maxVM), 'FontWeight','bold','Color','r');&lt;br /&gt;
&lt;br /&gt;
% Mejora estética&lt;br /&gt;
set(gcf,'Color','w');&lt;br /&gt;
shading interp;&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
&lt;br /&gt;
% Información&lt;br /&gt;
fprintf('Máximo Von Mises = %.6g en (x,y) = (%.4g, %.4g)\n', maxVM, xMax, yMax);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Campo de Fuerzas==&lt;br /&gt;
&lt;br /&gt;
El campo de fuerzas &amp;lt;math&amp;gt;\vec{F}&amp;lt;/math&amp;gt; que actúa sobre la placa, y que es responsable del desplazamiento observado, se puede aproximar mediante la ecuación de la elasticidad lineal:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{F} = - \operatorname{div} \sigma&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt;\operatorname{div} \sigma&amp;lt;/math&amp;gt; es la divergencia de un campo tensorial. En coordenadas cartesianas, se expresa como:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\operatorname{div} \sigma = (\operatorname{div} \sigma)_1 , \vec{i} + (\operatorname{div} \sigma)_2 , \vec{j} + (\operatorname{div} \sigma)3 , \vec{k}, \quad (\operatorname{div} \sigma)i = \sum{j=1}^{3} \frac{\partial \sigma{ij}}{\partial x_j}&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Esta formulación permite calcular, a partir del tensor de tensiones, el campo de fuerzas internas que genera los desplazamientos de la placa.&lt;br /&gt;
[[Archivo:Fuerzas_manuel.jpg|700px|thumb]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%% Apartado 12: Campo de Fuerzas Volumétricas (F = -div Sigma)&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% 1. Definición del Mallado&lt;br /&gt;
h = 0.1;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la placa (Trapecio)&lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
X(~Condition) = NaN;&lt;br /&gt;
Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
lambda = 1; mu = 1;&lt;br /&gt;
&lt;br /&gt;
% 2. Recalculamos las Tensiones (Necesarias para derivar)&lt;br /&gt;
% Usamos las fórmulas analíticas que ya conocemos&lt;br /&gt;
Div_u = Y ./ 20;&lt;br /&gt;
Eps_xx = Y ./ 20;&lt;br /&gt;
Eps_yy = zeros(size(X));&lt;br /&gt;
&lt;br /&gt;
Sig_xx = lambda .* Div_u + 2 .* mu .* Eps_xx; % = 3y/20&lt;br /&gt;
Sig_yy = lambda .* Div_u + 2 .* mu .* Eps_yy; % = y/20&lt;br /&gt;
Sig_xy = -X ./ 20; % = -x/20 (cizalladura)&lt;br /&gt;
&lt;br /&gt;
% 3. Cálculo de la Divergencia del Tensor (Numéricamente)&lt;br /&gt;
% F = -div(sigma)&lt;br /&gt;
% Fx = -( d(Sxx)/dx + d(Sxy)/dy )&lt;br /&gt;
% Fy = -( d(Sxy)/dx + d(Syy)/dy )&lt;br /&gt;
&lt;br /&gt;
% La función gradient calcula derivadas centrales.&lt;br /&gt;
% Sintaxis: gradient(Matriz, paso_x, paso_y)&lt;br /&gt;
[dSxx_dx, dSxx_dy] = gradient(Sig_xx, h, h);&lt;br /&gt;
[dSxy_dx, dSxy_dy] = gradient(Sig_xy, h, h);&lt;br /&gt;
[dSyy_dx, dSyy_dy] = gradient(Sig_yy, h, h);&lt;br /&gt;
&lt;br /&gt;
Fx = - (dSxx_dx + dSxy_dy);&lt;br /&gt;
Fy = - (dSxy_dx + dSyy_dy);&lt;br /&gt;
&lt;br /&gt;
% 4. Comprobación de Magnitud (Para ver si es cero)&lt;br /&gt;
MagnitudF = sqrt(Fx.^2 + Fy.^2);&lt;br /&gt;
max_F = max(MagnitudF(:));&lt;br /&gt;
&lt;br /&gt;
fprintf('--- Resultado Apartado 12 ---\n');&lt;br /&gt;
fprintf('La fuerza máxima calculada es: %e\n', max_F);&lt;br /&gt;
&lt;br /&gt;
if max_F &amp;lt; 1e-10&lt;br /&gt;
fprintf('CONCLUSIÓN: La fuerza es prácticamente NULA (Equilibrio).\n');&lt;br /&gt;
subtitle_text = 'Fuerza \approx 0 (Equilibrio Estático)';&lt;br /&gt;
else&lt;br /&gt;
subtitle_text = 'Existen fuerzas volumétricas';&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% 5. Gráfica&lt;br /&gt;
figure('Name', 'Apartado 12: Campo de Fuerzas', 'Color', 'w');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
% Dibujamos los vectores.&lt;br /&gt;
% Como son casi cero, MATLAB pintará puntos. Para ver &amp;quot;algo&amp;quot;,&lt;br /&gt;
% a veces se normalizan, pero lo correcto es mostrar que no hay fuerza.&lt;br /&gt;
quiver(X, Y, Fx, Fy, 'r');&lt;br /&gt;
&lt;br /&gt;
% Dibujar bordes&lt;br /&gt;
plot([0 4 4 0 0], [0 0.5 1.5 2 0], 'k--', 'LineWidth', 0.5); % Caja aproximada&lt;br /&gt;
&lt;br /&gt;
title('Campo de Fuerzas Volumétricas');&lt;br /&gt;
subtitle(subtitle_text);&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&lt;br /&gt;
&lt;br /&gt;
% Añadimos una nota en la gráfica explicándolo&lt;br /&gt;
text(1, 1, {'Fuerza Nula', '(puntos indican magnitud ~0)'}, ...&lt;br /&gt;
'Color', 'r', 'FontWeight', 'bold', 'HorizontalAlignment', 'center');&lt;br /&gt;
&lt;br /&gt;
hold off;}}&lt;br /&gt;
&lt;br /&gt;
==Densidad==&lt;br /&gt;
[[Archivo:dens.jpg|miniaturadeimagen|derecha|800px|Figura 10]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
% Mallado&lt;br /&gt;
h=0.05; &lt;br /&gt;
[X,Y]=meshgrid(0:h:4,0:h:2);&lt;br /&gt;
&lt;br /&gt;
% Forma de la placa&lt;br /&gt;
Condition=(Y&amp;gt;=X./8)&amp;amp;(Y&amp;lt;=2-X./8);&lt;br /&gt;
&lt;br /&gt;
% Definición de la Densidad : d(x,y)=(4-x)*|y|&lt;br /&gt;
Densidad=(4-X).*abs(Y);&lt;br /&gt;
&lt;br /&gt;
% Filtrado para la Gráfica&lt;br /&gt;
Densidad(~Condition)=NaN;&lt;br /&gt;
&lt;br /&gt;
% Visualización 3D&lt;br /&gt;
figure('Name','Densidad', 'Color','w');&lt;br /&gt;
&lt;br /&gt;
% Superficie 3D&lt;br /&gt;
surf(X,Y,Densidad);&lt;br /&gt;
&lt;br /&gt;
% Configuración&lt;br /&gt;
shading interp; % Elimina las líneas negras para que se vea suave&lt;br /&gt;
colormap(jet);  % Mapa de colores (De azul a rojo)&lt;br /&gt;
colorbar;       % Barra de referencia&lt;br /&gt;
caxis([0 8]);   % Fija la escala de colores&lt;br /&gt;
&lt;br /&gt;
% Etiquetas y Título&lt;br /&gt;
title({'Densidad'},'FontSize',13);&lt;br /&gt;
xlabel('Eje X','FontWeight','bold');&lt;br /&gt;
ylabel('Eje Y','FontWeight','bold');&lt;br /&gt;
zlabel('Densidad (kg/m^2)','FontWeight','bold');&lt;br /&gt;
&lt;br /&gt;
% Ajustes&lt;br /&gt;
axis tight;      % Ajusta los ejes al contenido&lt;br /&gt;
view(-45, 30);   % Ángulo de vista &lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
&lt;br /&gt;
% Proyección de sombra en el suelo&lt;br /&gt;
hold on;&lt;br /&gt;
% Dibujamos el contorno plano abajo del todo (en z=0) para referencia&lt;br /&gt;
contour(X,Y,Densidad,20,'z','Offset',0); &lt;br /&gt;
hold off;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ejemplos de uso en la ingeniería ==&lt;br /&gt;
&lt;br /&gt;
Las vigas en voladizo destacan por su forma y por la versatilidad que ofrecen, lo que las convierte en un elemento muy empleado en distintos ámbitos. Algunos de sus usos más frecuentes son:&lt;br /&gt;
&lt;br /&gt;
• Arquitectura: se utilizan en balcones, terrazas, marquesinas o cubiertas de acceso.&lt;br /&gt;
• Maquinaria: forman parte de brazos de grúas y de las palas de los aerogeneradores.&lt;br /&gt;
• Ingeniería: se aplican en la construcción de puentes en voladizo y en diferentes componentes estructurales.&lt;/div&gt;</summary>
		<author><name>Alejandro.Morales</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Vectorflujocalor.png&amp;diff=95864</id>
		<title>Archivo:Vectorflujocalor.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Vectorflujocalor.png&amp;diff=95864"/>
				<updated>2025-12-03T10:38:56Z</updated>
		
		<summary type="html">&lt;p&gt;Alejandro.Morales: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Alejandro.Morales</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Placa_Plana_(Grupo_09)&amp;diff=95170</id>
		<title>Placa Plana (Grupo 09)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Placa_Plana_(Grupo_09)&amp;diff=95170"/>
				<updated>2025-12-02T18:43:13Z</updated>
		
		<summary type="html">&lt;p&gt;Alejandro.Morales: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Placa plana. Grupo 09 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC25/26|2025-26]] | Rafael Gonzalez Gomez &amp;lt;br/&amp;gt; Mario Belinchón Buendía &amp;lt;br/&amp;gt;Alejandro Morales Tari&amp;lt;br/&amp;gt;  Pablo Márquez Blanco}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Teoría de Campos]]&lt;br /&gt;
[[Categoría:TC25/26]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
&lt;br /&gt;
Consideramos la sección longitudinal de una viga en voladizo de geometría rectangular (en dimensión 2). Esta viga ocupa la región mostrada en la Figura 1, y permanece anclada en la pared vertical situada en el lado izquierdo. La zona que vamos a estudiar se describe mediante:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
(x,y) \in [0,4] \times [f(x),, g(x)],&lt;br /&gt;
\qquad&lt;br /&gt;
f(x)=\frac{x}{8},&lt;br /&gt;
\qquad&lt;br /&gt;
g(x)= 2-\frac{x}{8}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En esta placa se consideran dos magnitudes físicas relevantes.&lt;br /&gt;
La primera es el campo de temperaturas, modelado por la función:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
T(x,y)=\big(1+(y-1)^2\big),(4-x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
La segunda magnitud corresponde al campo de desplazamientos &amp;lt;math&amp;gt;\vec u(x,y)&amp;lt;/math&amp;gt;, producido por una fuerza externa —cuyo valor exacto no conocemos— y que deforma la placa.&lt;br /&gt;
&lt;br /&gt;
Para describir la deformación, sea&lt;br /&gt;
&amp;lt;math&amp;gt;\vec r_0(x,y)=x,\vec i + y,\vec j&amp;lt;/math&amp;gt;&lt;br /&gt;
el vector de posición inicial de cada punto. Entonces, tras aplicarse la fuerza, la nueva posición de un punto queda dada por:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\vec r_d(x,y)=\vec r_0(x,y)+\vec u(x,y)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Supondremos que la fuerza aplicada induce un desplazamiento expresado, en coordenadas polares &amp;lt;math&amp;gt;(\rho,\theta)&amp;lt;/math&amp;gt;, mediante:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\vec u(\rho,\theta)= -\frac{1}{20},\rho^2\cos\theta ; \vec e_\theta&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Este modelo permite estudiar tanto la distribución térmica en la viga como la deformación resultante, proporcionando una base adecuada para analizar su comportamiento estructural.&lt;br /&gt;
&lt;br /&gt;
==Mallado==&lt;br /&gt;
Para comenzar, construiremos un mallado de la sección longitudinal que nos permita representar los puntos interiores del sólido. Para ello, hemos empleado un paso de muestreo de&lt;br /&gt;
&amp;lt;math&amp;gt;h = \tfrac{1}{10}&amp;lt;/math&amp;gt;&lt;br /&gt;
y hemos definido la malla sobre el rectángulo que delimita los ejes coordenados:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt; (x, y) \in [-1,, 5] \times [-1,, 3] &amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Este mallado servirá como base para discretizar la región de interés y facilitar los cálculos posteriores.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:mimallado.png|thumb|700px|]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
h = 1/10;&lt;br /&gt;
color_malla = [0, 1, 0]; % Color &lt;br /&gt;
&lt;br /&gt;
% Coordenadas&lt;br /&gt;
u = 0 : h : 4;&lt;br /&gt;
v = 0 : h : 2;&lt;br /&gt;
[U, V] = meshgrid(u, v);&lt;br /&gt;
&lt;br /&gt;
% Calculamos los bordes &lt;br /&gt;
y_abajo = U ./ 8;&lt;br /&gt;
y_arriba = 2 - (U ./ 8);&lt;br /&gt;
&lt;br /&gt;
% Interpolamos&lt;br /&gt;
factor_altura = V ./ 2; % Va de 0 (abajo) a 1 (arriba)&lt;br /&gt;
&lt;br /&gt;
X = U;&lt;br /&gt;
Y = y_abajo + factor_altura .* (y_arriba - y_abajo);&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Color', 'w'); hold on;&lt;br /&gt;
&lt;br /&gt;
% Dibujar las líneas VERTICALES&lt;br /&gt;
plot(X, Y, 'Color', color_malla, 'LineWidth', 0.25);&lt;br /&gt;
&lt;br /&gt;
% Dibujar las líneas HORIZONTALES&lt;br /&gt;
plot(X', Y', 'Color', color_malla, 'LineWidth', 0.25);&lt;br /&gt;
&lt;br /&gt;
% Dibujar el contorno &lt;br /&gt;
plot(u, u./8, 'k-', 'LineWidth', 2); % Borde Abajo&lt;br /&gt;
plot(u, 2 - u./8, 'k-', 'LineWidth', 2); % Borde Arriba&lt;br /&gt;
plot([0 0], [0 2], 'k-', 'LineWidth', 2); % Borde Izquierdo&lt;br /&gt;
plot([4 4], [0.5 1.5], 'k-', 'LineWidth', 2); % Borde Derecho&lt;br /&gt;
&lt;br /&gt;
% Configuración final&lt;br /&gt;
axis([-1 5 -1 3]); % Zoom/Encuadre exacto&lt;br /&gt;
xlabel('x'); ylabel('y');&lt;br /&gt;
title('Mallado de la placa plana');&lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Curvas de nivel==&lt;br /&gt;
A continuación se representan las curvas de nivel de la temperatura con el fin de identificar visualmente la zona donde esta alcanza su valor máximo. A partir de la gráfica puede apreciarse que los puntos donde la temperatura es mayor son:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;(x,y) = (0,0) \quad \text{y} \quad (0,2)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Además, calculamos el gradiente de la temperatura para analizar la dirección de mayor variación de esta magnitud. El gradiente viene dado por:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\nabla T(x,y)&lt;br /&gt;
= \left( \frac{\partial T}{\partial x},, \frac{\partial T}{\partial y} \right)&lt;br /&gt;
= \Big( -\big(1+(y-1)^2\big),; (4-x)\cdot 2(y-1) \Big).&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En la representación gráfica se observa que el vector gradiente es ortogonal a las curvas de nivel, tal como establece la teoría: apunta siempre en la dirección de crecimiento más rápido de la temperatura.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:curvadenivel.jpeg|miniaturadeimagen|derecha|800px|Figura 2]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
% Definición &lt;br /&gt;
h=0.1;               &lt;br /&gt;
x=0:h:4;                  &lt;br /&gt;
y=0:h:2;           &lt;br /&gt;
[X,Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Funciones  &lt;br /&gt;
f=@(x)x./8;  &lt;br /&gt;
g=@(x)2-x./8;  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EnPlaca=Y&amp;gt;=f(X)&amp;amp;Y&amp;lt; g(X);&lt;br /&gt;
&lt;br /&gt;
% Definición de la Temperatura y el Gradiente&lt;br /&gt;
&lt;br /&gt;
T=(1+(Y-1).^2).*(4-X);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
T_plot=T;&lt;br /&gt;
T_plot(~EnPlaca)=NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo numérico del gradiente para los vectores &lt;br /&gt;
&lt;br /&gt;
U=-(1+(Y-1).^2);          &lt;br /&gt;
V=2.*(Y-1).*(4-X);   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U(~EnPlaca)=NaN;&lt;br /&gt;
V(~EnPlaca)=NaN;&lt;br /&gt;
&lt;br /&gt;
% Gráfica&lt;br /&gt;
figure(1);&lt;br /&gt;
clf; &lt;br /&gt;
hold on;&lt;br /&gt;
axis equal; &lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&lt;br /&gt;
title({'Isotermas y Gradiente \nabla T', 'T(x,y) = (1+(y-1)^2)(4-x)'});&lt;br /&gt;
xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
% Mapa de calor &lt;br /&gt;
[C_fill, h_fill] = contourf(X, Y, T_plot, 20, 'LineStyle', 'none');&lt;br /&gt;
colormap(jet); &lt;br /&gt;
cb=colorbar;&lt;br /&gt;
ylabel(cb,'Temperatura T');&lt;br /&gt;
&lt;br /&gt;
% Curvas de nivel&lt;br /&gt;
[C, h_cont]=contour(X,Y,T_plot,10,'k','LineWidth',1.5);&lt;br /&gt;
clabel(C,h_cont,'FontSize',9,'Color','k','FontWeight','bold');&lt;br /&gt;
&lt;br /&gt;
% Campo Vectorial &lt;br /&gt;
&lt;br /&gt;
step=3; &lt;br /&gt;
quiver(X(1:step:end,1:step:end),Y(1:step:end, 1:step:end), ...&lt;br /&gt;
U(1:step:end,1:step:end),V(1:step:end,1:step:end), ...&lt;br /&gt;
1.2,'k','LineWidth',1); % '1.2' es el factor de escala de las flechas&lt;br /&gt;
&lt;br /&gt;
% Dibujar bordes de la placa&lt;br /&gt;
plot(x,f(x),'k-','LineWidth',2);&lt;br /&gt;
plot(x,g(x),'k-','LineWidth',2); &lt;br /&gt;
plot([0 0],[f(0) g(0)],'k-','LineWidth',2); &lt;br /&gt;
plot([4 4],[f(4) g(4)],'k-','LineWidth',2); &lt;br /&gt;
&lt;br /&gt;
% Señalar Máximo&lt;br /&gt;
plot(0,0,'rp','MarkerSize',12,'MarkerFaceColor','r');&lt;br /&gt;
plot(0,2,'rp','MarkerSize',12,'MarkerFaceColor','r');&lt;br /&gt;
text(0.1,0,'Max T','Color','white','FontWeight','bold');&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ley de Fourier==&lt;br /&gt;
Según la ley de Fourier, el flujo de energía calorífica &amp;lt;math&amp;gt;\vec{Q}&amp;lt;/math&amp;gt; viene dado por:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{Q} = -\kappa , \nabla T&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt;\kappa&amp;lt;/math&amp;gt; representa la conductividad térmica del material. En nuestro caso, consideramos&lt;br /&gt;
&amp;lt;math&amp;gt;\kappa = 1&amp;lt;/math&amp;gt;, de modo que la expresión se simplifica a:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{Q} = - \nabla T&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Bajo esta suposición, en la representación gráfica puede apreciarse que el flujo calorífico es simplemente el opuesto del gradiente de la temperatura, señalando siempre la dirección de máxima disminución térmica.&lt;br /&gt;
[[Archivo:Flujo de calor manuel.png|600px|thumb]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Configuración del Mallado&lt;br /&gt;
h = 0.2;&lt;br /&gt;
x = 0 : h : 4;&lt;br /&gt;
y = 0 : h : 2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definir la Geometría &lt;br /&gt;
y_abajo = X ./ 8;&lt;br /&gt;
y_arriba = 2 - (X ./ 8);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Definir la Temperatura &lt;br /&gt;
T_func = @(x,y) (1 + (y - 1).^2) .* (4 - x);&lt;br /&gt;
T = T_func(X, Y);&lt;br /&gt;
&lt;br /&gt;
% Cálculos Físicos &lt;br /&gt;
% A) Calculamos el Gradiente (nabla T) mediante derivadas numéricas&lt;br /&gt;
[dTdx, dTdy] = gradient(T, h, h);&lt;br /&gt;
&lt;br /&gt;
% Calculamos el Flujo de Calor &lt;br /&gt;
Qx = -dTdx;&lt;br /&gt;
Qy = -dTdy;&lt;br /&gt;
&lt;br /&gt;
% Limpieza &lt;br /&gt;
&lt;br /&gt;
Qx(~dentro) = NaN;&lt;br /&gt;
Qy(~dentro) = NaN;&lt;br /&gt;
T(~dentro) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Color', 'w', 'Name', 'Flujo de Calor Fourier');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
% FONDO: Mapa de Calor &lt;br /&gt;
&lt;br /&gt;
contourf(X, Y, T, 20, 'LineStyle', 'none');&lt;br /&gt;
colormap('jet'); % Paleta de colores: Azul (frío) -&amp;gt; Rojo (caliente)&lt;br /&gt;
&lt;br /&gt;
% Barra de color explicativa&lt;br /&gt;
c = colorbar;&lt;br /&gt;
c.Label.String = 'Temperatura T(x,y)';&lt;br /&gt;
c.Label.FontSize = 10;&lt;br /&gt;
&lt;br /&gt;
% El Campo Vectorial.&lt;br /&gt;
quiver(X, Y, Qx, Qy, 'k', 'LineWidth', 1.2, 'AutoScaleFactor', 1.5);&lt;br /&gt;
&lt;br /&gt;
% Dibujo del contorno.&lt;br /&gt;
plot([0 4], [0 0.5], 'k-', 'LineWidth', 2); &lt;br /&gt;
plot([0 4], [2 1.5], 'k-', 'LineWidth', 2); &lt;br /&gt;
plot([0 0], [0 2], 'k-', 'LineWidth', 2); &lt;br /&gt;
plot([4 4], [0.5 1.5], 'k-', 'LineWidth', 2); &lt;br /&gt;
&lt;br /&gt;
% Configuración Final&lt;br /&gt;
axis equal;&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]); &lt;br /&gt;
grid on;&lt;br /&gt;
xlabel('Eje x'); ylabel('Eje y');&lt;br /&gt;
title({'Vector Flujo de Calor', ...&lt;br /&gt;
'El calor fluye desde las capas más calientes hacia las más frías'});&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Gradiente Térmico==&lt;br /&gt;
El punto de máxima variación térmica corresponde al lugar donde el gradiente de la temperatura alcanza su valor máximo. En la práctica, esto se obtiene igualando la derivada del gradiente a cero.&lt;br /&gt;
&lt;br /&gt;
Mientras que la variación térmica sigue la dirección del gradiente, el flujo de calor más intenso se orienta en sentido contrario, es decir, hacia donde disminuye la temperatura.&lt;br /&gt;
&lt;br /&gt;
Paso 1: Definición de la función para maximizar&lt;br /&gt;
&lt;br /&gt;
Llamamos a la función:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;G(x,y) = |\nabla T|^2&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Desarrollando los términos:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;G(x,y) = \big(1+(y-1)^2\big)^2 + \big(2(y-1)(4-x)\big)^2&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;G(x,y) = (y^2 - 2y + 2)^2 + 4(y-1)^2(4-x)^2&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Paso 2: Cálculo de los puntos críticos&lt;br /&gt;
&lt;br /&gt;
Para maximizar la función, derivamos y resolvemos el sistema:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial G}{\partial x} = -8 (y-1)^2 (4-x) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial G}{\partial y} = 4 (y-1) \big(1 + (y-1)^2 + 2 (4-x)^2 \big) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Al resolver este sistema, encontramos que los mínimos se sitúan sobre la recta:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;y = 1&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Como no hay máximos aislados dentro del dominio, los máximos deben encontrarse en la frontera:&lt;br /&gt;
&lt;br /&gt;
Borde izquierdo: &amp;lt;math&amp;gt;x=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Borde derecho: &amp;lt;math&amp;gt;x=4&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curva inferior: &amp;lt;math&amp;gt;y = x/8&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curva superior: &amp;lt;math&amp;gt;y = 2 - x/8&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras analizar los límites del recinto, los máximos de la función del gradiente térmico se localizan en el borde izquierdo, &amp;lt;math&amp;gt;x=0&amp;lt;/math&amp;gt;. Las coordenadas de los máximos son:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
P(1): x=0.00, y=0.00, Dirección del vector: [-2.00, -8.00]&lt;br /&gt;
P(2): x=0.00, y=2.00, Dirección del vector: [-2.00, 8.00]&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Paso 3: Cálculo de la máxima variación térmica&lt;br /&gt;
&lt;br /&gt;
El valor de la norma del gradiente es igual para P(1) y P(2). Calculamos, por ejemplo, para P(1) = (0,0):&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\nabla T(0,0) = \big(-(1 + (0-1)^2), 2(0-1)(4-0)\big) = (-2,-8)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;|\nabla T(0,0)| = \sqrt{(-2)^2 + (-8)^2} = \sqrt{4 + 64} = 2\sqrt{17} \approx 8.246&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Por lo tanto, la máxima variación térmica en la placa se produce en los puntos P(1) y P(2) y tiene un valor aproximado de 8.246.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:maxvart.jpg|miniaturadeimagen|derecha|800px|Figura 4:Máxima Variación de T]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
h=0.05;&lt;br /&gt;
[X,Y]=meshgrid(0:h:4,0:h:2);&lt;br /&gt;
f=X./8;g=2-X./8;&lt;br /&gt;
EnPlaca=Y&amp;gt;=f&amp;amp;Y&amp;lt;=g;&lt;br /&gt;
&lt;br /&gt;
% Gradiente y Norma&lt;br /&gt;
Tx=-(1+(Y-1).^2); &lt;br /&gt;
Ty=2.*(Y-1).*(4-X);&lt;br /&gt;
&lt;br /&gt;
% Gradiente&lt;br /&gt;
NormaGrad=sqrt(Tx.^2+Ty.^2);&lt;br /&gt;
NormaGrad(~EnPlaca)=0; &lt;br /&gt;
&lt;br /&gt;
% Máximo&lt;br /&gt;
max_val=max(NormaGrad(:));&lt;br /&gt;
[filas,cols]=find(NormaGrad==max_val);&lt;br /&gt;
&lt;br /&gt;
% puntos máximos&lt;br /&gt;
x_max=X(filas,cols);&lt;br /&gt;
y_max=Y(filas,cols);&lt;br /&gt;
&lt;br /&gt;
% Componentes del vector dirección &lt;br /&gt;
u_dir=Tx(filas,cols);&lt;br /&gt;
v_dir=Ty(filas,cols);&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Name','Máxima Variación de T');&lt;br /&gt;
hold on;axis equal;axis([-0.5 4.5 -0.5 2.5]);grid on;&lt;br /&gt;
title({'Puntos de Máxima Variación de Temperatura', '(Color = Magnitud del Gradiente T)'});&lt;br /&gt;
xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
% Mapa de calor&lt;br /&gt;
NormaGrad(~EnPlaca)=NaN;&lt;br /&gt;
contourf(X,Y,NormaGrad,20,'LineStyle','none');&lt;br /&gt;
colormap(jet);colorbar;&lt;br /&gt;
&lt;br /&gt;
% Contorno&lt;br /&gt;
plot([0 4 4 0 0],[0 0.5 1.5 2 0],'k','LineWidth',1.5);&lt;br /&gt;
&lt;br /&gt;
% Puntos rojos y dirección&lt;br /&gt;
plot(x_max, y_max,'ro','MarkerSize',7.5,'MarkerFaceColor','r');&lt;br /&gt;
&lt;br /&gt;
% Flechas de dirección&lt;br /&gt;
quiver(x_max,y_max,u_dir,v_dir,0.5,'k','LineWidth',2,'MaxHeadSize',0.5);&lt;br /&gt;
&lt;br /&gt;
% Resultados&lt;br /&gt;
fprintf('La variación máxima es %.2f\n', max_val);&lt;br /&gt;
fprintf('Ocurre en los puntos:\n');&lt;br /&gt;
for i=1:length(x_max)&lt;br /&gt;
    fprintf('P(%d): x=%.2f, y=%.2f. Dirección del vector: [%.2f, %.2f]\n',i,x_max(i),y_max(i),u_dir(i),v_dir(i));&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Campo de Desplazamientos==&lt;br /&gt;
El campo de desplazamientos de un sólido se representa mediante un campo vectorial, que indica la dirección y sentido del desplazamiento de cada punto mediante vectores (representados como flechas rojas).&lt;br /&gt;
&lt;br /&gt;
Como se puede observar, los puntos que se encuentran más próximos al punto de aplicación de la fuerza experimentan los desplazamientos más grandes, mientras que los situados más alejados apenas se mueven.&lt;br /&gt;
[[Archivo:Desplazamiento_manuel.jpg|thumb|600px]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
&lt;br /&gt;
h = 0.1; &lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la región &lt;br /&gt;
Condicion = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
&lt;br /&gt;
% Aplicamos Máscara&lt;br /&gt;
X(~Condicion) = NaN;&lt;br /&gt;
Y(~Condicion) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo del Campo de Desplazamientos &lt;br /&gt;
&lt;br /&gt;
Rho = sqrt(X.^2 + Y.^2);&lt;br /&gt;
Theta = atan2(Y, X);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U_theta_val = -1/20 .* Rho.^2 .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ux = -U_theta_val .* sin(Theta);&lt;br /&gt;
Uy = U_theta_val .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Calcular la posición deformada&lt;br /&gt;
&lt;br /&gt;
% Posición final = Posición inicial + Desplazamiento&lt;br /&gt;
X_final = X + Ux;&lt;br /&gt;
Y_final = Y + Uy;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Comparativa&lt;br /&gt;
&lt;br /&gt;
figure('Name', 'Deformación de la Placa', 'Color', 'w');&lt;br /&gt;
&lt;br /&gt;
% PLACA ORIGINAL&lt;br /&gt;
subplot(1, 2, 1);&lt;br /&gt;
% Usamos mesh con Z=0 para dibujar la 'rejilla' plana&lt;br /&gt;
mesh(X, Y, zeros(size(X)), 'EdgeColor', 'b');&lt;br /&gt;
view(2); % Vista superior (2D)&lt;br /&gt;
axis equal; grid on;&lt;br /&gt;
title('Placa antes del desplazamiento');&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
&lt;br /&gt;
% PLACA DEFORMADA &lt;br /&gt;
subplot(1, 2, 2);&lt;br /&gt;
mesh(X_final, Y_final, zeros(size(X)), 'EdgeColor', 'b');&lt;br /&gt;
view(2);&lt;br /&gt;
axis equal; grid on;&lt;br /&gt;
title('Placa después del desplazamiento');&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Apartado 5 &lt;br /&gt;
&lt;br /&gt;
figure('Name', 'Campo Vectorial de Desplazamientos');&lt;br /&gt;
hold on; axis equal; grid on;&lt;br /&gt;
title('Campo de Desplazamientos');&lt;br /&gt;
&lt;br /&gt;
% Dibujamos contorno original de referencia&lt;br /&gt;
plot(X(:), Y(:), '.k', 'MarkerSize', 1);&lt;br /&gt;
&lt;br /&gt;
% Dibujamos los vectores &lt;br /&gt;
quiver(X, Y, Ux, Uy, 0, 'r', 'LineWidth', 1.5);&lt;br /&gt;
&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
xlim([-0.5 4.5]); ylim([-0.5 2.5]);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Desplazamiento del Sólido==&lt;br /&gt;
Debido a la fuerza de magnitud desconocida, el sólido experimenta un desplazamiento descrito por el campo vectorial:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{u}(\rho, \theta) = -\frac{1}{20},\rho^2 \cos \theta ; \vec{e}_\theta&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
El sólido se deforma siguiendo este campo de desplazamientos. Como era de esperar, los puntos más próximos al punto de aplicación de la fuerza son los que sufren los mayores desplazamientos, mientras que los situados más lejos apenas se mueven.&lt;br /&gt;
&lt;br /&gt;
Se adjuntan las gráficas que muestran el desplazamiento sufrido. (Nota: el desplazamiento inferior no se aprecia en la visualización actual; sería necesario ajustar los ejes en el código para visualizarlo correctamente).&lt;br /&gt;
[[Archivo:Apartado6deformacion.png|thumb|1000px]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Definición de Geometría y Desplazamientos&lt;br /&gt;
h = 0.1; % Paso del mallado&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la Región &lt;br /&gt;
&lt;br /&gt;
% Aplicamos máscara &lt;br /&gt;
X(~Condicion) = NaN;&lt;br /&gt;
Y(~Condicion) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo de Desplazamientos&lt;br /&gt;
&lt;br /&gt;
Rho = sqrt(X.^2 + Y.^2);&lt;br /&gt;
Theta = atan2(Y, X);&lt;br /&gt;
&lt;br /&gt;
% Valor escalar de u_theta&lt;br /&gt;
U_theta_val = -1/20 .* Rho.^2 .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
% Proyección a cartesianas &lt;br /&gt;
Ux = -U_theta_val .* sin(Theta);&lt;br /&gt;
Uy = U_theta_val .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
% --- Posición Final Deformada ---&lt;br /&gt;
X_final = X + Ux;&lt;br /&gt;
Y_final = Y + Uy;&lt;br /&gt;
&lt;br /&gt;
% Gráfica Comparativa de Sólidos Mallados &lt;br /&gt;
figure('Name', 'Comparación Antes/Después', 'Color', 'w', 'Position', [100, 100, 1000, 500]);&lt;br /&gt;
&lt;br /&gt;
% Placa Original&lt;br /&gt;
subplot(1, 2, 1);&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
mesh(X, Y, zeros(size(X)), 'EdgeColor', [0 0.7 0.9], 'FaceColor', 'none');&lt;br /&gt;
&lt;br /&gt;
view(2); &lt;br /&gt;
axis equal; &lt;br /&gt;
grid on;&lt;br /&gt;
box on; &lt;br /&gt;
&lt;br /&gt;
title('Placa antes del desplazamiento', 'FontWeight', 'bold');&lt;br /&gt;
xlabel('Eje X');&lt;br /&gt;
ylabel('Eje Y');&lt;br /&gt;
axis([-1.5 4.5 0 2.5]);&lt;br /&gt;
&lt;br /&gt;
% Placa Deformada&lt;br /&gt;
subplot(1, 2, 2);&lt;br /&gt;
hold on;&lt;br /&gt;
% Dibujamos la malla usando las coordenadas finales (X_final, Y_final)&lt;br /&gt;
mesh(X_final, Y_final, zeros(size(X)), 'EdgeColor', [0 0.7 0.9], 'FaceColor', 'none');&lt;br /&gt;
&lt;br /&gt;
view(2);&lt;br /&gt;
axis equal;&lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
&lt;br /&gt;
title('Placa después del desplazamiento', 'FontWeight', 'bold');&lt;br /&gt;
xlabel('Eje X');&lt;br /&gt;
ylabel('Eje Y');&lt;br /&gt;
axis([-1.5 4.5 0 2.5]); &lt;br /&gt;
&lt;br /&gt;
sgtitle('Visualización del Sólido Mallado bajo Deformación'); % Título&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Divergencia==&lt;br /&gt;
La divergencia &amp;lt;math&amp;gt;\nabla \cdot \vec{u}&amp;lt;/math&amp;gt; mide la variación de volumen local en el sólido. En nuestro caso, el cálculo da como resultado:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\nabla \cdot \vec{u} = \frac{y}{20}&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Este resultado indica que la placa experimenta una expansión positiva, que aumenta linealmente con la altura, debido al estiramiento de las fibras superiores.&lt;br /&gt;
&lt;br /&gt;
En la representación gráfica se observa la distribución de la divergencia mediante franjas de color:&lt;br /&gt;
&lt;br /&gt;
En azul se encuentra la base, donde el volumen permanece prácticamente constante.&lt;br /&gt;
&lt;br /&gt;
Hacia la parte superior, el color se degrada progresivamente hasta un rojo intenso, indicando el punto de máxima expansión, independiente de la posición horizontal &lt;br /&gt;
𝑥&lt;br /&gt;
x.&lt;br /&gt;
[[Archivo:divergenciaplaca.jpg|miniaturadeimagen|derecha|800px|Figura 7]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
% Definir Malla y Placa&lt;br /&gt;
h=0.05;&lt;br /&gt;
[X,Y]=meshgrid(0:h:4, 0:h:2);&lt;br /&gt;
f=X./8;g=2-X./8; % Límites&lt;br /&gt;
EnPlaca=Y&amp;gt;=f&amp;amp;Y&amp;lt;=g; % Máscara lógica&lt;br /&gt;
&lt;br /&gt;
% Divergencia&lt;br /&gt;
Div=Y./20; &lt;br /&gt;
Div(~EnPlaca)=NaN;&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Name','Divergencia');clf;hold on;&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]);box on;&lt;br /&gt;
title('Divergencia: Cambio de Volumen');&lt;br /&gt;
xlabel('X'); ylabel('Y');&lt;br /&gt;
[C, h_cont]=contourf(X, Y, Div, 20,'LineStyle','none');&lt;br /&gt;
colormap(jet);&lt;br /&gt;
c=colorbar;ylabel(c,'Valor de Divergencia');&lt;br /&gt;
&lt;br /&gt;
% Dibujar bordes negros&lt;br /&gt;
x_b = linspace(0, 4, 200);&lt;br /&gt;
plot(x_b, x_b./8,'k','LineWidth',1);&lt;br /&gt;
plot(x_b, 2 - x_b./8,'k','LineWidth',1);&lt;br /&gt;
plot([0 0],[0 2],'k','LineWidth',1);&lt;br /&gt;
plot([4 4],[0.5 1.5],'k','LineWidth',1);&lt;br /&gt;
&lt;br /&gt;
% Señalar puntos clave&lt;br /&gt;
plot(0,2,'kp','MarkerSize',12,'MarkerFaceColor','r');&lt;br /&gt;
text(0.1, 2.1,'Max Expansión','FontWeight','bold');&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
plot(0,0,'kp','MarkerSize',12,'MarkerFaceColor','b');&lt;br /&gt;
text(0.1,-0.1,'Divergencia Nula','FontWeight','bold');&lt;br /&gt;
hold off;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rotacional==&lt;br /&gt;
Se calcula el rotacional &amp;lt;math&amp;gt;|\nabla \times \vec{u}|&amp;lt;/math&amp;gt; en todos los puntos del sólido.&lt;br /&gt;
&lt;br /&gt;
Los resultados muestran que los puntos más alejados del origen y alineados con el eje &lt;br /&gt;
𝑥&lt;br /&gt;
x experimentan los mayores valores de rotacional, indicando que estas zonas sufren la mayor rotación local debido al campo de desplazamientos aplicado.&lt;br /&gt;
[[Archivo:Rotacionaldemanuel.png|600px|thumb]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Mallado y Región&lt;br /&gt;
h = 0.05;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la placa&lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
X(~Condition) = NaN;&lt;br /&gt;
Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Definición del Mallado y Región&lt;br /&gt;
h = 0.05;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la placa &lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
X(~Condition) = NaN;&lt;br /&gt;
Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
% 2. Cálculo del Rotacional (Magnitud)&lt;br /&gt;
% |Rot(u)| = 0.15 * x&lt;br /&gt;
Rotacional = 0.15 .* X;&lt;br /&gt;
&lt;br /&gt;
% Gráfica en 3D &lt;br /&gt;
figure('Name', 'Rotacional en 3D', 'Color', 'w');&lt;br /&gt;
&lt;br /&gt;
% 'surf' crea la superficie 3D. X e Y son la base, Rotacional es la altura.&lt;br /&gt;
s = surf(X, Y, Rotacional);&lt;br /&gt;
&lt;br /&gt;
% --- Estética de la gráfica 3D ---&lt;br /&gt;
shading interp; % Suaviza los colores (quita las líneas de la cuadrícula)&lt;br /&gt;
colormap(jet); % Mapa de colores (Azul -&amp;gt; Rojo)&lt;br /&gt;
alpha(0.9); % Un poco de transparencia (opcional)&lt;br /&gt;
&lt;br /&gt;
view(3); % Pone la vista en perspectiva 3D automáticamente&lt;br /&gt;
axis tight; % Ajusta los ejes al contenido&lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
&lt;br /&gt;
% Añadir barra de colores&lt;br /&gt;
c = colorbar;&lt;br /&gt;
c.Label.String = 'Magnitud |\nabla \times u|';&lt;br /&gt;
c.Label.FontSize = 11;&lt;br /&gt;
&lt;br /&gt;
% Etiquetas y Título&lt;br /&gt;
title('Magnitud del Rotacional (Vista 3D)', 'FontSize', 12);&lt;br /&gt;
xlabel('Eje X (Posición)', 'FontWeight', 'bold');&lt;br /&gt;
ylabel('Eje Y (Posición)', 'FontWeight', 'bold');&lt;br /&gt;
zlabel('Valor del Rotacional', 'FontWeight', 'bold');&lt;br /&gt;
&lt;br /&gt;
% Añadir luz&lt;br /&gt;
camlight left;&lt;br /&gt;
lighting phong;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
hold on;&lt;br /&gt;
contour(X, Y, Rotacional, 15, 'z', 'offset', 0, 'LineWidth', 1);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Tensores Deformacionales==&lt;br /&gt;
Se define el tensor de deformaciones como la parte simétrica del gradiente del campo de desplazamientos &amp;lt;math&amp;gt;\vec{u}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\varepsilon(\vec{u}) = \frac{1}{2} \big( \nabla \vec{u} + (\nabla \vec{u})^T \big)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En un medio elástico lineal, isótropo y homogéneo, los desplazamientos permiten expresar el tensor de tensiones &amp;lt;math&amp;gt;\sigma&amp;lt;/math&amp;gt; mediante la relación de Hooke generalizada:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\sigma = \lambda , (\nabla \cdot \vec{u}) , I + 2 \mu , \varepsilon(\vec{u})&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
donde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; es el tensor identidad en &amp;lt;math&amp;gt;\mathbb{R}^3&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; son los coeficientes de Lamé, que dependen de las propiedades elásticas del material.&lt;br /&gt;
&lt;br /&gt;
Tomando &amp;lt;math&amp;gt;\lambda = \mu = 1&amp;lt;/math&amp;gt;, se representan las tensiones normales en las direcciones de los ejes coordenados:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{i} \cdot \sigma \cdot \vec{i}&amp;lt;/math&amp;gt; — tensión normal en la dirección del eje &lt;br /&gt;
𝑥&lt;br /&gt;
x,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{j} \cdot \sigma \cdot \vec{j}&amp;lt;/math&amp;gt; — tensión normal en la dirección del eje &lt;br /&gt;
𝑦&lt;br /&gt;
y,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{k} \cdot \sigma \cdot \vec{k}&amp;lt;/math&amp;gt; — tensión normal en la dirección del eje &lt;br /&gt;
𝑧&lt;br /&gt;
z.&lt;br /&gt;
&lt;br /&gt;
Solo se representan las componentes no nulas, mostrando cómo se distribuyen las tensiones normales en el sólido bajo el campo de desplazamientos aplicado.&lt;br /&gt;
[[Archivo:contorno.jpg|miniaturadeimagen|derecha|800px|Figura 9]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% Geometría de la placa&lt;br /&gt;
h = 0.1;                        &lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
num_puntos_y = round(2/h);&lt;br /&gt;
s = linspace(0,1,num_puntos_y+1);% parámetro vertical [0,1]&lt;br /&gt;
&lt;br /&gt;
[U,S] = meshgrid(x,s);&lt;br /&gt;
f = U./8;                        &lt;br /&gt;
g = 2 - U./8;                   &lt;br /&gt;
&lt;br /&gt;
X = U;                           &lt;br /&gt;
Y = f + S.*(g - f);           &lt;br /&gt;
&lt;br /&gt;
% Campo de desplazamientos aplicado&lt;br /&gt;
&lt;br /&gt;
u = (X.*Y)/20;                   % componente en x&lt;br /&gt;
v = -(X.^2)/20;                  % componente en y&lt;br /&gt;
&lt;br /&gt;
% Derivadas analíticas&lt;br /&gt;
ux_x = Y/20;                    &lt;br /&gt;
ux_y = X/20;                   &lt;br /&gt;
vy_x = -(X/10);                 &lt;br /&gt;
vy_y = zeros(size(X));           &lt;br /&gt;
&lt;br /&gt;
div_u = ux_x + vy_y; % divergencia = y/20&lt;br /&gt;
&lt;br /&gt;
% Tensor de deformaciones&lt;br /&gt;
eps_xx = ux_x;                  &lt;br /&gt;
eps_yy = vy_y;                  &lt;br /&gt;
eps_xy = 0.5*(ux_y + vy_x);      &lt;br /&gt;
&lt;br /&gt;
% Tensiones &lt;br /&gt;
lambda = 1; mu = 1;&lt;br /&gt;
sigma_xx = lambda*div_u + 2*mu*eps_xx;   % = 3y/20&lt;br /&gt;
sigma_yy = lambda*div_u + 2*mu*eps_yy;   % = y/20&lt;br /&gt;
sigma_zz = lambda*div_u;                 % = y/20 (eps_zz=0)&lt;br /&gt;
sigma_xy = 2*mu*eps_xy;                  % = -x/20&lt;br /&gt;
sigma_yx = sigma_xy;                     % simétrico&lt;br /&gt;
sigma_xz = zeros(size(X));               % no hay variación en z&lt;br /&gt;
sigma_zx = zeros(size(X));               % idem&lt;br /&gt;
&lt;br /&gt;
% Tensión tangencial respecto al plano ortogonal a i &lt;br /&gt;
&lt;br /&gt;
tau_i = abs(sigma_yx);                   % = | -x/20 |&lt;br /&gt;
&lt;br /&gt;
% Gráficos&lt;br /&gt;
&lt;br /&gt;
cm = turbo;&lt;br /&gt;
lw = 1.2;&lt;br /&gt;
&lt;br /&gt;
% Mallado y contornos de la placa&lt;br /&gt;
figure('Name','Mallado de la placa','Color','w');&lt;br /&gt;
mesh(X,Y,zeros(size(X)),'EdgeColor',[0,0.6,0.7],'FaceColor','none'); hold on;&lt;br /&gt;
plot(X(1,:),Y(1,:),'k','LineWidth',2);       % borde inferior&lt;br /&gt;
plot(X(end,:),Y(end,:),'k','LineWidth',2);    % borde superior&lt;br /&gt;
plot(X(:,1),Y(:,1),'k','LineWidth',2);        % borde izquierdo (pared)&lt;br /&gt;
plot(X(:,end),Y(:,end),'k','LineWidth',2);    % borde derecho&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]); axis equal; grid on; box on;&lt;br /&gt;
xlabel('x'); ylabel('y'); title('Mallado y contorno de la placa');&lt;br /&gt;
&lt;br /&gt;
% Tensiones normales&lt;br /&gt;
figure('Name','Tensiones normales','Color','w');&lt;br /&gt;
tiledlayout(1,3,'Padding','compact','TileSpacing','compact');&lt;br /&gt;
&lt;br /&gt;
nexttile;&lt;br /&gt;
surf(X,Y,sigma_xx); shading interp; colormap(cm); colorbar;&lt;br /&gt;
title('\sigma_{xx}'); xlabel('x'); ylabel('y'); zlabel('\sigma_{xx}');&lt;br /&gt;
axis tight; daspect([1 1 0.35]); view(45,30);&lt;br /&gt;
&lt;br /&gt;
nexttile;&lt;br /&gt;
surf(X,Y,sigma_yy); shading interp; colormap(cm); colorbar;&lt;br /&gt;
title('\sigma_{yy}'); xlabel('x'); ylabel('y'); zlabel('\sigma_{yy}');&lt;br /&gt;
axis tight; daspect([1 1 0.35]); view(45,30);&lt;br /&gt;
&lt;br /&gt;
nexttile;&lt;br /&gt;
surf(X,Y,sigma_zz); shading interp; colormap(cm); colorbar;&lt;br /&gt;
title('\sigma_{zz}'); xlabel('x'); ylabel('y'); zlabel('\sigma_{zz}');&lt;br /&gt;
axis tight; daspect([1 1 0.35]); view(45,30);&lt;br /&gt;
sgtitle('Distribución de tensiones normales (\lambda=\mu=1)','FontWeight','bold');&lt;br /&gt;
&lt;br /&gt;
% Tensión tangencial respecto a i &lt;br /&gt;
figure('Name','Tension tangencial respecto a i','Color','w');&lt;br /&gt;
surf(X,Y,tau_i); shading interp; colormap(cm); colorbar;&lt;br /&gt;
title('\tau_{i} = |\sigma_{xy}|'); xlabel('x'); ylabel('y'); zlabel('\tau_{i}');&lt;br /&gt;
axis tight; daspect([1 1 0.35]); view(45,30); grid on;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
figure('Name','Contornos 2D de tensiones','Color','w');&lt;br /&gt;
tiledlayout(1,4,'Padding','compact','TileSpacing','compact');&lt;br /&gt;
&lt;br /&gt;
nexttile; contourf(X,Y,sigma_xx,20,'LineColor','none'); axis equal tight; colorbar;&lt;br /&gt;
title('\sigma_{xx}'); xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
nexttile; contourf(X,Y,sigma_yy,20,'LineColor','none'); axis equal tight; colorbar;&lt;br /&gt;
title('\sigma_{yy}'); xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
nexttile; contourf(X,Y,sigma_zz,20,'LineColor','none'); axis equal tight; colorbar;&lt;br /&gt;
title('\sigma_{zz}'); xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
nexttile; contourf(X,Y,tau_i,20,'LineColor','none'); axis equal tight; colorbar;&lt;br /&gt;
title('\tau_{i}'); xlabel('x'); ylabel('y');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tensiones tangenciales==&lt;br /&gt;
Se representan las tensiones tangenciales respecto al plano ortogonal al eje &amp;lt;math&amp;gt;\vec{i}&amp;lt;/math&amp;gt;, definidas como:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;|\sigma \cdot \vec{i} - (\vec{i} \cdot \sigma \cdot \vec{i}) , \vec{i}|&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En la gráfica se muestran únicamente las componentes no nulas, permitiendo visualizar las tensiones tangenciales que actúan sobre los planos perpendiculares al eje &lt;br /&gt;
𝑥&lt;br /&gt;
x.&lt;br /&gt;
[[Archivo:Tensionesdemanuel.png|600px|thumb]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Definición del Mallado&lt;br /&gt;
h = 0.15; &lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la placa &lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
X(~Condition) = NaN;&lt;br /&gt;
Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo de la Tensión Tangencial &lt;br /&gt;
&lt;br /&gt;
Sig_xy = -X ./ 20;&lt;br /&gt;
&lt;br /&gt;
% Definición del Vector Tangencial&lt;br /&gt;
&lt;br /&gt;
U_vec = zeros(size(X)); % Componente X es 0&lt;br /&gt;
V_vec = Sig_xy; % Componente Y es el valor de la tensión&lt;br /&gt;
&lt;br /&gt;
% Gráfica&lt;br /&gt;
figure('Name', 'Apartado 10: Vector Tensión Tangencial', 'Color', 'w');&lt;br /&gt;
&lt;br /&gt;
% Usamos quiver para dibujar las flechitas azules&lt;br /&gt;
&lt;br /&gt;
quiver(X, Y, U_vec, V_vec, 'b', 'LineWidth', 1);&lt;br /&gt;
&lt;br /&gt;
% Configuración de la vista&lt;br /&gt;
view(2); &lt;br /&gt;
axis equal; &lt;br /&gt;
grid on; &lt;br /&gt;
&lt;br /&gt;
% Títulos &lt;br /&gt;
title('Tensiones tangenciales (Plano ortogonal a i)');&lt;br /&gt;
xlabel('Eje X');&lt;br /&gt;
ylabel('Eje Y');&lt;br /&gt;
&lt;br /&gt;
% Ajuste de límites &lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&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 mediante la expresión:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma_{VM} = \sqrt{\frac{(\sigma_1 - \sigma_2)^2 + (\sigma_2 - \sigma_3)^2 + (\sigma_3 - \sigma_1)^2}{2}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Esta fórmula combina las diferencias entre las tensiones principales (𝜎1,𝜎2,𝜎3σ1,σ2,σ3) y permite calcular el esfuerzo equivalente que experimenta el material, útil para evaluar la resistencia frente a la plasticidad o el fallo.&lt;br /&gt;
[[Archivo:vonn.jpg|miniaturadeimagen|derecha|700px|Figura 11]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% Malla&lt;br /&gt;
h = 0.1;&lt;br /&gt;
[x, y] = meshgrid(0:h:4, 0:h:2);   % ojo: x -&amp;gt; columnas, y -&amp;gt; filas&lt;br /&gt;
X = x; Y = y;&lt;br /&gt;
&lt;br /&gt;
% Bordes de la placa&lt;br /&gt;
f = X./8;&lt;br /&gt;
g = 2 - X./8;&lt;br /&gt;
EnPlaca = (Y &amp;gt;= f) &amp;amp; (Y &amp;lt;= g);&lt;br /&gt;
&lt;br /&gt;
% Definición del campo de desplazamientos en cartesianas&lt;br /&gt;
ux=(1/20).*X.*Y;&lt;br /&gt;
uy=-(1/20).*X.^2;&lt;br /&gt;
&lt;br /&gt;
% Derivadas analíticas:&lt;br /&gt;
% ux_x=d(u_x)/dx=y/20&lt;br /&gt;
% ux_y=d(u_x)/dy=x/20&lt;br /&gt;
% uy_x=d(u_y)/dx=-x/10&lt;br /&gt;
% uy_y=d(u_y)/dy 0&lt;br /&gt;
ux_x=Y./20;&lt;br /&gt;
ux_y=X./20;&lt;br /&gt;
uy_x=-X./10;&lt;br /&gt;
uy_y=zeros(size(X));&lt;br /&gt;
&lt;br /&gt;
% Divergencia (útil para sigma)&lt;br /&gt;
divU=ux_x+uy_y;&lt;br /&gt;
&lt;br /&gt;
% Tensor de deformaciones simétrico &lt;br /&gt;
% epsilon = 1/2(grad u + grad u^T)&lt;br /&gt;
% epsilon_xx = ux_x&lt;br /&gt;
% epsilon_yy = uy_y&lt;br /&gt;
% epsilon_xy = 1/2*(ux_y + uy_x)&lt;br /&gt;
eps_xx = ux_x;&lt;br /&gt;
eps_yy = uy_y;&lt;br /&gt;
eps_xy = 0.5*(ux_y + uy_x);&lt;br /&gt;
&lt;br /&gt;
% Para el caso 3D consideramos eps_zz = 0&lt;br /&gt;
eps_zz = zeros(size(X));&lt;br /&gt;
&lt;br /&gt;
% Coeficientes de Lamé&lt;br /&gt;
lambda=1;&lt;br /&gt;
mu=1;&lt;br /&gt;
&lt;br /&gt;
% Construcción del tensor de tensiones &lt;br /&gt;
%sigma = lambda*div(u)*I + 2*mu*eps&lt;br /&gt;
sigma_xx = lambda.*divU + 2*mu.*eps_xx;&lt;br /&gt;
sigma_yy = lambda.*divU + 2*mu.*eps_yy;&lt;br /&gt;
sigma_zz = lambda.*divU + 2*mu.*eps_zz;&lt;br /&gt;
sigma_xy = 2*mu.*eps_xy;    % = sigma_yx&lt;br /&gt;
&lt;br /&gt;
% Von Mises y matriz para autovalores&lt;br /&gt;
VM = NaN(size(X));&lt;br /&gt;
S1 = NaN(size(X)); S2 = NaN(size(X)); S3 = NaN(size(X));&lt;br /&gt;
&lt;br /&gt;
% Loop sobre puntos dentro de la placa para calcular autovalores&lt;br /&gt;
[idx_i,idx_j]=find(EnPlaca);&lt;br /&gt;
npts=numel(idx_i);&lt;br /&gt;
&lt;br /&gt;
for k = 1:npts&lt;br /&gt;
    i = idx_i(k); j = idx_j(k);   % i: fila (y index), j: columna (x index)&lt;br /&gt;
    % construir sigma 3x3 en ese punto&lt;br /&gt;
    S = [sigma_xx(i,j), sigma_xy(i,j), 0;sigma_xy(i,j), sigma_yy(i,j),0;0,0,sigma_zz(i,j)];&lt;br /&gt;
    e = eig(S);          &lt;br /&gt;
    % ordenar autovalores (no estrictamente necesario, pero ordeno descendente)&lt;br /&gt;
    e = sort(e,'descend');&lt;br /&gt;
    s1 = e(1); s2 = e(2); s3 = e(3);&lt;br /&gt;
    % tensión de Von Mises (fórmula)&lt;br /&gt;
    sigmaVM = sqrt( ((s1-s2).^2 + (s2-s3).^2 + (s3-s1).^2) / 2 );&lt;br /&gt;
    VM(i,j) = sigmaVM;&lt;br /&gt;
    S1(i,j) = s1; S2(i,j) = s2; S3(i,j) = s3;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
VM(~EnPlaca) = NaN;&lt;br /&gt;
% Buscar máximo de Von Mises dentro de la placa&lt;br /&gt;
[maxVM, indMax] = max(VM(:));&lt;br /&gt;
[rowMax, colMax] = ind2sub(size(VM), indMax);&lt;br /&gt;
xMax = X(rowMax, colMax);&lt;br /&gt;
yMax = Y(rowMax, colMax);&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Name','Tensión de Von Mises','Color','w'); clf; hold on;&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]); box on;&lt;br /&gt;
title('Tensión de Von Mises \sigma_{VM}');&lt;br /&gt;
xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
% Contourf del campo VM&lt;br /&gt;
numLevels = 30;&lt;br /&gt;
[C, hC] = contourf(X, Y, VM, numLevels, 'LineStyle','none');&lt;br /&gt;
colormap(jet);&lt;br /&gt;
c = colorbar; ylabel(c, '\sigma_{VM}');&lt;br /&gt;
% Bordes de la placa&lt;br /&gt;
xb = linspace(0,4,200);&lt;br /&gt;
plot(xb, xb./8, 'k-', 'LineWidth', 1.5);         &lt;br /&gt;
plot(xb, 2 - xb./8, 'k-', 'LineWidth', 1.5);    &lt;br /&gt;
plot([0 0], [0 2], 'k-', 'LineWidth', 1.5);  &lt;br /&gt;
plot([4 4], [0.5 1.5], 'k-', 'LineWidth', 1.5); &lt;br /&gt;
&lt;br /&gt;
% Punto de máxima tensión de Von Mises&lt;br /&gt;
plot(xMax, yMax, 'rp', 'MarkerSize', 14, 'MarkerFaceColor', 'r');&lt;br /&gt;
text(xMax+0.08, yMax+0.08, sprintf('Máx VM = %.3g', maxVM), 'FontWeight','bold','Color','r');&lt;br /&gt;
&lt;br /&gt;
% Mejora estética&lt;br /&gt;
set(gcf,'Color','w');&lt;br /&gt;
shading interp;&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
&lt;br /&gt;
% Información&lt;br /&gt;
fprintf('Máximo Von Mises = %.6g en (x,y) = (%.4g, %.4g)\n', maxVM, xMax, yMax);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Campo de Fuerzas==&lt;br /&gt;
&lt;br /&gt;
El campo de fuerzas &amp;lt;math&amp;gt;\vec{F}&amp;lt;/math&amp;gt; que actúa sobre la placa, y que es responsable del desplazamiento observado, se puede aproximar mediante la ecuación de la elasticidad lineal:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{F} = - \operatorname{div} \sigma&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt;\operatorname{div} \sigma&amp;lt;/math&amp;gt; es la divergencia de un campo tensorial. En coordenadas cartesianas, se expresa como:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\operatorname{div} \sigma = (\operatorname{div} \sigma)_1 , \vec{i} + (\operatorname{div} \sigma)_2 , \vec{j} + (\operatorname{div} \sigma)3 , \vec{k}, \quad (\operatorname{div} \sigma)i = \sum{j=1}^{3} \frac{\partial \sigma{ij}}{\partial x_j}&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Esta formulación permite calcular, a partir del tensor de tensiones, el campo de fuerzas internas que genera los desplazamientos de la placa.&lt;br /&gt;
[[Archivo:Fuerzas_manuel.jpg|700px|thumb]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%% Apartado 12: Campo de Fuerzas Volumétricas (F = -div Sigma)&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% 1. Definición del Mallado&lt;br /&gt;
h = 0.1;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la placa (Trapecio)&lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
X(~Condition) = NaN;&lt;br /&gt;
Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
lambda = 1; mu = 1;&lt;br /&gt;
&lt;br /&gt;
% 2. Recalculamos las Tensiones (Necesarias para derivar)&lt;br /&gt;
% Usamos las fórmulas analíticas que ya conocemos&lt;br /&gt;
Div_u = Y ./ 20;&lt;br /&gt;
Eps_xx = Y ./ 20;&lt;br /&gt;
Eps_yy = zeros(size(X));&lt;br /&gt;
&lt;br /&gt;
Sig_xx = lambda .* Div_u + 2 .* mu .* Eps_xx; % = 3y/20&lt;br /&gt;
Sig_yy = lambda .* Div_u + 2 .* mu .* Eps_yy; % = y/20&lt;br /&gt;
Sig_xy = -X ./ 20; % = -x/20 (cizalladura)&lt;br /&gt;
&lt;br /&gt;
% 3. Cálculo de la Divergencia del Tensor (Numéricamente)&lt;br /&gt;
% F = -div(sigma)&lt;br /&gt;
% Fx = -( d(Sxx)/dx + d(Sxy)/dy )&lt;br /&gt;
% Fy = -( d(Sxy)/dx + d(Syy)/dy )&lt;br /&gt;
&lt;br /&gt;
% La función gradient calcula derivadas centrales.&lt;br /&gt;
% Sintaxis: gradient(Matriz, paso_x, paso_y)&lt;br /&gt;
[dSxx_dx, dSxx_dy] = gradient(Sig_xx, h, h);&lt;br /&gt;
[dSxy_dx, dSxy_dy] = gradient(Sig_xy, h, h);&lt;br /&gt;
[dSyy_dx, dSyy_dy] = gradient(Sig_yy, h, h);&lt;br /&gt;
&lt;br /&gt;
Fx = - (dSxx_dx + dSxy_dy);&lt;br /&gt;
Fy = - (dSxy_dx + dSyy_dy);&lt;br /&gt;
&lt;br /&gt;
% 4. Comprobación de Magnitud (Para ver si es cero)&lt;br /&gt;
MagnitudF = sqrt(Fx.^2 + Fy.^2);&lt;br /&gt;
max_F = max(MagnitudF(:));&lt;br /&gt;
&lt;br /&gt;
fprintf('--- Resultado Apartado 12 ---\n');&lt;br /&gt;
fprintf('La fuerza máxima calculada es: %e\n', max_F);&lt;br /&gt;
&lt;br /&gt;
if max_F &amp;lt; 1e-10&lt;br /&gt;
fprintf('CONCLUSIÓN: La fuerza es prácticamente NULA (Equilibrio).\n');&lt;br /&gt;
subtitle_text = 'Fuerza \approx 0 (Equilibrio Estático)';&lt;br /&gt;
else&lt;br /&gt;
subtitle_text = 'Existen fuerzas volumétricas';&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% 5. Gráfica&lt;br /&gt;
figure('Name', 'Apartado 12: Campo de Fuerzas', 'Color', 'w');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
% Dibujamos los vectores.&lt;br /&gt;
% Como son casi cero, MATLAB pintará puntos. Para ver &amp;quot;algo&amp;quot;,&lt;br /&gt;
% a veces se normalizan, pero lo correcto es mostrar que no hay fuerza.&lt;br /&gt;
quiver(X, Y, Fx, Fy, 'r');&lt;br /&gt;
&lt;br /&gt;
% Dibujar bordes&lt;br /&gt;
plot([0 4 4 0 0], [0 0.5 1.5 2 0], 'k--', 'LineWidth', 0.5); % Caja aproximada&lt;br /&gt;
&lt;br /&gt;
title('Campo de Fuerzas Volumétricas');&lt;br /&gt;
subtitle(subtitle_text);&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&lt;br /&gt;
&lt;br /&gt;
% Añadimos una nota en la gráfica explicándolo&lt;br /&gt;
text(1, 1, {'Fuerza Nula', '(puntos indican magnitud ~0)'}, ...&lt;br /&gt;
'Color', 'r', 'FontWeight', 'bold', 'HorizontalAlignment', 'center');&lt;br /&gt;
&lt;br /&gt;
hold off;}}&lt;br /&gt;
&lt;br /&gt;
==Densidad==&lt;br /&gt;
[[Archivo:dens.jpg|miniaturadeimagen|derecha|800px|Figura 10]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
% Mallado&lt;br /&gt;
h=0.05; &lt;br /&gt;
[X,Y]=meshgrid(0:h:4,0:h:2);&lt;br /&gt;
&lt;br /&gt;
% Forma de la placa&lt;br /&gt;
Condition=(Y&amp;gt;=X./8)&amp;amp;(Y&amp;lt;=2-X./8);&lt;br /&gt;
&lt;br /&gt;
% Definición de la Densidad : d(x,y)=(4-x)*|y|&lt;br /&gt;
Densidad=(4-X).*abs(Y);&lt;br /&gt;
&lt;br /&gt;
% Filtrado para la Gráfica&lt;br /&gt;
Densidad(~Condition)=NaN;&lt;br /&gt;
&lt;br /&gt;
% Visualización 3D&lt;br /&gt;
figure('Name','Densidad', 'Color','w');&lt;br /&gt;
&lt;br /&gt;
% Superficie 3D&lt;br /&gt;
surf(X,Y,Densidad);&lt;br /&gt;
&lt;br /&gt;
% Configuración&lt;br /&gt;
shading interp; % Elimina las líneas negras para que se vea suave&lt;br /&gt;
colormap(jet);  % Mapa de colores (De azul a rojo)&lt;br /&gt;
colorbar;       % Barra de referencia&lt;br /&gt;
caxis([0 8]);   % Fija la escala de colores&lt;br /&gt;
&lt;br /&gt;
% Etiquetas y Título&lt;br /&gt;
title({'Densidad'},'FontSize',13);&lt;br /&gt;
xlabel('Eje X','FontWeight','bold');&lt;br /&gt;
ylabel('Eje Y','FontWeight','bold');&lt;br /&gt;
zlabel('Densidad (kg/m^2)','FontWeight','bold');&lt;br /&gt;
&lt;br /&gt;
% Ajustes&lt;br /&gt;
axis tight;      % Ajusta los ejes al contenido&lt;br /&gt;
view(-45, 30);   % Ángulo de vista &lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
&lt;br /&gt;
% Proyección de sombra en el suelo&lt;br /&gt;
hold on;&lt;br /&gt;
% Dibujamos el contorno plano abajo del todo (en z=0) para referencia&lt;br /&gt;
contour(X,Y,Densidad,20,'z','Offset',0); &lt;br /&gt;
hold off;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ejemplos de uso en la ingeniería ==&lt;br /&gt;
&lt;br /&gt;
Las vigas en voladizo destacan por su forma y por la versatilidad que ofrecen, lo que las convierte en un elemento muy empleado en distintos ámbitos. Algunos de sus usos más frecuentes son:&lt;br /&gt;
&lt;br /&gt;
• Arquitectura: se utilizan en balcones, terrazas, marquesinas o cubiertas de acceso.&lt;br /&gt;
• Maquinaria: forman parte de brazos de grúas y de las palas de los aerogeneradores.&lt;br /&gt;
• Ingeniería: se aplican en la construcción de puentes en voladizo y en diferentes componentes estructurales.&lt;/div&gt;</summary>
		<author><name>Alejandro.Morales</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Placa_Plana_(Grupo_09)&amp;diff=95147</id>
		<title>Placa Plana (Grupo 09)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Placa_Plana_(Grupo_09)&amp;diff=95147"/>
				<updated>2025-12-02T18:33:54Z</updated>
		
		<summary type="html">&lt;p&gt;Alejandro.Morales: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Placa plana. Grupo 09 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC25/26|2025-26]] | Rafael Gonzalez Gomez &amp;lt;br/&amp;gt; Mario Belinchón Buendía &amp;lt;br/&amp;gt;Alejandro Morales Tari&amp;lt;br/&amp;gt;  Pablo Márquez Blanco}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Teoría de Campos]]&lt;br /&gt;
[[Categoría:TC25/26]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
&lt;br /&gt;
Consideramos la sección longitudinal de una viga en voladizo de geometría rectangular (en dimensión 2). Esta viga ocupa la región mostrada en la Figura 1, y permanece anclada en la pared vertical situada en el lado izquierdo. La zona que vamos a estudiar se describe mediante:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
(x,y) \in [0,4] \times [f(x),, g(x)],&lt;br /&gt;
\qquad&lt;br /&gt;
f(x)=\frac{x}{8},&lt;br /&gt;
\qquad&lt;br /&gt;
g(x)= 2-\frac{x}{8}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En esta placa se consideran dos magnitudes físicas relevantes.&lt;br /&gt;
La primera es el campo de temperaturas, modelado por la función:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
T(x,y)=\big(1+(y-1)^2\big),(4-x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
La segunda magnitud corresponde al campo de desplazamientos &amp;lt;math&amp;gt;\vec u(x,y)&amp;lt;/math&amp;gt;, producido por una fuerza externa —cuyo valor exacto no conocemos— y que deforma la placa.&lt;br /&gt;
&lt;br /&gt;
Para describir la deformación, sea&lt;br /&gt;
&amp;lt;math&amp;gt;\vec r_0(x,y)=x,\vec i + y,\vec j&amp;lt;/math&amp;gt;&lt;br /&gt;
el vector de posición inicial de cada punto. Entonces, tras aplicarse la fuerza, la nueva posición de un punto queda dada por:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\vec r_d(x,y)=\vec r_0(x,y)+\vec u(x,y)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Supondremos que la fuerza aplicada induce un desplazamiento expresado, en coordenadas polares &amp;lt;math&amp;gt;(\rho,\theta)&amp;lt;/math&amp;gt;, mediante:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\vec u(\rho,\theta)= -\frac{1}{20},\rho^2\cos\theta ; \vec e_\theta&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Este modelo permite estudiar tanto la distribución térmica en la viga como la deformación resultante, proporcionando una base adecuada para analizar su comportamiento estructural.&lt;br /&gt;
&lt;br /&gt;
==Mallado==&lt;br /&gt;
Para comenzar, construiremos un mallado de la sección longitudinal que nos permita representar los puntos interiores del sólido. Para ello, hemos empleado un paso de muestreo de&lt;br /&gt;
&amp;lt;math&amp;gt;h = \tfrac{1}{10}&amp;lt;/math&amp;gt;&lt;br /&gt;
y hemos definido la malla sobre el rectángulo que delimita los ejes coordenados:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt; (x, y) \in [-1,, 5] \times [-1,, 3] &amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Este mallado servirá como base para discretizar la región de interés y facilitar los cálculos posteriores.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:mimallado.png|thumb|700px|]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
h = 1/10;&lt;br /&gt;
color_malla = [0, 0.6, 0.6]; % Color &lt;br /&gt;
&lt;br /&gt;
% Coordenadas&lt;br /&gt;
u = 0 : h : 4;&lt;br /&gt;
v = 0 : h : 2;&lt;br /&gt;
[U, V] = meshgrid(u, v);&lt;br /&gt;
&lt;br /&gt;
% Calculamos los bordes &lt;br /&gt;
y_abajo = U ./ 8;&lt;br /&gt;
y_arriba = 2 - (U ./ 8);&lt;br /&gt;
&lt;br /&gt;
% Interpolamos&lt;br /&gt;
factor_altura = V ./ 2; % Va de 0 (abajo) a 1 (arriba)&lt;br /&gt;
&lt;br /&gt;
X = U;&lt;br /&gt;
Y = y_abajo + factor_altura .* (y_arriba - y_abajo);&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Color', 'w'); hold on;&lt;br /&gt;
&lt;br /&gt;
% Dibujar las líneas VERTICALES&lt;br /&gt;
plot(X, Y, 'Color', color_malla, 'LineWidth', 0.5);&lt;br /&gt;
&lt;br /&gt;
% Dibujar las líneas HORIZONTALES&lt;br /&gt;
plot(X', Y', 'Color', color_malla, 'LineWidth', 0.5);&lt;br /&gt;
&lt;br /&gt;
% Dibujar el contorno &lt;br /&gt;
plot(u, u./8, 'k-', 'LineWidth', 2); % Borde Abajo&lt;br /&gt;
plot(u, 2 - u./8, 'k-', 'LineWidth', 2); % Borde Arriba&lt;br /&gt;
plot([0 0], [0 2], 'k-', 'LineWidth', 2); % Borde Izquierdo&lt;br /&gt;
plot([4 4], [0.5 1.5], 'k-', 'LineWidth', 2); % Borde Derecho&lt;br /&gt;
&lt;br /&gt;
% Configuración final&lt;br /&gt;
axis([-1 5 -1 3]); % Zoom/Encuadre exacto&lt;br /&gt;
xlabel('x'); ylabel('y');&lt;br /&gt;
title('Mallado de la placa plana');&lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Curvas de nivel==&lt;br /&gt;
A continuación se representan las curvas de nivel de la temperatura con el fin de identificar visualmente la zona donde esta alcanza su valor máximo. A partir de la gráfica puede apreciarse que los puntos donde la temperatura es mayor son:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;(x,y) = (0,0) \quad \text{y} \quad (0,2)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Además, calculamos el gradiente de la temperatura para analizar la dirección de mayor variación de esta magnitud. El gradiente viene dado por:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\nabla T(x,y)&lt;br /&gt;
= \left( \frac{\partial T}{\partial x},, \frac{\partial T}{\partial y} \right)&lt;br /&gt;
= \Big( -\big(1+(y-1)^2\big),; (4-x)\cdot 2(y-1) \Big).&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En la representación gráfica se observa que el vector gradiente es ortogonal a las curvas de nivel, tal como establece la teoría: apunta siempre en la dirección de crecimiento más rápido de la temperatura.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:curvadenivel.jpeg|miniaturadeimagen|derecha|800px|Figura 2]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
% Definición &lt;br /&gt;
h=0.1;               &lt;br /&gt;
x=0:h:4;                  &lt;br /&gt;
y=0:h:2;           &lt;br /&gt;
[X,Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Funciones  &lt;br /&gt;
f=@(x)x./8;  &lt;br /&gt;
g=@(x)2-x./8;  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EnPlaca=Y&amp;gt;=f(X)&amp;amp;Y&amp;lt; g(X);&lt;br /&gt;
&lt;br /&gt;
% Definición de la Temperatura y el Gradiente&lt;br /&gt;
&lt;br /&gt;
T=(1+(Y-1).^2).*(4-X);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
T_plot=T;&lt;br /&gt;
T_plot(~EnPlaca)=NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo numérico del gradiente para los vectores &lt;br /&gt;
&lt;br /&gt;
U=-(1+(Y-1).^2);          &lt;br /&gt;
V=2.*(Y-1).*(4-X);   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U(~EnPlaca)=NaN;&lt;br /&gt;
V(~EnPlaca)=NaN;&lt;br /&gt;
&lt;br /&gt;
% Gráfica&lt;br /&gt;
figure(1);&lt;br /&gt;
clf; &lt;br /&gt;
hold on;&lt;br /&gt;
axis equal; &lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&lt;br /&gt;
title({'Isotermas y Gradiente \nabla T', 'T(x,y) = (1+(y-1)^2)(4-x)'});&lt;br /&gt;
xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
% Mapa de calor &lt;br /&gt;
[C_fill, h_fill] = contourf(X, Y, T_plot, 20, 'LineStyle', 'none');&lt;br /&gt;
colormap(jet); &lt;br /&gt;
cb=colorbar;&lt;br /&gt;
ylabel(cb,'Temperatura T');&lt;br /&gt;
&lt;br /&gt;
% Curvas de nivel&lt;br /&gt;
[C, h_cont]=contour(X,Y,T_plot,10,'k','LineWidth',1.5);&lt;br /&gt;
clabel(C,h_cont,'FontSize',9,'Color','k','FontWeight','bold');&lt;br /&gt;
&lt;br /&gt;
% Campo Vectorial &lt;br /&gt;
&lt;br /&gt;
step=3; &lt;br /&gt;
quiver(X(1:step:end,1:step:end),Y(1:step:end, 1:step:end), ...&lt;br /&gt;
U(1:step:end,1:step:end),V(1:step:end,1:step:end), ...&lt;br /&gt;
1.2,'k','LineWidth',1); % '1.2' es el factor de escala de las flechas&lt;br /&gt;
&lt;br /&gt;
% Dibujar bordes de la placa&lt;br /&gt;
plot(x,f(x),'k-','LineWidth',2);&lt;br /&gt;
plot(x,g(x),'k-','LineWidth',2); &lt;br /&gt;
plot([0 0],[f(0) g(0)],'k-','LineWidth',2); &lt;br /&gt;
plot([4 4],[f(4) g(4)],'k-','LineWidth',2); &lt;br /&gt;
&lt;br /&gt;
% Señalar Máximo&lt;br /&gt;
plot(0,0,'rp','MarkerSize',12,'MarkerFaceColor','r');&lt;br /&gt;
plot(0,2,'rp','MarkerSize',12,'MarkerFaceColor','r');&lt;br /&gt;
text(0.1,0,'Max T','Color','white','FontWeight','bold');&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ley de Fourier==&lt;br /&gt;
Según la ley de Fourier, el flujo de energía calorífica &amp;lt;math&amp;gt;\vec{Q}&amp;lt;/math&amp;gt; viene dado por:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{Q} = -\kappa , \nabla T&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt;\kappa&amp;lt;/math&amp;gt; representa la conductividad térmica del material. En nuestro caso, consideramos&lt;br /&gt;
&amp;lt;math&amp;gt;\kappa = 1&amp;lt;/math&amp;gt;, de modo que la expresión se simplifica a:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{Q} = - \nabla T&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Bajo esta suposición, en la representación gráfica puede apreciarse que el flujo calorífico es simplemente el opuesto del gradiente de la temperatura, señalando siempre la dirección de máxima disminución térmica.&lt;br /&gt;
[[Archivo:Flujo de calor manuel.png|600px|thumb]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Configuración del Mallado&lt;br /&gt;
h = 0.2;&lt;br /&gt;
x = 0 : h : 4;&lt;br /&gt;
y = 0 : h : 2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definir la Geometría &lt;br /&gt;
y_abajo = X ./ 8;&lt;br /&gt;
y_arriba = 2 - (X ./ 8);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Definir la Temperatura &lt;br /&gt;
T_func = @(x,y) (1 + (y - 1).^2) .* (4 - x);&lt;br /&gt;
T = T_func(X, Y);&lt;br /&gt;
&lt;br /&gt;
% Cálculos Físicos &lt;br /&gt;
% A) Calculamos el Gradiente (nabla T) mediante derivadas numéricas&lt;br /&gt;
[dTdx, dTdy] = gradient(T, h, h);&lt;br /&gt;
&lt;br /&gt;
% Calculamos el Flujo de Calor &lt;br /&gt;
Qx = -dTdx;&lt;br /&gt;
Qy = -dTdy;&lt;br /&gt;
&lt;br /&gt;
% Limpieza &lt;br /&gt;
&lt;br /&gt;
Qx(~dentro) = NaN;&lt;br /&gt;
Qy(~dentro) = NaN;&lt;br /&gt;
T(~dentro) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Color', 'w', 'Name', 'Flujo de Calor Fourier');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
% FONDO: Mapa de Calor &lt;br /&gt;
&lt;br /&gt;
contourf(X, Y, T, 20, 'LineStyle', 'none');&lt;br /&gt;
colormap('jet'); % Paleta de colores: Azul (frío) -&amp;gt; Rojo (caliente)&lt;br /&gt;
&lt;br /&gt;
% Barra de color explicativa&lt;br /&gt;
c = colorbar;&lt;br /&gt;
c.Label.String = 'Temperatura T(x,y)';&lt;br /&gt;
c.Label.FontSize = 10;&lt;br /&gt;
&lt;br /&gt;
% El Campo Vectorial.&lt;br /&gt;
quiver(X, Y, Qx, Qy, 'k', 'LineWidth', 1.2, 'AutoScaleFactor', 1.5);&lt;br /&gt;
&lt;br /&gt;
% Dibujo del contorno.&lt;br /&gt;
plot([0 4], [0 0.5], 'k-', 'LineWidth', 2); &lt;br /&gt;
plot([0 4], [2 1.5], 'k-', 'LineWidth', 2); &lt;br /&gt;
plot([0 0], [0 2], 'k-', 'LineWidth', 2); &lt;br /&gt;
plot([4 4], [0.5 1.5], 'k-', 'LineWidth', 2); &lt;br /&gt;
&lt;br /&gt;
% Configuración Final&lt;br /&gt;
axis equal;&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]); &lt;br /&gt;
grid on;&lt;br /&gt;
xlabel('Eje x'); ylabel('Eje y');&lt;br /&gt;
title({'Vector Flujo de Calor', ...&lt;br /&gt;
'El calor fluye desde las capas más calientes hacia las más frías'});&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Gradiente Térmico==&lt;br /&gt;
El punto de máxima variación térmica corresponde al lugar donde el gradiente de la temperatura alcanza su valor máximo. En la práctica, esto se obtiene igualando la derivada del gradiente a cero.&lt;br /&gt;
&lt;br /&gt;
Mientras que la variación térmica sigue la dirección del gradiente, el flujo de calor más intenso se orienta en sentido contrario, es decir, hacia donde disminuye la temperatura.&lt;br /&gt;
&lt;br /&gt;
Paso 1: Definición de la función para maximizar&lt;br /&gt;
&lt;br /&gt;
Llamamos a la función:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;G(x,y) = |\nabla T|^2&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Desarrollando los términos:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;G(x,y) = \big(1+(y-1)^2\big)^2 + \big(2(y-1)(4-x)\big)^2&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;G(x,y) = (y^2 - 2y + 2)^2 + 4(y-1)^2(4-x)^2&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Paso 2: Cálculo de los puntos críticos&lt;br /&gt;
&lt;br /&gt;
Para maximizar la función, derivamos y resolvemos el sistema:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial G}{\partial x} = -8 (y-1)^2 (4-x) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial G}{\partial y} = 4 (y-1) \big(1 + (y-1)^2 + 2 (4-x)^2 \big) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Al resolver este sistema, encontramos que los mínimos se sitúan sobre la recta:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;y = 1&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Como no hay máximos aislados dentro del dominio, los máximos deben encontrarse en la frontera:&lt;br /&gt;
&lt;br /&gt;
Borde izquierdo: &amp;lt;math&amp;gt;x=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Borde derecho: &amp;lt;math&amp;gt;x=4&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curva inferior: &amp;lt;math&amp;gt;y = x/8&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curva superior: &amp;lt;math&amp;gt;y = 2 - x/8&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras analizar los límites del recinto, los máximos de la función del gradiente térmico se localizan en el borde izquierdo, &amp;lt;math&amp;gt;x=0&amp;lt;/math&amp;gt;. Las coordenadas de los máximos son:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
P(1): x=0.00, y=0.00, Dirección del vector: [-2.00, -8.00]&lt;br /&gt;
P(2): x=0.00, y=2.00, Dirección del vector: [-2.00, 8.00]&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Paso 3: Cálculo de la máxima variación térmica&lt;br /&gt;
&lt;br /&gt;
El valor de la norma del gradiente es igual para P(1) y P(2). Calculamos, por ejemplo, para P(1) = (0,0):&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\nabla T(0,0) = \big(-(1 + (0-1)^2), 2(0-1)(4-0)\big) = (-2,-8)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;|\nabla T(0,0)| = \sqrt{(-2)^2 + (-8)^2} = \sqrt{4 + 64} = 2\sqrt{17} \approx 8.246&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Por lo tanto, la máxima variación térmica en la placa se produce en los puntos P(1) y P(2) y tiene un valor aproximado de 8.246.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:maxvart.jpg|miniaturadeimagen|derecha|800px|Figura 4:Máxima Variación de T]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
h=0.05;&lt;br /&gt;
[X,Y]=meshgrid(0:h:4,0:h:2);&lt;br /&gt;
f=X./8;g=2-X./8;&lt;br /&gt;
EnPlaca=Y&amp;gt;=f&amp;amp;Y&amp;lt;=g;&lt;br /&gt;
&lt;br /&gt;
% Gradiente y Norma&lt;br /&gt;
Tx=-(1+(Y-1).^2); &lt;br /&gt;
Ty=2.*(Y-1).*(4-X);&lt;br /&gt;
&lt;br /&gt;
% Gradiente&lt;br /&gt;
NormaGrad=sqrt(Tx.^2+Ty.^2);&lt;br /&gt;
NormaGrad(~EnPlaca)=0; &lt;br /&gt;
&lt;br /&gt;
% Máximo&lt;br /&gt;
max_val=max(NormaGrad(:));&lt;br /&gt;
[filas,cols]=find(NormaGrad==max_val);&lt;br /&gt;
&lt;br /&gt;
% puntos máximos&lt;br /&gt;
x_max=X(filas,cols);&lt;br /&gt;
y_max=Y(filas,cols);&lt;br /&gt;
&lt;br /&gt;
% Componentes del vector dirección &lt;br /&gt;
u_dir=Tx(filas,cols);&lt;br /&gt;
v_dir=Ty(filas,cols);&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Name','Máxima Variación de T');&lt;br /&gt;
hold on;axis equal;axis([-0.5 4.5 -0.5 2.5]);grid on;&lt;br /&gt;
title({'Puntos de Máxima Variación de Temperatura', '(Color = Magnitud del Gradiente T)'});&lt;br /&gt;
xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
% Mapa de calor&lt;br /&gt;
NormaGrad(~EnPlaca)=NaN;&lt;br /&gt;
contourf(X,Y,NormaGrad,20,'LineStyle','none');&lt;br /&gt;
colormap(jet);colorbar;&lt;br /&gt;
&lt;br /&gt;
% Contorno&lt;br /&gt;
plot([0 4 4 0 0],[0 0.5 1.5 2 0],'k','LineWidth',1.5);&lt;br /&gt;
&lt;br /&gt;
% Puntos rojos y dirección&lt;br /&gt;
plot(x_max, y_max,'ro','MarkerSize',7.5,'MarkerFaceColor','r');&lt;br /&gt;
&lt;br /&gt;
% Flechas de dirección&lt;br /&gt;
quiver(x_max,y_max,u_dir,v_dir,0.5,'k','LineWidth',2,'MaxHeadSize',0.5);&lt;br /&gt;
&lt;br /&gt;
% Resultados&lt;br /&gt;
fprintf('La variación máxima es %.2f\n', max_val);&lt;br /&gt;
fprintf('Ocurre en los puntos:\n');&lt;br /&gt;
for i=1:length(x_max)&lt;br /&gt;
    fprintf('P(%d): x=%.2f, y=%.2f. Dirección del vector: [%.2f, %.2f]\n',i,x_max(i),y_max(i),u_dir(i),v_dir(i));&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Campo de Desplazamientos==&lt;br /&gt;
El campo de desplazamientos de un sólido se representa mediante un campo vectorial, que indica la dirección y sentido del desplazamiento de cada punto mediante vectores (representados como flechas rojas).&lt;br /&gt;
&lt;br /&gt;
Como se puede observar, los puntos que se encuentran más próximos al punto de aplicación de la fuerza experimentan los desplazamientos más grandes, mientras que los situados más alejados apenas se mueven.&lt;br /&gt;
[[Archivo:Desplazamiento_manuel.jpg|thumb|600px]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
&lt;br /&gt;
h = 0.1; &lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la región &lt;br /&gt;
Condicion = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
&lt;br /&gt;
% Aplicamos Máscara&lt;br /&gt;
X(~Condicion) = NaN;&lt;br /&gt;
Y(~Condicion) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo del Campo de Desplazamientos &lt;br /&gt;
&lt;br /&gt;
Rho = sqrt(X.^2 + Y.^2);&lt;br /&gt;
Theta = atan2(Y, X);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U_theta_val = -1/20 .* Rho.^2 .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ux = -U_theta_val .* sin(Theta);&lt;br /&gt;
Uy = U_theta_val .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Calcular la posición deformada&lt;br /&gt;
&lt;br /&gt;
% Posición final = Posición inicial + Desplazamiento&lt;br /&gt;
X_final = X + Ux;&lt;br /&gt;
Y_final = Y + Uy;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Comparativa&lt;br /&gt;
&lt;br /&gt;
figure('Name', 'Deformación de la Placa', 'Color', 'w');&lt;br /&gt;
&lt;br /&gt;
% PLACA ORIGINAL&lt;br /&gt;
subplot(1, 2, 1);&lt;br /&gt;
% Usamos mesh con Z=0 para dibujar la 'rejilla' plana&lt;br /&gt;
mesh(X, Y, zeros(size(X)), 'EdgeColor', 'b');&lt;br /&gt;
view(2); % Vista superior (2D)&lt;br /&gt;
axis equal; grid on;&lt;br /&gt;
title('Placa antes del desplazamiento');&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
&lt;br /&gt;
% PLACA DEFORMADA &lt;br /&gt;
subplot(1, 2, 2);&lt;br /&gt;
mesh(X_final, Y_final, zeros(size(X)), 'EdgeColor', 'b');&lt;br /&gt;
view(2);&lt;br /&gt;
axis equal; grid on;&lt;br /&gt;
title('Placa después del desplazamiento');&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Apartado 5 &lt;br /&gt;
&lt;br /&gt;
figure('Name', 'Campo Vectorial de Desplazamientos');&lt;br /&gt;
hold on; axis equal; grid on;&lt;br /&gt;
title('Campo de Desplazamientos');&lt;br /&gt;
&lt;br /&gt;
% Dibujamos contorno original de referencia&lt;br /&gt;
plot(X(:), Y(:), '.k', 'MarkerSize', 1);&lt;br /&gt;
&lt;br /&gt;
% Dibujamos los vectores &lt;br /&gt;
quiver(X, Y, Ux, Uy, 0, 'r', 'LineWidth', 1.5);&lt;br /&gt;
&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
xlim([-0.5 4.5]); ylim([-0.5 2.5]);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Desplazamiento del Sólido==&lt;br /&gt;
Debido a la fuerza de magnitud desconocida, el sólido experimenta un desplazamiento descrito por el campo vectorial:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{u}(\rho, \theta) = -\frac{1}{20},\rho^2 \cos \theta ; \vec{e}_\theta&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
El sólido se deforma siguiendo este campo de desplazamientos. Como era de esperar, los puntos más próximos al punto de aplicación de la fuerza son los que sufren los mayores desplazamientos, mientras que los situados más lejos apenas se mueven.&lt;br /&gt;
&lt;br /&gt;
Se adjuntan las gráficas que muestran el desplazamiento sufrido. (Nota: el desplazamiento inferior no se aprecia en la visualización actual; sería necesario ajustar los ejes en el código para visualizarlo correctamente).&lt;br /&gt;
[[Archivo:Apartado6deformacion.png|thumb|1000px]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Definición de Geometría y Desplazamientos&lt;br /&gt;
h = 0.1; % Paso del mallado&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la Región &lt;br /&gt;
&lt;br /&gt;
% Aplicamos máscara &lt;br /&gt;
X(~Condicion) = NaN;&lt;br /&gt;
Y(~Condicion) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo de Desplazamientos&lt;br /&gt;
&lt;br /&gt;
Rho = sqrt(X.^2 + Y.^2);&lt;br /&gt;
Theta = atan2(Y, X);&lt;br /&gt;
&lt;br /&gt;
% Valor escalar de u_theta&lt;br /&gt;
U_theta_val = -1/20 .* Rho.^2 .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
% Proyección a cartesianas &lt;br /&gt;
Ux = -U_theta_val .* sin(Theta);&lt;br /&gt;
Uy = U_theta_val .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
% --- Posición Final Deformada ---&lt;br /&gt;
X_final = X + Ux;&lt;br /&gt;
Y_final = Y + Uy;&lt;br /&gt;
&lt;br /&gt;
% Gráfica Comparativa de Sólidos Mallados &lt;br /&gt;
figure('Name', 'Comparación Antes/Después', 'Color', 'w', 'Position', [100, 100, 1000, 500]);&lt;br /&gt;
&lt;br /&gt;
% Placa Original&lt;br /&gt;
subplot(1, 2, 1);&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
mesh(X, Y, zeros(size(X)), 'EdgeColor', [0 0.7 0.9], 'FaceColor', 'none');&lt;br /&gt;
&lt;br /&gt;
view(2); &lt;br /&gt;
axis equal; &lt;br /&gt;
grid on;&lt;br /&gt;
box on; &lt;br /&gt;
&lt;br /&gt;
title('Placa antes del desplazamiento', 'FontWeight', 'bold');&lt;br /&gt;
xlabel('Eje X');&lt;br /&gt;
ylabel('Eje Y');&lt;br /&gt;
axis([-1.5 4.5 0 2.5]);&lt;br /&gt;
&lt;br /&gt;
% Placa Deformada&lt;br /&gt;
subplot(1, 2, 2);&lt;br /&gt;
hold on;&lt;br /&gt;
% Dibujamos la malla usando las coordenadas finales (X_final, Y_final)&lt;br /&gt;
mesh(X_final, Y_final, zeros(size(X)), 'EdgeColor', [0 0.7 0.9], 'FaceColor', 'none');&lt;br /&gt;
&lt;br /&gt;
view(2);&lt;br /&gt;
axis equal;&lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
&lt;br /&gt;
title('Placa después del desplazamiento', 'FontWeight', 'bold');&lt;br /&gt;
xlabel('Eje X');&lt;br /&gt;
ylabel('Eje Y');&lt;br /&gt;
axis([-1.5 4.5 0 2.5]); &lt;br /&gt;
&lt;br /&gt;
sgtitle('Visualización del Sólido Mallado bajo Deformación'); % Título&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Divergencia==&lt;br /&gt;
La divergencia &amp;lt;math&amp;gt;\nabla \cdot \vec{u}&amp;lt;/math&amp;gt; mide la variación de volumen local en el sólido. En nuestro caso, el cálculo da como resultado:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\nabla \cdot \vec{u} = \frac{y}{20}&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Este resultado indica que la placa experimenta una expansión positiva, que aumenta linealmente con la altura, debido al estiramiento de las fibras superiores.&lt;br /&gt;
&lt;br /&gt;
En la representación gráfica se observa la distribución de la divergencia mediante franjas de color:&lt;br /&gt;
&lt;br /&gt;
En azul se encuentra la base, donde el volumen permanece prácticamente constante.&lt;br /&gt;
&lt;br /&gt;
Hacia la parte superior, el color se degrada progresivamente hasta un rojo intenso, indicando el punto de máxima expansión, independiente de la posición horizontal &lt;br /&gt;
𝑥&lt;br /&gt;
x.&lt;br /&gt;
[[Archivo:divergenciaplaca.jpg|miniaturadeimagen|derecha|800px|Figura 7]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
% Definir Malla y Placa&lt;br /&gt;
h=0.05;&lt;br /&gt;
[X,Y]=meshgrid(0:h:4, 0:h:2);&lt;br /&gt;
f=X./8;g=2-X./8; % Límites&lt;br /&gt;
EnPlaca=Y&amp;gt;=f&amp;amp;Y&amp;lt;=g; % Máscara lógica&lt;br /&gt;
&lt;br /&gt;
% Divergencia&lt;br /&gt;
Div=Y./20; &lt;br /&gt;
Div(~EnPlaca)=NaN;&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Name','Divergencia');clf;hold on;&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]);box on;&lt;br /&gt;
title('Divergencia: Cambio de Volumen');&lt;br /&gt;
xlabel('X'); ylabel('Y');&lt;br /&gt;
[C, h_cont]=contourf(X, Y, Div, 20,'LineStyle','none');&lt;br /&gt;
colormap(jet);&lt;br /&gt;
c=colorbar;ylabel(c,'Valor de Divergencia');&lt;br /&gt;
&lt;br /&gt;
% Dibujar bordes negros&lt;br /&gt;
x_b = linspace(0, 4, 200);&lt;br /&gt;
plot(x_b, x_b./8,'k','LineWidth',1);&lt;br /&gt;
plot(x_b, 2 - x_b./8,'k','LineWidth',1);&lt;br /&gt;
plot([0 0],[0 2],'k','LineWidth',1);&lt;br /&gt;
plot([4 4],[0.5 1.5],'k','LineWidth',1);&lt;br /&gt;
&lt;br /&gt;
% Señalar puntos clave&lt;br /&gt;
plot(0,2,'kp','MarkerSize',12,'MarkerFaceColor','r');&lt;br /&gt;
text(0.1, 2.1,'Max Expansión','FontWeight','bold');&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
plot(0,0,'kp','MarkerSize',12,'MarkerFaceColor','b');&lt;br /&gt;
text(0.1,-0.1,'Divergencia Nula','FontWeight','bold');&lt;br /&gt;
hold off;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rotacional==&lt;br /&gt;
Se calcula el rotacional &amp;lt;math&amp;gt;|\nabla \times \vec{u}|&amp;lt;/math&amp;gt; en todos los puntos del sólido.&lt;br /&gt;
&lt;br /&gt;
Los resultados muestran que los puntos más alejados del origen y alineados con el eje &lt;br /&gt;
𝑥&lt;br /&gt;
x experimentan los mayores valores de rotacional, indicando que estas zonas sufren la mayor rotación local debido al campo de desplazamientos aplicado.&lt;br /&gt;
[[Archivo:Rotacionaldemanuel.png|600px|thumb]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Mallado y Región&lt;br /&gt;
h = 0.05;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la placa&lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
X(~Condition) = NaN;&lt;br /&gt;
Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Definición del Mallado y Región&lt;br /&gt;
h = 0.05;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la placa &lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
X(~Condition) = NaN;&lt;br /&gt;
Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
% 2. Cálculo del Rotacional (Magnitud)&lt;br /&gt;
% |Rot(u)| = 0.15 * x&lt;br /&gt;
Rotacional = 0.15 .* X;&lt;br /&gt;
&lt;br /&gt;
% Gráfica en 3D &lt;br /&gt;
figure('Name', 'Rotacional en 3D', 'Color', 'w');&lt;br /&gt;
&lt;br /&gt;
% 'surf' crea la superficie 3D. X e Y son la base, Rotacional es la altura.&lt;br /&gt;
s = surf(X, Y, Rotacional);&lt;br /&gt;
&lt;br /&gt;
% --- Estética de la gráfica 3D ---&lt;br /&gt;
shading interp; % Suaviza los colores (quita las líneas de la cuadrícula)&lt;br /&gt;
colormap(jet); % Mapa de colores (Azul -&amp;gt; Rojo)&lt;br /&gt;
alpha(0.9); % Un poco de transparencia (opcional)&lt;br /&gt;
&lt;br /&gt;
view(3); % Pone la vista en perspectiva 3D automáticamente&lt;br /&gt;
axis tight; % Ajusta los ejes al contenido&lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
&lt;br /&gt;
% Añadir barra de colores&lt;br /&gt;
c = colorbar;&lt;br /&gt;
c.Label.String = 'Magnitud |\nabla \times u|';&lt;br /&gt;
c.Label.FontSize = 11;&lt;br /&gt;
&lt;br /&gt;
% Etiquetas y Título&lt;br /&gt;
title('Magnitud del Rotacional (Vista 3D)', 'FontSize', 12);&lt;br /&gt;
xlabel('Eje X (Posición)', 'FontWeight', 'bold');&lt;br /&gt;
ylabel('Eje Y (Posición)', 'FontWeight', 'bold');&lt;br /&gt;
zlabel('Valor del Rotacional', 'FontWeight', 'bold');&lt;br /&gt;
&lt;br /&gt;
% Añadir luz&lt;br /&gt;
camlight left;&lt;br /&gt;
lighting phong;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
hold on;&lt;br /&gt;
contour(X, Y, Rotacional, 15, 'z', 'offset', 0, 'LineWidth', 1);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Tensores Deformacionales==&lt;br /&gt;
Se define el tensor de deformaciones como la parte simétrica del gradiente del campo de desplazamientos &amp;lt;math&amp;gt;\vec{u}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\varepsilon(\vec{u}) = \frac{1}{2} \big( \nabla \vec{u} + (\nabla \vec{u})^T \big)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En un medio elástico lineal, isótropo y homogéneo, los desplazamientos permiten expresar el tensor de tensiones &amp;lt;math&amp;gt;\sigma&amp;lt;/math&amp;gt; mediante la relación de Hooke generalizada:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\sigma = \lambda , (\nabla \cdot \vec{u}) , I + 2 \mu , \varepsilon(\vec{u})&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
donde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; es el tensor identidad en &amp;lt;math&amp;gt;\mathbb{R}^3&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; son los coeficientes de Lamé, que dependen de las propiedades elásticas del material.&lt;br /&gt;
&lt;br /&gt;
Tomando &amp;lt;math&amp;gt;\lambda = \mu = 1&amp;lt;/math&amp;gt;, se representan las tensiones normales en las direcciones de los ejes coordenados:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{i} \cdot \sigma \cdot \vec{i}&amp;lt;/math&amp;gt; — tensión normal en la dirección del eje &lt;br /&gt;
𝑥&lt;br /&gt;
x,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{j} \cdot \sigma \cdot \vec{j}&amp;lt;/math&amp;gt; — tensión normal en la dirección del eje &lt;br /&gt;
𝑦&lt;br /&gt;
y,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{k} \cdot \sigma \cdot \vec{k}&amp;lt;/math&amp;gt; — tensión normal en la dirección del eje &lt;br /&gt;
𝑧&lt;br /&gt;
z.&lt;br /&gt;
&lt;br /&gt;
Solo se representan las componentes no nulas, mostrando cómo se distribuyen las tensiones normales en el sólido bajo el campo de desplazamientos aplicado.&lt;br /&gt;
[[Archivo:contorno.jpg|miniaturadeimagen|derecha|800px|Figura 9]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% Geometría de la placa&lt;br /&gt;
h = 0.1;                        &lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
num_puntos_y = round(2/h);&lt;br /&gt;
s = linspace(0,1,num_puntos_y+1);% parámetro vertical [0,1]&lt;br /&gt;
&lt;br /&gt;
[U,S] = meshgrid(x,s);&lt;br /&gt;
f = U./8;                        &lt;br /&gt;
g = 2 - U./8;                   &lt;br /&gt;
&lt;br /&gt;
X = U;                           &lt;br /&gt;
Y = f + S.*(g - f);           &lt;br /&gt;
&lt;br /&gt;
% Campo de desplazamientos aplicado&lt;br /&gt;
&lt;br /&gt;
u = (X.*Y)/20;                   % componente en x&lt;br /&gt;
v = -(X.^2)/20;                  % componente en y&lt;br /&gt;
&lt;br /&gt;
% Derivadas analíticas&lt;br /&gt;
ux_x = Y/20;                    &lt;br /&gt;
ux_y = X/20;                   &lt;br /&gt;
vy_x = -(X/10);                 &lt;br /&gt;
vy_y = zeros(size(X));           &lt;br /&gt;
&lt;br /&gt;
div_u = ux_x + vy_y; % divergencia = y/20&lt;br /&gt;
&lt;br /&gt;
% Tensor de deformaciones&lt;br /&gt;
eps_xx = ux_x;                  &lt;br /&gt;
eps_yy = vy_y;                  &lt;br /&gt;
eps_xy = 0.5*(ux_y + vy_x);      &lt;br /&gt;
&lt;br /&gt;
% Tensiones &lt;br /&gt;
lambda = 1; mu = 1;&lt;br /&gt;
sigma_xx = lambda*div_u + 2*mu*eps_xx;   % = 3y/20&lt;br /&gt;
sigma_yy = lambda*div_u + 2*mu*eps_yy;   % = y/20&lt;br /&gt;
sigma_zz = lambda*div_u;                 % = y/20 (eps_zz=0)&lt;br /&gt;
sigma_xy = 2*mu*eps_xy;                  % = -x/20&lt;br /&gt;
sigma_yx = sigma_xy;                     % simétrico&lt;br /&gt;
sigma_xz = zeros(size(X));               % no hay variación en z&lt;br /&gt;
sigma_zx = zeros(size(X));               % idem&lt;br /&gt;
&lt;br /&gt;
% Tensión tangencial respecto al plano ortogonal a i &lt;br /&gt;
&lt;br /&gt;
tau_i = abs(sigma_yx);                   % = | -x/20 |&lt;br /&gt;
&lt;br /&gt;
% Gráficos&lt;br /&gt;
&lt;br /&gt;
cm = turbo;&lt;br /&gt;
lw = 1.2;&lt;br /&gt;
&lt;br /&gt;
% Mallado y contornos de la placa&lt;br /&gt;
figure('Name','Mallado de la placa','Color','w');&lt;br /&gt;
mesh(X,Y,zeros(size(X)),'EdgeColor',[0,0.6,0.7],'FaceColor','none'); hold on;&lt;br /&gt;
plot(X(1,:),Y(1,:),'k','LineWidth',2);       % borde inferior&lt;br /&gt;
plot(X(end,:),Y(end,:),'k','LineWidth',2);    % borde superior&lt;br /&gt;
plot(X(:,1),Y(:,1),'k','LineWidth',2);        % borde izquierdo (pared)&lt;br /&gt;
plot(X(:,end),Y(:,end),'k','LineWidth',2);    % borde derecho&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]); axis equal; grid on; box on;&lt;br /&gt;
xlabel('x'); ylabel('y'); title('Mallado y contorno de la placa');&lt;br /&gt;
&lt;br /&gt;
% Tensiones normales&lt;br /&gt;
figure('Name','Tensiones normales','Color','w');&lt;br /&gt;
tiledlayout(1,3,'Padding','compact','TileSpacing','compact');&lt;br /&gt;
&lt;br /&gt;
nexttile;&lt;br /&gt;
surf(X,Y,sigma_xx); shading interp; colormap(cm); colorbar;&lt;br /&gt;
title('\sigma_{xx}'); xlabel('x'); ylabel('y'); zlabel('\sigma_{xx}');&lt;br /&gt;
axis tight; daspect([1 1 0.35]); view(45,30);&lt;br /&gt;
&lt;br /&gt;
nexttile;&lt;br /&gt;
surf(X,Y,sigma_yy); shading interp; colormap(cm); colorbar;&lt;br /&gt;
title('\sigma_{yy}'); xlabel('x'); ylabel('y'); zlabel('\sigma_{yy}');&lt;br /&gt;
axis tight; daspect([1 1 0.35]); view(45,30);&lt;br /&gt;
&lt;br /&gt;
nexttile;&lt;br /&gt;
surf(X,Y,sigma_zz); shading interp; colormap(cm); colorbar;&lt;br /&gt;
title('\sigma_{zz}'); xlabel('x'); ylabel('y'); zlabel('\sigma_{zz}');&lt;br /&gt;
axis tight; daspect([1 1 0.35]); view(45,30);&lt;br /&gt;
sgtitle('Distribución de tensiones normales (\lambda=\mu=1)','FontWeight','bold');&lt;br /&gt;
&lt;br /&gt;
% Tensión tangencial respecto a i &lt;br /&gt;
figure('Name','Tension tangencial respecto a i','Color','w');&lt;br /&gt;
surf(X,Y,tau_i); shading interp; colormap(cm); colorbar;&lt;br /&gt;
title('\tau_{i} = |\sigma_{xy}|'); xlabel('x'); ylabel('y'); zlabel('\tau_{i}');&lt;br /&gt;
axis tight; daspect([1 1 0.35]); view(45,30); grid on;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
figure('Name','Contornos 2D de tensiones','Color','w');&lt;br /&gt;
tiledlayout(1,4,'Padding','compact','TileSpacing','compact');&lt;br /&gt;
&lt;br /&gt;
nexttile; contourf(X,Y,sigma_xx,20,'LineColor','none'); axis equal tight; colorbar;&lt;br /&gt;
title('\sigma_{xx}'); xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
nexttile; contourf(X,Y,sigma_yy,20,'LineColor','none'); axis equal tight; colorbar;&lt;br /&gt;
title('\sigma_{yy}'); xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
nexttile; contourf(X,Y,sigma_zz,20,'LineColor','none'); axis equal tight; colorbar;&lt;br /&gt;
title('\sigma_{zz}'); xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
nexttile; contourf(X,Y,tau_i,20,'LineColor','none'); axis equal tight; colorbar;&lt;br /&gt;
title('\tau_{i}'); xlabel('x'); ylabel('y');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tensiones tangenciales==&lt;br /&gt;
Se representan las tensiones tangenciales respecto al plano ortogonal al eje &amp;lt;math&amp;gt;\vec{i}&amp;lt;/math&amp;gt;, definidas como:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;|\sigma \cdot \vec{i} - (\vec{i} \cdot \sigma \cdot \vec{i}) , \vec{i}|&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En la gráfica se muestran únicamente las componentes no nulas, permitiendo visualizar las tensiones tangenciales que actúan sobre los planos perpendiculares al eje &lt;br /&gt;
𝑥&lt;br /&gt;
x.&lt;br /&gt;
[[Archivo:Tensionesdemanuel.png|600px|thumb]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Definición del Mallado&lt;br /&gt;
h = 0.15; &lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la placa &lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
X(~Condition) = NaN;&lt;br /&gt;
Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo de la Tensión Tangencial &lt;br /&gt;
&lt;br /&gt;
Sig_xy = -X ./ 20;&lt;br /&gt;
&lt;br /&gt;
% Definición del Vector Tangencial&lt;br /&gt;
&lt;br /&gt;
U_vec = zeros(size(X)); % Componente X es 0&lt;br /&gt;
V_vec = Sig_xy; % Componente Y es el valor de la tensión&lt;br /&gt;
&lt;br /&gt;
% Gráfica&lt;br /&gt;
figure('Name', 'Apartado 10: Vector Tensión Tangencial', 'Color', 'w');&lt;br /&gt;
&lt;br /&gt;
% Usamos quiver para dibujar las flechitas azules&lt;br /&gt;
&lt;br /&gt;
quiver(X, Y, U_vec, V_vec, 'b', 'LineWidth', 1);&lt;br /&gt;
&lt;br /&gt;
% Configuración de la vista&lt;br /&gt;
view(2); &lt;br /&gt;
axis equal; &lt;br /&gt;
grid on; &lt;br /&gt;
&lt;br /&gt;
% Títulos &lt;br /&gt;
title('Tensiones tangenciales (Plano ortogonal a i)');&lt;br /&gt;
xlabel('Eje X');&lt;br /&gt;
ylabel('Eje Y');&lt;br /&gt;
&lt;br /&gt;
% Ajuste de límites &lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&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 mediante la expresión:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma_{VM} = \sqrt{\frac{(\sigma_1 - \sigma_2)^2 + (\sigma_2 - \sigma_3)^2 + (\sigma_3 - \sigma_1)^2}{2}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Esta fórmula combina las diferencias entre las tensiones principales (𝜎1,𝜎2,𝜎3σ1,σ2,σ3) y permite calcular el esfuerzo equivalente que experimenta el material, útil para evaluar la resistencia frente a la plasticidad o el fallo.&lt;br /&gt;
[[Archivo:vonn.jpg|miniaturadeimagen|derecha|700px|Figura 11]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% Malla&lt;br /&gt;
h = 0.1;&lt;br /&gt;
[x, y] = meshgrid(0:h:4, 0:h:2);   % ojo: x -&amp;gt; columnas, y -&amp;gt; filas&lt;br /&gt;
X = x; Y = y;&lt;br /&gt;
&lt;br /&gt;
% Bordes de la placa&lt;br /&gt;
f = X./8;&lt;br /&gt;
g = 2 - X./8;&lt;br /&gt;
EnPlaca = (Y &amp;gt;= f) &amp;amp; (Y &amp;lt;= g);&lt;br /&gt;
&lt;br /&gt;
% Definición del campo de desplazamientos en cartesianas&lt;br /&gt;
ux=(1/20).*X.*Y;&lt;br /&gt;
uy=-(1/20).*X.^2;&lt;br /&gt;
&lt;br /&gt;
% Derivadas analíticas:&lt;br /&gt;
% ux_x=d(u_x)/dx=y/20&lt;br /&gt;
% ux_y=d(u_x)/dy=x/20&lt;br /&gt;
% uy_x=d(u_y)/dx=-x/10&lt;br /&gt;
% uy_y=d(u_y)/dy 0&lt;br /&gt;
ux_x=Y./20;&lt;br /&gt;
ux_y=X./20;&lt;br /&gt;
uy_x=-X./10;&lt;br /&gt;
uy_y=zeros(size(X));&lt;br /&gt;
&lt;br /&gt;
% Divergencia (útil para sigma)&lt;br /&gt;
divU=ux_x+uy_y;&lt;br /&gt;
&lt;br /&gt;
% Tensor de deformaciones simétrico &lt;br /&gt;
% epsilon = 1/2(grad u + grad u^T)&lt;br /&gt;
% epsilon_xx = ux_x&lt;br /&gt;
% epsilon_yy = uy_y&lt;br /&gt;
% epsilon_xy = 1/2*(ux_y + uy_x)&lt;br /&gt;
eps_xx = ux_x;&lt;br /&gt;
eps_yy = uy_y;&lt;br /&gt;
eps_xy = 0.5*(ux_y + uy_x);&lt;br /&gt;
&lt;br /&gt;
% Para el caso 3D consideramos eps_zz = 0&lt;br /&gt;
eps_zz = zeros(size(X));&lt;br /&gt;
&lt;br /&gt;
% Coeficientes de Lamé&lt;br /&gt;
lambda=1;&lt;br /&gt;
mu=1;&lt;br /&gt;
&lt;br /&gt;
% Construcción del tensor de tensiones &lt;br /&gt;
%sigma = lambda*div(u)*I + 2*mu*eps&lt;br /&gt;
sigma_xx = lambda.*divU + 2*mu.*eps_xx;&lt;br /&gt;
sigma_yy = lambda.*divU + 2*mu.*eps_yy;&lt;br /&gt;
sigma_zz = lambda.*divU + 2*mu.*eps_zz;&lt;br /&gt;
sigma_xy = 2*mu.*eps_xy;    % = sigma_yx&lt;br /&gt;
&lt;br /&gt;
% Von Mises y matriz para autovalores&lt;br /&gt;
VM = NaN(size(X));&lt;br /&gt;
S1 = NaN(size(X)); S2 = NaN(size(X)); S3 = NaN(size(X));&lt;br /&gt;
&lt;br /&gt;
% Loop sobre puntos dentro de la placa para calcular autovalores&lt;br /&gt;
[idx_i,idx_j]=find(EnPlaca);&lt;br /&gt;
npts=numel(idx_i);&lt;br /&gt;
&lt;br /&gt;
for k = 1:npts&lt;br /&gt;
    i = idx_i(k); j = idx_j(k);   % i: fila (y index), j: columna (x index)&lt;br /&gt;
    % construir sigma 3x3 en ese punto&lt;br /&gt;
    S = [sigma_xx(i,j), sigma_xy(i,j), 0;sigma_xy(i,j), sigma_yy(i,j),0;0,0,sigma_zz(i,j)];&lt;br /&gt;
    e = eig(S);          &lt;br /&gt;
    % ordenar autovalores (no estrictamente necesario, pero ordeno descendente)&lt;br /&gt;
    e = sort(e,'descend');&lt;br /&gt;
    s1 = e(1); s2 = e(2); s3 = e(3);&lt;br /&gt;
    % tensión de Von Mises (fórmula)&lt;br /&gt;
    sigmaVM = sqrt( ((s1-s2).^2 + (s2-s3).^2 + (s3-s1).^2) / 2 );&lt;br /&gt;
    VM(i,j) = sigmaVM;&lt;br /&gt;
    S1(i,j) = s1; S2(i,j) = s2; S3(i,j) = s3;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
VM(~EnPlaca) = NaN;&lt;br /&gt;
% Buscar máximo de Von Mises dentro de la placa&lt;br /&gt;
[maxVM, indMax] = max(VM(:));&lt;br /&gt;
[rowMax, colMax] = ind2sub(size(VM), indMax);&lt;br /&gt;
xMax = X(rowMax, colMax);&lt;br /&gt;
yMax = Y(rowMax, colMax);&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Name','Tensión de Von Mises','Color','w'); clf; hold on;&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]); box on;&lt;br /&gt;
title('Tensión de Von Mises \sigma_{VM}');&lt;br /&gt;
xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
% Contourf del campo VM&lt;br /&gt;
numLevels = 30;&lt;br /&gt;
[C, hC] = contourf(X, Y, VM, numLevels, 'LineStyle','none');&lt;br /&gt;
colormap(jet);&lt;br /&gt;
c = colorbar; ylabel(c, '\sigma_{VM}');&lt;br /&gt;
% Bordes de la placa&lt;br /&gt;
xb = linspace(0,4,200);&lt;br /&gt;
plot(xb, xb./8, 'k-', 'LineWidth', 1.5);         &lt;br /&gt;
plot(xb, 2 - xb./8, 'k-', 'LineWidth', 1.5);    &lt;br /&gt;
plot([0 0], [0 2], 'k-', 'LineWidth', 1.5);  &lt;br /&gt;
plot([4 4], [0.5 1.5], 'k-', 'LineWidth', 1.5); &lt;br /&gt;
&lt;br /&gt;
% Punto de máxima tensión de Von Mises&lt;br /&gt;
plot(xMax, yMax, 'rp', 'MarkerSize', 14, 'MarkerFaceColor', 'r');&lt;br /&gt;
text(xMax+0.08, yMax+0.08, sprintf('Máx VM = %.3g', maxVM), 'FontWeight','bold','Color','r');&lt;br /&gt;
&lt;br /&gt;
% Mejora estética&lt;br /&gt;
set(gcf,'Color','w');&lt;br /&gt;
shading interp;&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
&lt;br /&gt;
% Información&lt;br /&gt;
fprintf('Máximo Von Mises = %.6g en (x,y) = (%.4g, %.4g)\n', maxVM, xMax, yMax);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Campo de Fuerzas==&lt;br /&gt;
&lt;br /&gt;
El campo de fuerzas &amp;lt;math&amp;gt;\vec{F}&amp;lt;/math&amp;gt; que actúa sobre la placa, y que es responsable del desplazamiento observado, se puede aproximar mediante la ecuación de la elasticidad lineal:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{F} = - \operatorname{div} \sigma&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt;\operatorname{div} \sigma&amp;lt;/math&amp;gt; es la divergencia de un campo tensorial. En coordenadas cartesianas, se expresa como:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\operatorname{div} \sigma = (\operatorname{div} \sigma)_1 , \vec{i} + (\operatorname{div} \sigma)_2 , \vec{j} + (\operatorname{div} \sigma)3 , \vec{k}, \quad (\operatorname{div} \sigma)i = \sum{j=1}^{3} \frac{\partial \sigma{ij}}{\partial x_j}&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Esta formulación permite calcular, a partir del tensor de tensiones, el campo de fuerzas internas que genera los desplazamientos de la placa.&lt;br /&gt;
[[Archivo:Fuerzas_manuel.jpg|700px|thumb]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%% Apartado 12: Campo de Fuerzas Volumétricas (F = -div Sigma)&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% 1. Definición del Mallado&lt;br /&gt;
h = 0.1;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la placa (Trapecio)&lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
X(~Condition) = NaN;&lt;br /&gt;
Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
lambda = 1; mu = 1;&lt;br /&gt;
&lt;br /&gt;
% 2. Recalculamos las Tensiones (Necesarias para derivar)&lt;br /&gt;
% Usamos las fórmulas analíticas que ya conocemos&lt;br /&gt;
Div_u = Y ./ 20;&lt;br /&gt;
Eps_xx = Y ./ 20;&lt;br /&gt;
Eps_yy = zeros(size(X));&lt;br /&gt;
&lt;br /&gt;
Sig_xx = lambda .* Div_u + 2 .* mu .* Eps_xx; % = 3y/20&lt;br /&gt;
Sig_yy = lambda .* Div_u + 2 .* mu .* Eps_yy; % = y/20&lt;br /&gt;
Sig_xy = -X ./ 20; % = -x/20 (cizalladura)&lt;br /&gt;
&lt;br /&gt;
% 3. Cálculo de la Divergencia del Tensor (Numéricamente)&lt;br /&gt;
% F = -div(sigma)&lt;br /&gt;
% Fx = -( d(Sxx)/dx + d(Sxy)/dy )&lt;br /&gt;
% Fy = -( d(Sxy)/dx + d(Syy)/dy )&lt;br /&gt;
&lt;br /&gt;
% La función gradient calcula derivadas centrales.&lt;br /&gt;
% Sintaxis: gradient(Matriz, paso_x, paso_y)&lt;br /&gt;
[dSxx_dx, dSxx_dy] = gradient(Sig_xx, h, h);&lt;br /&gt;
[dSxy_dx, dSxy_dy] = gradient(Sig_xy, h, h);&lt;br /&gt;
[dSyy_dx, dSyy_dy] = gradient(Sig_yy, h, h);&lt;br /&gt;
&lt;br /&gt;
Fx = - (dSxx_dx + dSxy_dy);&lt;br /&gt;
Fy = - (dSxy_dx + dSyy_dy);&lt;br /&gt;
&lt;br /&gt;
% 4. Comprobación de Magnitud (Para ver si es cero)&lt;br /&gt;
MagnitudF = sqrt(Fx.^2 + Fy.^2);&lt;br /&gt;
max_F = max(MagnitudF(:));&lt;br /&gt;
&lt;br /&gt;
fprintf('--- Resultado Apartado 12 ---\n');&lt;br /&gt;
fprintf('La fuerza máxima calculada es: %e\n', max_F);&lt;br /&gt;
&lt;br /&gt;
if max_F &amp;lt; 1e-10&lt;br /&gt;
fprintf('CONCLUSIÓN: La fuerza es prácticamente NULA (Equilibrio).\n');&lt;br /&gt;
subtitle_text = 'Fuerza \approx 0 (Equilibrio Estático)';&lt;br /&gt;
else&lt;br /&gt;
subtitle_text = 'Existen fuerzas volumétricas';&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% 5. Gráfica&lt;br /&gt;
figure('Name', 'Apartado 12: Campo de Fuerzas', 'Color', 'w');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
% Dibujamos los vectores.&lt;br /&gt;
% Como son casi cero, MATLAB pintará puntos. Para ver &amp;quot;algo&amp;quot;,&lt;br /&gt;
% a veces se normalizan, pero lo correcto es mostrar que no hay fuerza.&lt;br /&gt;
quiver(X, Y, Fx, Fy, 'r');&lt;br /&gt;
&lt;br /&gt;
% Dibujar bordes&lt;br /&gt;
plot([0 4 4 0 0], [0 0.5 1.5 2 0], 'k--', 'LineWidth', 0.5); % Caja aproximada&lt;br /&gt;
&lt;br /&gt;
title('Campo de Fuerzas Volumétricas');&lt;br /&gt;
subtitle(subtitle_text);&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&lt;br /&gt;
&lt;br /&gt;
% Añadimos una nota en la gráfica explicándolo&lt;br /&gt;
text(1, 1, {'Fuerza Nula', '(puntos indican magnitud ~0)'}, ...&lt;br /&gt;
'Color', 'r', 'FontWeight', 'bold', 'HorizontalAlignment', 'center');&lt;br /&gt;
&lt;br /&gt;
hold off;}}&lt;br /&gt;
&lt;br /&gt;
==Densidad==&lt;br /&gt;
[[Archivo:dens.jpg|miniaturadeimagen|derecha|800px|Figura 10]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
% Mallado&lt;br /&gt;
h=0.05; &lt;br /&gt;
[X,Y]=meshgrid(0:h:4,0:h:2);&lt;br /&gt;
&lt;br /&gt;
% Forma de la placa&lt;br /&gt;
Condition=(Y&amp;gt;=X./8)&amp;amp;(Y&amp;lt;=2-X./8);&lt;br /&gt;
&lt;br /&gt;
% Definición de la Densidad : d(x,y)=(4-x)*|y|&lt;br /&gt;
Densidad=(4-X).*abs(Y);&lt;br /&gt;
&lt;br /&gt;
% Filtrado para la Gráfica&lt;br /&gt;
Densidad(~Condition)=NaN;&lt;br /&gt;
&lt;br /&gt;
% Visualización 3D&lt;br /&gt;
figure('Name','Densidad', 'Color','w');&lt;br /&gt;
&lt;br /&gt;
% Superficie 3D&lt;br /&gt;
surf(X,Y,Densidad);&lt;br /&gt;
&lt;br /&gt;
% Configuración&lt;br /&gt;
shading interp; % Elimina las líneas negras para que se vea suave&lt;br /&gt;
colormap(jet);  % Mapa de colores (De azul a rojo)&lt;br /&gt;
colorbar;       % Barra de referencia&lt;br /&gt;
caxis([0 8]);   % Fija la escala de colores&lt;br /&gt;
&lt;br /&gt;
% Etiquetas y Título&lt;br /&gt;
title({'Densidad'},'FontSize',13);&lt;br /&gt;
xlabel('Eje X','FontWeight','bold');&lt;br /&gt;
ylabel('Eje Y','FontWeight','bold');&lt;br /&gt;
zlabel('Densidad (kg/m^2)','FontWeight','bold');&lt;br /&gt;
&lt;br /&gt;
% Ajustes&lt;br /&gt;
axis tight;      % Ajusta los ejes al contenido&lt;br /&gt;
view(-45, 30);   % Ángulo de vista &lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
&lt;br /&gt;
% Proyección de sombra en el suelo&lt;br /&gt;
hold on;&lt;br /&gt;
% Dibujamos el contorno plano abajo del todo (en z=0) para referencia&lt;br /&gt;
contour(X,Y,Densidad,20,'z','Offset',0); &lt;br /&gt;
hold off;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ejemplos de uso en la ingeniería ==&lt;br /&gt;
&lt;br /&gt;
Las vigas en voladizo destacan por su forma y por la versatilidad que ofrecen, lo que las convierte en un elemento muy empleado en distintos ámbitos. Algunos de sus usos más frecuentes son:&lt;br /&gt;
&lt;br /&gt;
• Arquitectura: se utilizan en balcones, terrazas, marquesinas o cubiertas de acceso.&lt;br /&gt;
• Maquinaria: forman parte de brazos de grúas y de las palas de los aerogeneradores.&lt;br /&gt;
• Ingeniería: se aplican en la construcción de puentes en voladizo y en diferentes componentes estructurales.&lt;/div&gt;</summary>
		<author><name>Alejandro.Morales</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Mimallado.png&amp;diff=95146</id>
		<title>Archivo:Mimallado.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Mimallado.png&amp;diff=95146"/>
				<updated>2025-12-02T18:33:04Z</updated>
		
		<summary type="html">&lt;p&gt;Alejandro.Morales: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Alejandro.Morales</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Placa_Plana_(Grupo_09)&amp;diff=95144</id>
		<title>Placa Plana (Grupo 09)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Placa_Plana_(Grupo_09)&amp;diff=95144"/>
				<updated>2025-12-02T18:31:45Z</updated>
		
		<summary type="html">&lt;p&gt;Alejandro.Morales: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Placa plana. Grupo 09 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC25/26|2025-26]] | Rafael Gonzalez Gomez &amp;lt;br/&amp;gt; Mario Belinchón Buendía &amp;lt;br/&amp;gt;Alejandro Morales Tari&amp;lt;br/&amp;gt;  Pablo Márquez Blanco}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Teoría de Campos]]&lt;br /&gt;
[[Categoría:TC25/26]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
&lt;br /&gt;
Consideramos la sección longitudinal de una viga en voladizo de geometría rectangular (en dimensión 2). Esta viga ocupa la región mostrada en la Figura 1, y permanece anclada en la pared vertical situada en el lado izquierdo. La zona que vamos a estudiar se describe mediante:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
(x,y) \in [0,4] \times [f(x),, g(x)],&lt;br /&gt;
\qquad&lt;br /&gt;
f(x)=\frac{x}{8},&lt;br /&gt;
\qquad&lt;br /&gt;
g(x)= 2-\frac{x}{8}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En esta placa se consideran dos magnitudes físicas relevantes.&lt;br /&gt;
La primera es el campo de temperaturas, modelado por la función:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
T(x,y)=\big(1+(y-1)^2\big),(4-x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
La segunda magnitud corresponde al campo de desplazamientos &amp;lt;math&amp;gt;\vec u(x,y)&amp;lt;/math&amp;gt;, producido por una fuerza externa —cuyo valor exacto no conocemos— y que deforma la placa.&lt;br /&gt;
&lt;br /&gt;
Para describir la deformación, sea&lt;br /&gt;
&amp;lt;math&amp;gt;\vec r_0(x,y)=x,\vec i + y,\vec j&amp;lt;/math&amp;gt;&lt;br /&gt;
el vector de posición inicial de cada punto. Entonces, tras aplicarse la fuerza, la nueva posición de un punto queda dada por:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\vec r_d(x,y)=\vec r_0(x,y)+\vec u(x,y)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Supondremos que la fuerza aplicada induce un desplazamiento expresado, en coordenadas polares &amp;lt;math&amp;gt;(\rho,\theta)&amp;lt;/math&amp;gt;, mediante:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\vec u(\rho,\theta)= -\frac{1}{20},\rho^2\cos\theta ; \vec e_\theta&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Este modelo permite estudiar tanto la distribución térmica en la viga como la deformación resultante, proporcionando una base adecuada para analizar su comportamiento estructural.&lt;br /&gt;
&lt;br /&gt;
==Mallado==&lt;br /&gt;
Para comenzar, construiremos un mallado de la sección longitudinal que nos permita representar los puntos interiores del sólido. Para ello, hemos empleado un paso de muestreo de&lt;br /&gt;
&amp;lt;math&amp;gt;h = \tfrac{1}{10}&amp;lt;/math&amp;gt;&lt;br /&gt;
y hemos definido la malla sobre el rectángulo que delimita los ejes coordenados:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt; (x, y) \in [-1,, 5] \times [-1,, 3] &amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Este mallado servirá como base para discretizar la región de interés y facilitar los cálculos posteriores.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Malladoplacaplana.png|thumb|700px|]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
h = 1/10;&lt;br /&gt;
color_malla = [0, 0.6, 0.6]; % Color &lt;br /&gt;
&lt;br /&gt;
% Coordenadas&lt;br /&gt;
u = 0 : h : 4;&lt;br /&gt;
v = 0 : h : 2;&lt;br /&gt;
[U, V] = meshgrid(u, v);&lt;br /&gt;
&lt;br /&gt;
% Calculamos los bordes &lt;br /&gt;
y_abajo = U ./ 8;&lt;br /&gt;
y_arriba = 2 - (U ./ 8);&lt;br /&gt;
&lt;br /&gt;
% Interpolamos&lt;br /&gt;
factor_altura = V ./ 2; % Va de 0 (abajo) a 1 (arriba)&lt;br /&gt;
&lt;br /&gt;
X = U;&lt;br /&gt;
Y = y_abajo + factor_altura .* (y_arriba - y_abajo);&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Color', 'w'); hold on;&lt;br /&gt;
&lt;br /&gt;
% Dibujar las líneas VERTICALES&lt;br /&gt;
plot(X, Y, 'Color', color_malla, 'LineWidth', 0.5);&lt;br /&gt;
&lt;br /&gt;
% Dibujar las líneas HORIZONTALES&lt;br /&gt;
plot(X', Y', 'Color', color_malla, 'LineWidth', 0.5);&lt;br /&gt;
&lt;br /&gt;
% Dibujar el contorno &lt;br /&gt;
plot(u, u./8, 'k-', 'LineWidth', 2); % Borde Abajo&lt;br /&gt;
plot(u, 2 - u./8, 'k-', 'LineWidth', 2); % Borde Arriba&lt;br /&gt;
plot([0 0], [0 2], 'k-', 'LineWidth', 2); % Borde Izquierdo&lt;br /&gt;
plot([4 4], [0.5 1.5], 'k-', 'LineWidth', 2); % Borde Derecho&lt;br /&gt;
&lt;br /&gt;
% Configuración final&lt;br /&gt;
axis([-1 5 -1 3]); % Zoom/Encuadre exacto&lt;br /&gt;
xlabel('x'); ylabel('y');&lt;br /&gt;
title('Mallado de la placa plana');&lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Curvas de nivel==&lt;br /&gt;
A continuación se representan las curvas de nivel de la temperatura con el fin de identificar visualmente la zona donde esta alcanza su valor máximo. A partir de la gráfica puede apreciarse que los puntos donde la temperatura es mayor son:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;(x,y) = (0,0) \quad \text{y} \quad (0,2)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Además, calculamos el gradiente de la temperatura para analizar la dirección de mayor variación de esta magnitud. El gradiente viene dado por:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\nabla T(x,y)&lt;br /&gt;
= \left( \frac{\partial T}{\partial x},, \frac{\partial T}{\partial y} \right)&lt;br /&gt;
= \Big( -\big(1+(y-1)^2\big),; (4-x)\cdot 2(y-1) \Big).&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En la representación gráfica se observa que el vector gradiente es ortogonal a las curvas de nivel, tal como establece la teoría: apunta siempre en la dirección de crecimiento más rápido de la temperatura.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:curvadenivel.jpeg|miniaturadeimagen|derecha|800px|Figura 2]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
% Definición &lt;br /&gt;
h=0.1;               &lt;br /&gt;
x=0:h:4;                  &lt;br /&gt;
y=0:h:2;           &lt;br /&gt;
[X,Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Funciones  &lt;br /&gt;
f=@(x)x./8;  &lt;br /&gt;
g=@(x)2-x./8;  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EnPlaca=Y&amp;gt;=f(X)&amp;amp;Y&amp;lt; g(X);&lt;br /&gt;
&lt;br /&gt;
% Definición de la Temperatura y el Gradiente&lt;br /&gt;
&lt;br /&gt;
T=(1+(Y-1).^2).*(4-X);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
T_plot=T;&lt;br /&gt;
T_plot(~EnPlaca)=NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo numérico del gradiente para los vectores &lt;br /&gt;
&lt;br /&gt;
U=-(1+(Y-1).^2);          &lt;br /&gt;
V=2.*(Y-1).*(4-X);   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U(~EnPlaca)=NaN;&lt;br /&gt;
V(~EnPlaca)=NaN;&lt;br /&gt;
&lt;br /&gt;
% Gráfica&lt;br /&gt;
figure(1);&lt;br /&gt;
clf; &lt;br /&gt;
hold on;&lt;br /&gt;
axis equal; &lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&lt;br /&gt;
title({'Isotermas y Gradiente \nabla T', 'T(x,y) = (1+(y-1)^2)(4-x)'});&lt;br /&gt;
xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
% Mapa de calor &lt;br /&gt;
[C_fill, h_fill] = contourf(X, Y, T_plot, 20, 'LineStyle', 'none');&lt;br /&gt;
colormap(jet); &lt;br /&gt;
cb=colorbar;&lt;br /&gt;
ylabel(cb,'Temperatura T');&lt;br /&gt;
&lt;br /&gt;
% Curvas de nivel&lt;br /&gt;
[C, h_cont]=contour(X,Y,T_plot,10,'k','LineWidth',1.5);&lt;br /&gt;
clabel(C,h_cont,'FontSize',9,'Color','k','FontWeight','bold');&lt;br /&gt;
&lt;br /&gt;
% Campo Vectorial &lt;br /&gt;
&lt;br /&gt;
step=3; &lt;br /&gt;
quiver(X(1:step:end,1:step:end),Y(1:step:end, 1:step:end), ...&lt;br /&gt;
U(1:step:end,1:step:end),V(1:step:end,1:step:end), ...&lt;br /&gt;
1.2,'k','LineWidth',1); % '1.2' es el factor de escala de las flechas&lt;br /&gt;
&lt;br /&gt;
% Dibujar bordes de la placa&lt;br /&gt;
plot(x,f(x),'k-','LineWidth',2);&lt;br /&gt;
plot(x,g(x),'k-','LineWidth',2); &lt;br /&gt;
plot([0 0],[f(0) g(0)],'k-','LineWidth',2); &lt;br /&gt;
plot([4 4],[f(4) g(4)],'k-','LineWidth',2); &lt;br /&gt;
&lt;br /&gt;
% Señalar Máximo&lt;br /&gt;
plot(0,0,'rp','MarkerSize',12,'MarkerFaceColor','r');&lt;br /&gt;
plot(0,2,'rp','MarkerSize',12,'MarkerFaceColor','r');&lt;br /&gt;
text(0.1,0,'Max T','Color','white','FontWeight','bold');&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ley de Fourier==&lt;br /&gt;
Según la ley de Fourier, el flujo de energía calorífica &amp;lt;math&amp;gt;\vec{Q}&amp;lt;/math&amp;gt; viene dado por:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{Q} = -\kappa , \nabla T&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt;\kappa&amp;lt;/math&amp;gt; representa la conductividad térmica del material. En nuestro caso, consideramos&lt;br /&gt;
&amp;lt;math&amp;gt;\kappa = 1&amp;lt;/math&amp;gt;, de modo que la expresión se simplifica a:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{Q} = - \nabla T&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Bajo esta suposición, en la representación gráfica puede apreciarse que el flujo calorífico es simplemente el opuesto del gradiente de la temperatura, señalando siempre la dirección de máxima disminución térmica.&lt;br /&gt;
[[Archivo:Flujo de calor manuel.png|600px|thumb]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Configuración del Mallado&lt;br /&gt;
h = 0.2;&lt;br /&gt;
x = 0 : h : 4;&lt;br /&gt;
y = 0 : h : 2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definir la Geometría &lt;br /&gt;
y_abajo = X ./ 8;&lt;br /&gt;
y_arriba = 2 - (X ./ 8);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Definir la Temperatura &lt;br /&gt;
T_func = @(x,y) (1 + (y - 1).^2) .* (4 - x);&lt;br /&gt;
T = T_func(X, Y);&lt;br /&gt;
&lt;br /&gt;
% Cálculos Físicos &lt;br /&gt;
% A) Calculamos el Gradiente (nabla T) mediante derivadas numéricas&lt;br /&gt;
[dTdx, dTdy] = gradient(T, h, h);&lt;br /&gt;
&lt;br /&gt;
% Calculamos el Flujo de Calor &lt;br /&gt;
Qx = -dTdx;&lt;br /&gt;
Qy = -dTdy;&lt;br /&gt;
&lt;br /&gt;
% Limpieza &lt;br /&gt;
&lt;br /&gt;
Qx(~dentro) = NaN;&lt;br /&gt;
Qy(~dentro) = NaN;&lt;br /&gt;
T(~dentro) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Color', 'w', 'Name', 'Flujo de Calor Fourier');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
% FONDO: Mapa de Calor &lt;br /&gt;
&lt;br /&gt;
contourf(X, Y, T, 20, 'LineStyle', 'none');&lt;br /&gt;
colormap('jet'); % Paleta de colores: Azul (frío) -&amp;gt; Rojo (caliente)&lt;br /&gt;
&lt;br /&gt;
% Barra de color explicativa&lt;br /&gt;
c = colorbar;&lt;br /&gt;
c.Label.String = 'Temperatura T(x,y)';&lt;br /&gt;
c.Label.FontSize = 10;&lt;br /&gt;
&lt;br /&gt;
% El Campo Vectorial.&lt;br /&gt;
quiver(X, Y, Qx, Qy, 'k', 'LineWidth', 1.2, 'AutoScaleFactor', 1.5);&lt;br /&gt;
&lt;br /&gt;
% Dibujo del contorno.&lt;br /&gt;
plot([0 4], [0 0.5], 'k-', 'LineWidth', 2); &lt;br /&gt;
plot([0 4], [2 1.5], 'k-', 'LineWidth', 2); &lt;br /&gt;
plot([0 0], [0 2], 'k-', 'LineWidth', 2); &lt;br /&gt;
plot([4 4], [0.5 1.5], 'k-', 'LineWidth', 2); &lt;br /&gt;
&lt;br /&gt;
% Configuración Final&lt;br /&gt;
axis equal;&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]); &lt;br /&gt;
grid on;&lt;br /&gt;
xlabel('Eje x'); ylabel('Eje y');&lt;br /&gt;
title({'Vector Flujo de Calor', ...&lt;br /&gt;
'El calor fluye desde las capas más calientes hacia las más frías'});&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Gradiente Térmico==&lt;br /&gt;
El punto de máxima variación térmica corresponde al lugar donde el gradiente de la temperatura alcanza su valor máximo. En la práctica, esto se obtiene igualando la derivada del gradiente a cero.&lt;br /&gt;
&lt;br /&gt;
Mientras que la variación térmica sigue la dirección del gradiente, el flujo de calor más intenso se orienta en sentido contrario, es decir, hacia donde disminuye la temperatura.&lt;br /&gt;
&lt;br /&gt;
Paso 1: Definición de la función para maximizar&lt;br /&gt;
&lt;br /&gt;
Llamamos a la función:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;G(x,y) = |\nabla T|^2&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Desarrollando los términos:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;G(x,y) = \big(1+(y-1)^2\big)^2 + \big(2(y-1)(4-x)\big)^2&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;G(x,y) = (y^2 - 2y + 2)^2 + 4(y-1)^2(4-x)^2&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Paso 2: Cálculo de los puntos críticos&lt;br /&gt;
&lt;br /&gt;
Para maximizar la función, derivamos y resolvemos el sistema:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial G}{\partial x} = -8 (y-1)^2 (4-x) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial G}{\partial y} = 4 (y-1) \big(1 + (y-1)^2 + 2 (4-x)^2 \big) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Al resolver este sistema, encontramos que los mínimos se sitúan sobre la recta:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;y = 1&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Como no hay máximos aislados dentro del dominio, los máximos deben encontrarse en la frontera:&lt;br /&gt;
&lt;br /&gt;
Borde izquierdo: &amp;lt;math&amp;gt;x=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Borde derecho: &amp;lt;math&amp;gt;x=4&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curva inferior: &amp;lt;math&amp;gt;y = x/8&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curva superior: &amp;lt;math&amp;gt;y = 2 - x/8&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras analizar los límites del recinto, los máximos de la función del gradiente térmico se localizan en el borde izquierdo, &amp;lt;math&amp;gt;x=0&amp;lt;/math&amp;gt;. Las coordenadas de los máximos son:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
P(1): x=0.00, y=0.00, Dirección del vector: [-2.00, -8.00]&lt;br /&gt;
P(2): x=0.00, y=2.00, Dirección del vector: [-2.00, 8.00]&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Paso 3: Cálculo de la máxima variación térmica&lt;br /&gt;
&lt;br /&gt;
El valor de la norma del gradiente es igual para P(1) y P(2). Calculamos, por ejemplo, para P(1) = (0,0):&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\nabla T(0,0) = \big(-(1 + (0-1)^2), 2(0-1)(4-0)\big) = (-2,-8)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;|\nabla T(0,0)| = \sqrt{(-2)^2 + (-8)^2} = \sqrt{4 + 64} = 2\sqrt{17} \approx 8.246&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Por lo tanto, la máxima variación térmica en la placa se produce en los puntos P(1) y P(2) y tiene un valor aproximado de 8.246.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:maxvart.jpg|miniaturadeimagen|derecha|800px|Figura 4:Máxima Variación de T]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
h=0.05;&lt;br /&gt;
[X,Y]=meshgrid(0:h:4,0:h:2);&lt;br /&gt;
f=X./8;g=2-X./8;&lt;br /&gt;
EnPlaca=Y&amp;gt;=f&amp;amp;Y&amp;lt;=g;&lt;br /&gt;
&lt;br /&gt;
% Gradiente y Norma&lt;br /&gt;
Tx=-(1+(Y-1).^2); &lt;br /&gt;
Ty=2.*(Y-1).*(4-X);&lt;br /&gt;
&lt;br /&gt;
% Gradiente&lt;br /&gt;
NormaGrad=sqrt(Tx.^2+Ty.^2);&lt;br /&gt;
NormaGrad(~EnPlaca)=0; &lt;br /&gt;
&lt;br /&gt;
% Máximo&lt;br /&gt;
max_val=max(NormaGrad(:));&lt;br /&gt;
[filas,cols]=find(NormaGrad==max_val);&lt;br /&gt;
&lt;br /&gt;
% puntos máximos&lt;br /&gt;
x_max=X(filas,cols);&lt;br /&gt;
y_max=Y(filas,cols);&lt;br /&gt;
&lt;br /&gt;
% Componentes del vector dirección &lt;br /&gt;
u_dir=Tx(filas,cols);&lt;br /&gt;
v_dir=Ty(filas,cols);&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Name','Máxima Variación de T');&lt;br /&gt;
hold on;axis equal;axis([-0.5 4.5 -0.5 2.5]);grid on;&lt;br /&gt;
title({'Puntos de Máxima Variación de Temperatura', '(Color = Magnitud del Gradiente T)'});&lt;br /&gt;
xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
% Mapa de calor&lt;br /&gt;
NormaGrad(~EnPlaca)=NaN;&lt;br /&gt;
contourf(X,Y,NormaGrad,20,'LineStyle','none');&lt;br /&gt;
colormap(jet);colorbar;&lt;br /&gt;
&lt;br /&gt;
% Contorno&lt;br /&gt;
plot([0 4 4 0 0],[0 0.5 1.5 2 0],'k','LineWidth',1.5);&lt;br /&gt;
&lt;br /&gt;
% Puntos rojos y dirección&lt;br /&gt;
plot(x_max, y_max,'ro','MarkerSize',7.5,'MarkerFaceColor','r');&lt;br /&gt;
&lt;br /&gt;
% Flechas de dirección&lt;br /&gt;
quiver(x_max,y_max,u_dir,v_dir,0.5,'k','LineWidth',2,'MaxHeadSize',0.5);&lt;br /&gt;
&lt;br /&gt;
% Resultados&lt;br /&gt;
fprintf('La variación máxima es %.2f\n', max_val);&lt;br /&gt;
fprintf('Ocurre en los puntos:\n');&lt;br /&gt;
for i=1:length(x_max)&lt;br /&gt;
    fprintf('P(%d): x=%.2f, y=%.2f. Dirección del vector: [%.2f, %.2f]\n',i,x_max(i),y_max(i),u_dir(i),v_dir(i));&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Campo de Desplazamientos==&lt;br /&gt;
El campo de desplazamientos de un sólido se representa mediante un campo vectorial, que indica la dirección y sentido del desplazamiento de cada punto mediante vectores (representados como flechas rojas).&lt;br /&gt;
&lt;br /&gt;
Como se puede observar, los puntos que se encuentran más próximos al punto de aplicación de la fuerza experimentan los desplazamientos más grandes, mientras que los situados más alejados apenas se mueven.&lt;br /&gt;
[[Archivo:Desplazamiento_manuel.jpg|thumb|600px]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
&lt;br /&gt;
h = 0.1; &lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la región &lt;br /&gt;
Condicion = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
&lt;br /&gt;
% Aplicamos Máscara&lt;br /&gt;
X(~Condicion) = NaN;&lt;br /&gt;
Y(~Condicion) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo del Campo de Desplazamientos &lt;br /&gt;
&lt;br /&gt;
Rho = sqrt(X.^2 + Y.^2);&lt;br /&gt;
Theta = atan2(Y, X);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U_theta_val = -1/20 .* Rho.^2 .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ux = -U_theta_val .* sin(Theta);&lt;br /&gt;
Uy = U_theta_val .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Calcular la posición deformada&lt;br /&gt;
&lt;br /&gt;
% Posición final = Posición inicial + Desplazamiento&lt;br /&gt;
X_final = X + Ux;&lt;br /&gt;
Y_final = Y + Uy;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Comparativa&lt;br /&gt;
&lt;br /&gt;
figure('Name', 'Deformación de la Placa', 'Color', 'w');&lt;br /&gt;
&lt;br /&gt;
% PLACA ORIGINAL&lt;br /&gt;
subplot(1, 2, 1);&lt;br /&gt;
% Usamos mesh con Z=0 para dibujar la 'rejilla' plana&lt;br /&gt;
mesh(X, Y, zeros(size(X)), 'EdgeColor', 'b');&lt;br /&gt;
view(2); % Vista superior (2D)&lt;br /&gt;
axis equal; grid on;&lt;br /&gt;
title('Placa antes del desplazamiento');&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
&lt;br /&gt;
% PLACA DEFORMADA &lt;br /&gt;
subplot(1, 2, 2);&lt;br /&gt;
mesh(X_final, Y_final, zeros(size(X)), 'EdgeColor', 'b');&lt;br /&gt;
view(2);&lt;br /&gt;
axis equal; grid on;&lt;br /&gt;
title('Placa después del desplazamiento');&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Apartado 5 &lt;br /&gt;
&lt;br /&gt;
figure('Name', 'Campo Vectorial de Desplazamientos');&lt;br /&gt;
hold on; axis equal; grid on;&lt;br /&gt;
title('Campo de Desplazamientos');&lt;br /&gt;
&lt;br /&gt;
% Dibujamos contorno original de referencia&lt;br /&gt;
plot(X(:), Y(:), '.k', 'MarkerSize', 1);&lt;br /&gt;
&lt;br /&gt;
% Dibujamos los vectores &lt;br /&gt;
quiver(X, Y, Ux, Uy, 0, 'r', 'LineWidth', 1.5);&lt;br /&gt;
&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
xlim([-0.5 4.5]); ylim([-0.5 2.5]);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Desplazamiento del Sólido==&lt;br /&gt;
Debido a la fuerza de magnitud desconocida, el sólido experimenta un desplazamiento descrito por el campo vectorial:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{u}(\rho, \theta) = -\frac{1}{20},\rho^2 \cos \theta ; \vec{e}_\theta&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
El sólido se deforma siguiendo este campo de desplazamientos. Como era de esperar, los puntos más próximos al punto de aplicación de la fuerza son los que sufren los mayores desplazamientos, mientras que los situados más lejos apenas se mueven.&lt;br /&gt;
&lt;br /&gt;
Se adjuntan las gráficas que muestran el desplazamiento sufrido. (Nota: el desplazamiento inferior no se aprecia en la visualización actual; sería necesario ajustar los ejes en el código para visualizarlo correctamente).&lt;br /&gt;
[[Archivo:Apartado6deformacion.png|thumb|1000px]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Definición de Geometría y Desplazamientos&lt;br /&gt;
h = 0.1; % Paso del mallado&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la Región &lt;br /&gt;
&lt;br /&gt;
% Aplicamos máscara &lt;br /&gt;
X(~Condicion) = NaN;&lt;br /&gt;
Y(~Condicion) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo de Desplazamientos&lt;br /&gt;
&lt;br /&gt;
Rho = sqrt(X.^2 + Y.^2);&lt;br /&gt;
Theta = atan2(Y, X);&lt;br /&gt;
&lt;br /&gt;
% Valor escalar de u_theta&lt;br /&gt;
U_theta_val = -1/20 .* Rho.^2 .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
% Proyección a cartesianas &lt;br /&gt;
Ux = -U_theta_val .* sin(Theta);&lt;br /&gt;
Uy = U_theta_val .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
% --- Posición Final Deformada ---&lt;br /&gt;
X_final = X + Ux;&lt;br /&gt;
Y_final = Y + Uy;&lt;br /&gt;
&lt;br /&gt;
% Gráfica Comparativa de Sólidos Mallados &lt;br /&gt;
figure('Name', 'Comparación Antes/Después', 'Color', 'w', 'Position', [100, 100, 1000, 500]);&lt;br /&gt;
&lt;br /&gt;
% Placa Original&lt;br /&gt;
subplot(1, 2, 1);&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
mesh(X, Y, zeros(size(X)), 'EdgeColor', [0 0.7 0.9], 'FaceColor', 'none');&lt;br /&gt;
&lt;br /&gt;
view(2); &lt;br /&gt;
axis equal; &lt;br /&gt;
grid on;&lt;br /&gt;
box on; &lt;br /&gt;
&lt;br /&gt;
title('Placa antes del desplazamiento', 'FontWeight', 'bold');&lt;br /&gt;
xlabel('Eje X');&lt;br /&gt;
ylabel('Eje Y');&lt;br /&gt;
axis([-1.5 4.5 0 2.5]);&lt;br /&gt;
&lt;br /&gt;
% Placa Deformada&lt;br /&gt;
subplot(1, 2, 2);&lt;br /&gt;
hold on;&lt;br /&gt;
% Dibujamos la malla usando las coordenadas finales (X_final, Y_final)&lt;br /&gt;
mesh(X_final, Y_final, zeros(size(X)), 'EdgeColor', [0 0.7 0.9], 'FaceColor', 'none');&lt;br /&gt;
&lt;br /&gt;
view(2);&lt;br /&gt;
axis equal;&lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
&lt;br /&gt;
title('Placa después del desplazamiento', 'FontWeight', 'bold');&lt;br /&gt;
xlabel('Eje X');&lt;br /&gt;
ylabel('Eje Y');&lt;br /&gt;
axis([-1.5 4.5 0 2.5]); &lt;br /&gt;
&lt;br /&gt;
sgtitle('Visualización del Sólido Mallado bajo Deformación'); % Título&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Divergencia==&lt;br /&gt;
La divergencia &amp;lt;math&amp;gt;\nabla \cdot \vec{u}&amp;lt;/math&amp;gt; mide la variación de volumen local en el sólido. En nuestro caso, el cálculo da como resultado:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\nabla \cdot \vec{u} = \frac{y}{20}&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Este resultado indica que la placa experimenta una expansión positiva, que aumenta linealmente con la altura, debido al estiramiento de las fibras superiores.&lt;br /&gt;
&lt;br /&gt;
En la representación gráfica se observa la distribución de la divergencia mediante franjas de color:&lt;br /&gt;
&lt;br /&gt;
En azul se encuentra la base, donde el volumen permanece prácticamente constante.&lt;br /&gt;
&lt;br /&gt;
Hacia la parte superior, el color se degrada progresivamente hasta un rojo intenso, indicando el punto de máxima expansión, independiente de la posición horizontal &lt;br /&gt;
𝑥&lt;br /&gt;
x.&lt;br /&gt;
[[Archivo:divergenciaplaca.jpg|miniaturadeimagen|derecha|800px|Figura 7]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
% Definir Malla y Placa&lt;br /&gt;
h=0.05;&lt;br /&gt;
[X,Y]=meshgrid(0:h:4, 0:h:2);&lt;br /&gt;
f=X./8;g=2-X./8; % Límites&lt;br /&gt;
EnPlaca=Y&amp;gt;=f&amp;amp;Y&amp;lt;=g; % Máscara lógica&lt;br /&gt;
&lt;br /&gt;
% Divergencia&lt;br /&gt;
Div=Y./20; &lt;br /&gt;
Div(~EnPlaca)=NaN;&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Name','Divergencia');clf;hold on;&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]);box on;&lt;br /&gt;
title('Divergencia: Cambio de Volumen');&lt;br /&gt;
xlabel('X'); ylabel('Y');&lt;br /&gt;
[C, h_cont]=contourf(X, Y, Div, 20,'LineStyle','none');&lt;br /&gt;
colormap(jet);&lt;br /&gt;
c=colorbar;ylabel(c,'Valor de Divergencia');&lt;br /&gt;
&lt;br /&gt;
% Dibujar bordes negros&lt;br /&gt;
x_b = linspace(0, 4, 200);&lt;br /&gt;
plot(x_b, x_b./8,'k','LineWidth',1);&lt;br /&gt;
plot(x_b, 2 - x_b./8,'k','LineWidth',1);&lt;br /&gt;
plot([0 0],[0 2],'k','LineWidth',1);&lt;br /&gt;
plot([4 4],[0.5 1.5],'k','LineWidth',1);&lt;br /&gt;
&lt;br /&gt;
% Señalar puntos clave&lt;br /&gt;
plot(0,2,'kp','MarkerSize',12,'MarkerFaceColor','r');&lt;br /&gt;
text(0.1, 2.1,'Max Expansión','FontWeight','bold');&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
plot(0,0,'kp','MarkerSize',12,'MarkerFaceColor','b');&lt;br /&gt;
text(0.1,-0.1,'Divergencia Nula','FontWeight','bold');&lt;br /&gt;
hold off;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rotacional==&lt;br /&gt;
Se calcula el rotacional &amp;lt;math&amp;gt;|\nabla \times \vec{u}|&amp;lt;/math&amp;gt; en todos los puntos del sólido.&lt;br /&gt;
&lt;br /&gt;
Los resultados muestran que los puntos más alejados del origen y alineados con el eje &lt;br /&gt;
𝑥&lt;br /&gt;
x experimentan los mayores valores de rotacional, indicando que estas zonas sufren la mayor rotación local debido al campo de desplazamientos aplicado.&lt;br /&gt;
[[Archivo:Rotacionaldemanuel.png|600px|thumb]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Mallado y Región&lt;br /&gt;
h = 0.05;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la placa&lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
X(~Condition) = NaN;&lt;br /&gt;
Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Definición del Mallado y Región&lt;br /&gt;
h = 0.05;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la placa &lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
X(~Condition) = NaN;&lt;br /&gt;
Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
% 2. Cálculo del Rotacional (Magnitud)&lt;br /&gt;
% |Rot(u)| = 0.15 * x&lt;br /&gt;
Rotacional = 0.15 .* X;&lt;br /&gt;
&lt;br /&gt;
% Gráfica en 3D &lt;br /&gt;
figure('Name', 'Rotacional en 3D', 'Color', 'w');&lt;br /&gt;
&lt;br /&gt;
% 'surf' crea la superficie 3D. X e Y son la base, Rotacional es la altura.&lt;br /&gt;
s = surf(X, Y, Rotacional);&lt;br /&gt;
&lt;br /&gt;
% --- Estética de la gráfica 3D ---&lt;br /&gt;
shading interp; % Suaviza los colores (quita las líneas de la cuadrícula)&lt;br /&gt;
colormap(jet); % Mapa de colores (Azul -&amp;gt; Rojo)&lt;br /&gt;
alpha(0.9); % Un poco de transparencia (opcional)&lt;br /&gt;
&lt;br /&gt;
view(3); % Pone la vista en perspectiva 3D automáticamente&lt;br /&gt;
axis tight; % Ajusta los ejes al contenido&lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
&lt;br /&gt;
% Añadir barra de colores&lt;br /&gt;
c = colorbar;&lt;br /&gt;
c.Label.String = 'Magnitud |\nabla \times u|';&lt;br /&gt;
c.Label.FontSize = 11;&lt;br /&gt;
&lt;br /&gt;
% Etiquetas y Título&lt;br /&gt;
title('Magnitud del Rotacional (Vista 3D)', 'FontSize', 12);&lt;br /&gt;
xlabel('Eje X (Posición)', 'FontWeight', 'bold');&lt;br /&gt;
ylabel('Eje Y (Posición)', 'FontWeight', 'bold');&lt;br /&gt;
zlabel('Valor del Rotacional', 'FontWeight', 'bold');&lt;br /&gt;
&lt;br /&gt;
% Añadir luz&lt;br /&gt;
camlight left;&lt;br /&gt;
lighting phong;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
hold on;&lt;br /&gt;
contour(X, Y, Rotacional, 15, 'z', 'offset', 0, 'LineWidth', 1);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Tensores Deformacionales==&lt;br /&gt;
Se define el tensor de deformaciones como la parte simétrica del gradiente del campo de desplazamientos &amp;lt;math&amp;gt;\vec{u}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\varepsilon(\vec{u}) = \frac{1}{2} \big( \nabla \vec{u} + (\nabla \vec{u})^T \big)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En un medio elástico lineal, isótropo y homogéneo, los desplazamientos permiten expresar el tensor de tensiones &amp;lt;math&amp;gt;\sigma&amp;lt;/math&amp;gt; mediante la relación de Hooke generalizada:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\sigma = \lambda , (\nabla \cdot \vec{u}) , I + 2 \mu , \varepsilon(\vec{u})&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
donde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; es el tensor identidad en &amp;lt;math&amp;gt;\mathbb{R}^3&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; son los coeficientes de Lamé, que dependen de las propiedades elásticas del material.&lt;br /&gt;
&lt;br /&gt;
Tomando &amp;lt;math&amp;gt;\lambda = \mu = 1&amp;lt;/math&amp;gt;, se representan las tensiones normales en las direcciones de los ejes coordenados:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{i} \cdot \sigma \cdot \vec{i}&amp;lt;/math&amp;gt; — tensión normal en la dirección del eje &lt;br /&gt;
𝑥&lt;br /&gt;
x,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{j} \cdot \sigma \cdot \vec{j}&amp;lt;/math&amp;gt; — tensión normal en la dirección del eje &lt;br /&gt;
𝑦&lt;br /&gt;
y,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{k} \cdot \sigma \cdot \vec{k}&amp;lt;/math&amp;gt; — tensión normal en la dirección del eje &lt;br /&gt;
𝑧&lt;br /&gt;
z.&lt;br /&gt;
&lt;br /&gt;
Solo se representan las componentes no nulas, mostrando cómo se distribuyen las tensiones normales en el sólido bajo el campo de desplazamientos aplicado.&lt;br /&gt;
[[Archivo:contorno.jpg|miniaturadeimagen|derecha|800px|Figura 9]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% Geometría de la placa&lt;br /&gt;
h = 0.1;                        &lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
num_puntos_y = round(2/h);&lt;br /&gt;
s = linspace(0,1,num_puntos_y+1);% parámetro vertical [0,1]&lt;br /&gt;
&lt;br /&gt;
[U,S] = meshgrid(x,s);&lt;br /&gt;
f = U./8;                        &lt;br /&gt;
g = 2 - U./8;                   &lt;br /&gt;
&lt;br /&gt;
X = U;                           &lt;br /&gt;
Y = f + S.*(g - f);           &lt;br /&gt;
&lt;br /&gt;
% Campo de desplazamientos aplicado&lt;br /&gt;
&lt;br /&gt;
u = (X.*Y)/20;                   % componente en x&lt;br /&gt;
v = -(X.^2)/20;                  % componente en y&lt;br /&gt;
&lt;br /&gt;
% Derivadas analíticas&lt;br /&gt;
ux_x = Y/20;                    &lt;br /&gt;
ux_y = X/20;                   &lt;br /&gt;
vy_x = -(X/10);                 &lt;br /&gt;
vy_y = zeros(size(X));           &lt;br /&gt;
&lt;br /&gt;
div_u = ux_x + vy_y; % divergencia = y/20&lt;br /&gt;
&lt;br /&gt;
% Tensor de deformaciones&lt;br /&gt;
eps_xx = ux_x;                  &lt;br /&gt;
eps_yy = vy_y;                  &lt;br /&gt;
eps_xy = 0.5*(ux_y + vy_x);      &lt;br /&gt;
&lt;br /&gt;
% Tensiones &lt;br /&gt;
lambda = 1; mu = 1;&lt;br /&gt;
sigma_xx = lambda*div_u + 2*mu*eps_xx;   % = 3y/20&lt;br /&gt;
sigma_yy = lambda*div_u + 2*mu*eps_yy;   % = y/20&lt;br /&gt;
sigma_zz = lambda*div_u;                 % = y/20 (eps_zz=0)&lt;br /&gt;
sigma_xy = 2*mu*eps_xy;                  % = -x/20&lt;br /&gt;
sigma_yx = sigma_xy;                     % simétrico&lt;br /&gt;
sigma_xz = zeros(size(X));               % no hay variación en z&lt;br /&gt;
sigma_zx = zeros(size(X));               % idem&lt;br /&gt;
&lt;br /&gt;
% Tensión tangencial respecto al plano ortogonal a i &lt;br /&gt;
&lt;br /&gt;
tau_i = abs(sigma_yx);                   % = | -x/20 |&lt;br /&gt;
&lt;br /&gt;
% Gráficos&lt;br /&gt;
&lt;br /&gt;
cm = turbo;&lt;br /&gt;
lw = 1.2;&lt;br /&gt;
&lt;br /&gt;
% Mallado y contornos de la placa&lt;br /&gt;
figure('Name','Mallado de la placa','Color','w');&lt;br /&gt;
mesh(X,Y,zeros(size(X)),'EdgeColor',[0,0.6,0.7],'FaceColor','none'); hold on;&lt;br /&gt;
plot(X(1,:),Y(1,:),'k','LineWidth',2);       % borde inferior&lt;br /&gt;
plot(X(end,:),Y(end,:),'k','LineWidth',2);    % borde superior&lt;br /&gt;
plot(X(:,1),Y(:,1),'k','LineWidth',2);        % borde izquierdo (pared)&lt;br /&gt;
plot(X(:,end),Y(:,end),'k','LineWidth',2);    % borde derecho&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]); axis equal; grid on; box on;&lt;br /&gt;
xlabel('x'); ylabel('y'); title('Mallado y contorno de la placa');&lt;br /&gt;
&lt;br /&gt;
% Tensiones normales&lt;br /&gt;
figure('Name','Tensiones normales','Color','w');&lt;br /&gt;
tiledlayout(1,3,'Padding','compact','TileSpacing','compact');&lt;br /&gt;
&lt;br /&gt;
nexttile;&lt;br /&gt;
surf(X,Y,sigma_xx); shading interp; colormap(cm); colorbar;&lt;br /&gt;
title('\sigma_{xx}'); xlabel('x'); ylabel('y'); zlabel('\sigma_{xx}');&lt;br /&gt;
axis tight; daspect([1 1 0.35]); view(45,30);&lt;br /&gt;
&lt;br /&gt;
nexttile;&lt;br /&gt;
surf(X,Y,sigma_yy); shading interp; colormap(cm); colorbar;&lt;br /&gt;
title('\sigma_{yy}'); xlabel('x'); ylabel('y'); zlabel('\sigma_{yy}');&lt;br /&gt;
axis tight; daspect([1 1 0.35]); view(45,30);&lt;br /&gt;
&lt;br /&gt;
nexttile;&lt;br /&gt;
surf(X,Y,sigma_zz); shading interp; colormap(cm); colorbar;&lt;br /&gt;
title('\sigma_{zz}'); xlabel('x'); ylabel('y'); zlabel('\sigma_{zz}');&lt;br /&gt;
axis tight; daspect([1 1 0.35]); view(45,30);&lt;br /&gt;
sgtitle('Distribución de tensiones normales (\lambda=\mu=1)','FontWeight','bold');&lt;br /&gt;
&lt;br /&gt;
% Tensión tangencial respecto a i &lt;br /&gt;
figure('Name','Tension tangencial respecto a i','Color','w');&lt;br /&gt;
surf(X,Y,tau_i); shading interp; colormap(cm); colorbar;&lt;br /&gt;
title('\tau_{i} = |\sigma_{xy}|'); xlabel('x'); ylabel('y'); zlabel('\tau_{i}');&lt;br /&gt;
axis tight; daspect([1 1 0.35]); view(45,30); grid on;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
figure('Name','Contornos 2D de tensiones','Color','w');&lt;br /&gt;
tiledlayout(1,4,'Padding','compact','TileSpacing','compact');&lt;br /&gt;
&lt;br /&gt;
nexttile; contourf(X,Y,sigma_xx,20,'LineColor','none'); axis equal tight; colorbar;&lt;br /&gt;
title('\sigma_{xx}'); xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
nexttile; contourf(X,Y,sigma_yy,20,'LineColor','none'); axis equal tight; colorbar;&lt;br /&gt;
title('\sigma_{yy}'); xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
nexttile; contourf(X,Y,sigma_zz,20,'LineColor','none'); axis equal tight; colorbar;&lt;br /&gt;
title('\sigma_{zz}'); xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
nexttile; contourf(X,Y,tau_i,20,'LineColor','none'); axis equal tight; colorbar;&lt;br /&gt;
title('\tau_{i}'); xlabel('x'); ylabel('y');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tensiones tangenciales==&lt;br /&gt;
Se representan las tensiones tangenciales respecto al plano ortogonal al eje &amp;lt;math&amp;gt;\vec{i}&amp;lt;/math&amp;gt;, definidas como:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;|\sigma \cdot \vec{i} - (\vec{i} \cdot \sigma \cdot \vec{i}) , \vec{i}|&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En la gráfica se muestran únicamente las componentes no nulas, permitiendo visualizar las tensiones tangenciales que actúan sobre los planos perpendiculares al eje &lt;br /&gt;
𝑥&lt;br /&gt;
x.&lt;br /&gt;
[[Archivo:Tensionesdemanuel.png|600px|thumb]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Definición del Mallado&lt;br /&gt;
h = 0.15; &lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la placa &lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
X(~Condition) = NaN;&lt;br /&gt;
Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo de la Tensión Tangencial &lt;br /&gt;
&lt;br /&gt;
Sig_xy = -X ./ 20;&lt;br /&gt;
&lt;br /&gt;
% Definición del Vector Tangencial&lt;br /&gt;
&lt;br /&gt;
U_vec = zeros(size(X)); % Componente X es 0&lt;br /&gt;
V_vec = Sig_xy; % Componente Y es el valor de la tensión&lt;br /&gt;
&lt;br /&gt;
% Gráfica&lt;br /&gt;
figure('Name', 'Apartado 10: Vector Tensión Tangencial', 'Color', 'w');&lt;br /&gt;
&lt;br /&gt;
% Usamos quiver para dibujar las flechitas azules&lt;br /&gt;
&lt;br /&gt;
quiver(X, Y, U_vec, V_vec, 'b', 'LineWidth', 1);&lt;br /&gt;
&lt;br /&gt;
% Configuración de la vista&lt;br /&gt;
view(2); &lt;br /&gt;
axis equal; &lt;br /&gt;
grid on; &lt;br /&gt;
&lt;br /&gt;
% Títulos &lt;br /&gt;
title('Tensiones tangenciales (Plano ortogonal a i)');&lt;br /&gt;
xlabel('Eje X');&lt;br /&gt;
ylabel('Eje Y');&lt;br /&gt;
&lt;br /&gt;
% Ajuste de límites &lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&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 mediante la expresión:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma_{VM} = \sqrt{\frac{(\sigma_1 - \sigma_2)^2 + (\sigma_2 - \sigma_3)^2 + (\sigma_3 - \sigma_1)^2}{2}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Esta fórmula combina las diferencias entre las tensiones principales (𝜎1,𝜎2,𝜎3σ1,σ2,σ3) y permite calcular el esfuerzo equivalente que experimenta el material, útil para evaluar la resistencia frente a la plasticidad o el fallo.&lt;br /&gt;
[[Archivo:vonn.jpg|miniaturadeimagen|derecha|700px|Figura 11]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% Malla&lt;br /&gt;
h = 0.1;&lt;br /&gt;
[x, y] = meshgrid(0:h:4, 0:h:2);   % ojo: x -&amp;gt; columnas, y -&amp;gt; filas&lt;br /&gt;
X = x; Y = y;&lt;br /&gt;
&lt;br /&gt;
% Bordes de la placa&lt;br /&gt;
f = X./8;&lt;br /&gt;
g = 2 - X./8;&lt;br /&gt;
EnPlaca = (Y &amp;gt;= f) &amp;amp; (Y &amp;lt;= g);&lt;br /&gt;
&lt;br /&gt;
% Definición del campo de desplazamientos en cartesianas&lt;br /&gt;
ux=(1/20).*X.*Y;&lt;br /&gt;
uy=-(1/20).*X.^2;&lt;br /&gt;
&lt;br /&gt;
% Derivadas analíticas:&lt;br /&gt;
% ux_x=d(u_x)/dx=y/20&lt;br /&gt;
% ux_y=d(u_x)/dy=x/20&lt;br /&gt;
% uy_x=d(u_y)/dx=-x/10&lt;br /&gt;
% uy_y=d(u_y)/dy 0&lt;br /&gt;
ux_x=Y./20;&lt;br /&gt;
ux_y=X./20;&lt;br /&gt;
uy_x=-X./10;&lt;br /&gt;
uy_y=zeros(size(X));&lt;br /&gt;
&lt;br /&gt;
% Divergencia (útil para sigma)&lt;br /&gt;
divU=ux_x+uy_y;&lt;br /&gt;
&lt;br /&gt;
% Tensor de deformaciones simétrico &lt;br /&gt;
% epsilon = 1/2(grad u + grad u^T)&lt;br /&gt;
% epsilon_xx = ux_x&lt;br /&gt;
% epsilon_yy = uy_y&lt;br /&gt;
% epsilon_xy = 1/2*(ux_y + uy_x)&lt;br /&gt;
eps_xx = ux_x;&lt;br /&gt;
eps_yy = uy_y;&lt;br /&gt;
eps_xy = 0.5*(ux_y + uy_x);&lt;br /&gt;
&lt;br /&gt;
% Para el caso 3D consideramos eps_zz = 0&lt;br /&gt;
eps_zz = zeros(size(X));&lt;br /&gt;
&lt;br /&gt;
% Coeficientes de Lamé&lt;br /&gt;
lambda=1;&lt;br /&gt;
mu=1;&lt;br /&gt;
&lt;br /&gt;
% Construcción del tensor de tensiones &lt;br /&gt;
%sigma = lambda*div(u)*I + 2*mu*eps&lt;br /&gt;
sigma_xx = lambda.*divU + 2*mu.*eps_xx;&lt;br /&gt;
sigma_yy = lambda.*divU + 2*mu.*eps_yy;&lt;br /&gt;
sigma_zz = lambda.*divU + 2*mu.*eps_zz;&lt;br /&gt;
sigma_xy = 2*mu.*eps_xy;    % = sigma_yx&lt;br /&gt;
&lt;br /&gt;
% Von Mises y matriz para autovalores&lt;br /&gt;
VM = NaN(size(X));&lt;br /&gt;
S1 = NaN(size(X)); S2 = NaN(size(X)); S3 = NaN(size(X));&lt;br /&gt;
&lt;br /&gt;
% Loop sobre puntos dentro de la placa para calcular autovalores&lt;br /&gt;
[idx_i,idx_j]=find(EnPlaca);&lt;br /&gt;
npts=numel(idx_i);&lt;br /&gt;
&lt;br /&gt;
for k = 1:npts&lt;br /&gt;
    i = idx_i(k); j = idx_j(k);   % i: fila (y index), j: columna (x index)&lt;br /&gt;
    % construir sigma 3x3 en ese punto&lt;br /&gt;
    S = [sigma_xx(i,j), sigma_xy(i,j), 0;sigma_xy(i,j), sigma_yy(i,j),0;0,0,sigma_zz(i,j)];&lt;br /&gt;
    e = eig(S);          &lt;br /&gt;
    % ordenar autovalores (no estrictamente necesario, pero ordeno descendente)&lt;br /&gt;
    e = sort(e,'descend');&lt;br /&gt;
    s1 = e(1); s2 = e(2); s3 = e(3);&lt;br /&gt;
    % tensión de Von Mises (fórmula)&lt;br /&gt;
    sigmaVM = sqrt( ((s1-s2).^2 + (s2-s3).^2 + (s3-s1).^2) / 2 );&lt;br /&gt;
    VM(i,j) = sigmaVM;&lt;br /&gt;
    S1(i,j) = s1; S2(i,j) = s2; S3(i,j) = s3;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
VM(~EnPlaca) = NaN;&lt;br /&gt;
% Buscar máximo de Von Mises dentro de la placa&lt;br /&gt;
[maxVM, indMax] = max(VM(:));&lt;br /&gt;
[rowMax, colMax] = ind2sub(size(VM), indMax);&lt;br /&gt;
xMax = X(rowMax, colMax);&lt;br /&gt;
yMax = Y(rowMax, colMax);&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Name','Tensión de Von Mises','Color','w'); clf; hold on;&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]); box on;&lt;br /&gt;
title('Tensión de Von Mises \sigma_{VM}');&lt;br /&gt;
xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
% Contourf del campo VM&lt;br /&gt;
numLevels = 30;&lt;br /&gt;
[C, hC] = contourf(X, Y, VM, numLevels, 'LineStyle','none');&lt;br /&gt;
colormap(jet);&lt;br /&gt;
c = colorbar; ylabel(c, '\sigma_{VM}');&lt;br /&gt;
% Bordes de la placa&lt;br /&gt;
xb = linspace(0,4,200);&lt;br /&gt;
plot(xb, xb./8, 'k-', 'LineWidth', 1.5);         &lt;br /&gt;
plot(xb, 2 - xb./8, 'k-', 'LineWidth', 1.5);    &lt;br /&gt;
plot([0 0], [0 2], 'k-', 'LineWidth', 1.5);  &lt;br /&gt;
plot([4 4], [0.5 1.5], 'k-', 'LineWidth', 1.5); &lt;br /&gt;
&lt;br /&gt;
% Punto de máxima tensión de Von Mises&lt;br /&gt;
plot(xMax, yMax, 'rp', 'MarkerSize', 14, 'MarkerFaceColor', 'r');&lt;br /&gt;
text(xMax+0.08, yMax+0.08, sprintf('Máx VM = %.3g', maxVM), 'FontWeight','bold','Color','r');&lt;br /&gt;
&lt;br /&gt;
% Mejora estética&lt;br /&gt;
set(gcf,'Color','w');&lt;br /&gt;
shading interp;&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
&lt;br /&gt;
% Información&lt;br /&gt;
fprintf('Máximo Von Mises = %.6g en (x,y) = (%.4g, %.4g)\n', maxVM, xMax, yMax);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Campo de Fuerzas==&lt;br /&gt;
&lt;br /&gt;
El campo de fuerzas &amp;lt;math&amp;gt;\vec{F}&amp;lt;/math&amp;gt; que actúa sobre la placa, y que es responsable del desplazamiento observado, se puede aproximar mediante la ecuación de la elasticidad lineal:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{F} = - \operatorname{div} \sigma&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt;\operatorname{div} \sigma&amp;lt;/math&amp;gt; es la divergencia de un campo tensorial. En coordenadas cartesianas, se expresa como:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\operatorname{div} \sigma = (\operatorname{div} \sigma)_1 , \vec{i} + (\operatorname{div} \sigma)_2 , \vec{j} + (\operatorname{div} \sigma)3 , \vec{k}, \quad (\operatorname{div} \sigma)i = \sum{j=1}^{3} \frac{\partial \sigma{ij}}{\partial x_j}&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Esta formulación permite calcular, a partir del tensor de tensiones, el campo de fuerzas internas que genera los desplazamientos de la placa.&lt;br /&gt;
[[Archivo:Fuerzas_manuel.jpg|700px|thumb]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%% Apartado 12: Campo de Fuerzas Volumétricas (F = -div Sigma)&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% 1. Definición del Mallado&lt;br /&gt;
h = 0.1;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la placa (Trapecio)&lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
X(~Condition) = NaN;&lt;br /&gt;
Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
lambda = 1; mu = 1;&lt;br /&gt;
&lt;br /&gt;
% 2. Recalculamos las Tensiones (Necesarias para derivar)&lt;br /&gt;
% Usamos las fórmulas analíticas que ya conocemos&lt;br /&gt;
Div_u = Y ./ 20;&lt;br /&gt;
Eps_xx = Y ./ 20;&lt;br /&gt;
Eps_yy = zeros(size(X));&lt;br /&gt;
&lt;br /&gt;
Sig_xx = lambda .* Div_u + 2 .* mu .* Eps_xx; % = 3y/20&lt;br /&gt;
Sig_yy = lambda .* Div_u + 2 .* mu .* Eps_yy; % = y/20&lt;br /&gt;
Sig_xy = -X ./ 20; % = -x/20 (cizalladura)&lt;br /&gt;
&lt;br /&gt;
% 3. Cálculo de la Divergencia del Tensor (Numéricamente)&lt;br /&gt;
% F = -div(sigma)&lt;br /&gt;
% Fx = -( d(Sxx)/dx + d(Sxy)/dy )&lt;br /&gt;
% Fy = -( d(Sxy)/dx + d(Syy)/dy )&lt;br /&gt;
&lt;br /&gt;
% La función gradient calcula derivadas centrales.&lt;br /&gt;
% Sintaxis: gradient(Matriz, paso_x, paso_y)&lt;br /&gt;
[dSxx_dx, dSxx_dy] = gradient(Sig_xx, h, h);&lt;br /&gt;
[dSxy_dx, dSxy_dy] = gradient(Sig_xy, h, h);&lt;br /&gt;
[dSyy_dx, dSyy_dy] = gradient(Sig_yy, h, h);&lt;br /&gt;
&lt;br /&gt;
Fx = - (dSxx_dx + dSxy_dy);&lt;br /&gt;
Fy = - (dSxy_dx + dSyy_dy);&lt;br /&gt;
&lt;br /&gt;
% 4. Comprobación de Magnitud (Para ver si es cero)&lt;br /&gt;
MagnitudF = sqrt(Fx.^2 + Fy.^2);&lt;br /&gt;
max_F = max(MagnitudF(:));&lt;br /&gt;
&lt;br /&gt;
fprintf('--- Resultado Apartado 12 ---\n');&lt;br /&gt;
fprintf('La fuerza máxima calculada es: %e\n', max_F);&lt;br /&gt;
&lt;br /&gt;
if max_F &amp;lt; 1e-10&lt;br /&gt;
fprintf('CONCLUSIÓN: La fuerza es prácticamente NULA (Equilibrio).\n');&lt;br /&gt;
subtitle_text = 'Fuerza \approx 0 (Equilibrio Estático)';&lt;br /&gt;
else&lt;br /&gt;
subtitle_text = 'Existen fuerzas volumétricas';&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% 5. Gráfica&lt;br /&gt;
figure('Name', 'Apartado 12: Campo de Fuerzas', 'Color', 'w');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
% Dibujamos los vectores.&lt;br /&gt;
% Como son casi cero, MATLAB pintará puntos. Para ver &amp;quot;algo&amp;quot;,&lt;br /&gt;
% a veces se normalizan, pero lo correcto es mostrar que no hay fuerza.&lt;br /&gt;
quiver(X, Y, Fx, Fy, 'r');&lt;br /&gt;
&lt;br /&gt;
% Dibujar bordes&lt;br /&gt;
plot([0 4 4 0 0], [0 0.5 1.5 2 0], 'k--', 'LineWidth', 0.5); % Caja aproximada&lt;br /&gt;
&lt;br /&gt;
title('Campo de Fuerzas Volumétricas');&lt;br /&gt;
subtitle(subtitle_text);&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&lt;br /&gt;
&lt;br /&gt;
% Añadimos una nota en la gráfica explicándolo&lt;br /&gt;
text(1, 1, {'Fuerza Nula', '(puntos indican magnitud ~0)'}, ...&lt;br /&gt;
'Color', 'r', 'FontWeight', 'bold', 'HorizontalAlignment', 'center');&lt;br /&gt;
&lt;br /&gt;
hold off;}}&lt;br /&gt;
&lt;br /&gt;
==Densidad==&lt;br /&gt;
[[Archivo:dens.jpg|miniaturadeimagen|derecha|800px|Figura 10]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
% Mallado&lt;br /&gt;
h=0.05; &lt;br /&gt;
[X,Y]=meshgrid(0:h:4,0:h:2);&lt;br /&gt;
&lt;br /&gt;
% Forma de la placa&lt;br /&gt;
Condition=(Y&amp;gt;=X./8)&amp;amp;(Y&amp;lt;=2-X./8);&lt;br /&gt;
&lt;br /&gt;
% Definición de la Densidad : d(x,y)=(4-x)*|y|&lt;br /&gt;
Densidad=(4-X).*abs(Y);&lt;br /&gt;
&lt;br /&gt;
% Filtrado para la Gráfica&lt;br /&gt;
Densidad(~Condition)=NaN;&lt;br /&gt;
&lt;br /&gt;
% Visualización 3D&lt;br /&gt;
figure('Name','Densidad', 'Color','w');&lt;br /&gt;
&lt;br /&gt;
% Superficie 3D&lt;br /&gt;
surf(X,Y,Densidad);&lt;br /&gt;
&lt;br /&gt;
% Configuración&lt;br /&gt;
shading interp; % Elimina las líneas negras para que se vea suave&lt;br /&gt;
colormap(jet);  % Mapa de colores (De azul a rojo)&lt;br /&gt;
colorbar;       % Barra de referencia&lt;br /&gt;
caxis([0 8]);   % Fija la escala de colores&lt;br /&gt;
&lt;br /&gt;
% Etiquetas y Título&lt;br /&gt;
title({'Densidad'},'FontSize',13);&lt;br /&gt;
xlabel('Eje X','FontWeight','bold');&lt;br /&gt;
ylabel('Eje Y','FontWeight','bold');&lt;br /&gt;
zlabel('Densidad (kg/m^2)','FontWeight','bold');&lt;br /&gt;
&lt;br /&gt;
% Ajustes&lt;br /&gt;
axis tight;      % Ajusta los ejes al contenido&lt;br /&gt;
view(-45, 30);   % Ángulo de vista &lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
&lt;br /&gt;
% Proyección de sombra en el suelo&lt;br /&gt;
hold on;&lt;br /&gt;
% Dibujamos el contorno plano abajo del todo (en z=0) para referencia&lt;br /&gt;
contour(X,Y,Densidad,20,'z','Offset',0); &lt;br /&gt;
hold off;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ejemplos de uso en la ingeniería ==&lt;br /&gt;
&lt;br /&gt;
Las vigas en voladizo destacan por su forma y por la versatilidad que ofrecen, lo que las convierte en un elemento muy empleado en distintos ámbitos. Algunos de sus usos más frecuentes son:&lt;br /&gt;
&lt;br /&gt;
• Arquitectura: se utilizan en balcones, terrazas, marquesinas o cubiertas de acceso.&lt;br /&gt;
• Maquinaria: forman parte de brazos de grúas y de las palas de los aerogeneradores.&lt;br /&gt;
• Ingeniería: se aplican en la construcción de puentes en voladizo y en diferentes componentes estructurales.&lt;/div&gt;</summary>
		<author><name>Alejandro.Morales</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Placa_Plana_(Grupo_09)&amp;diff=95141</id>
		<title>Placa Plana (Grupo 09)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Placa_Plana_(Grupo_09)&amp;diff=95141"/>
				<updated>2025-12-02T18:30:06Z</updated>
		
		<summary type="html">&lt;p&gt;Alejandro.Morales: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Archivo:Mimallado.png|miniaturadeimagen]]&lt;br /&gt;
{{ TrabajoED | Placa plana. Grupo 09 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC25/26|2025-26]] | Rafael Gonzalez Gomez &amp;lt;br/&amp;gt; Mario Belinchón Buendía &amp;lt;br/&amp;gt;Alejandro Morales Tari&amp;lt;br/&amp;gt;  Pablo Márquez Blanco}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Teoría de Campos]]&lt;br /&gt;
[[Categoría:TC25/26]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introducción==&lt;br /&gt;
&lt;br /&gt;
Consideramos la sección longitudinal de una viga en voladizo de geometría rectangular (en dimensión 2). Esta viga ocupa la región mostrada en la Figura 1, y permanece anclada en la pared vertical situada en el lado izquierdo. La zona que vamos a estudiar se describe mediante:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
(x,y) \in [0,4] \times [f(x),, g(x)],&lt;br /&gt;
\qquad&lt;br /&gt;
f(x)=\frac{x}{8},&lt;br /&gt;
\qquad&lt;br /&gt;
g(x)= 2-\frac{x}{8}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En esta placa se consideran dos magnitudes físicas relevantes.&lt;br /&gt;
La primera es el campo de temperaturas, modelado por la función:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
T(x,y)=\big(1+(y-1)^2\big),(4-x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
La segunda magnitud corresponde al campo de desplazamientos &amp;lt;math&amp;gt;\vec u(x,y)&amp;lt;/math&amp;gt;, producido por una fuerza externa —cuyo valor exacto no conocemos— y que deforma la placa.&lt;br /&gt;
&lt;br /&gt;
Para describir la deformación, sea&lt;br /&gt;
&amp;lt;math&amp;gt;\vec r_0(x,y)=x,\vec i + y,\vec j&amp;lt;/math&amp;gt;&lt;br /&gt;
el vector de posición inicial de cada punto. Entonces, tras aplicarse la fuerza, la nueva posición de un punto queda dada por:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\vec r_d(x,y)=\vec r_0(x,y)+\vec u(x,y)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Supondremos que la fuerza aplicada induce un desplazamiento expresado, en coordenadas polares &amp;lt;math&amp;gt;(\rho,\theta)&amp;lt;/math&amp;gt;, mediante:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\vec u(\rho,\theta)= -\frac{1}{20},\rho^2\cos\theta ; \vec e_\theta&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Este modelo permite estudiar tanto la distribución térmica en la viga como la deformación resultante, proporcionando una base adecuada para analizar su comportamiento estructural.&lt;br /&gt;
&lt;br /&gt;
==Mallado==&lt;br /&gt;
Para comenzar, construiremos un mallado de la sección longitudinal que nos permita representar los puntos interiores del sólido. Para ello, hemos empleado un paso de muestreo de&lt;br /&gt;
&amp;lt;math&amp;gt;h = \tfrac{1}{10}&amp;lt;/math&amp;gt;&lt;br /&gt;
y hemos definido la malla sobre el rectángulo que delimita los ejes coordenados:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt; (x, y) \in [-1,, 5] \times [-1,, 3] &amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Este mallado servirá como base para discretizar la región de interés y facilitar los cálculos posteriores.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Malladoplacaplana.png|thumb|700px|]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
h = 1/10;&lt;br /&gt;
color_malla = [0, 0.6, 0.6]; % Color &lt;br /&gt;
&lt;br /&gt;
% Coordenadas&lt;br /&gt;
u = 0 : h : 4;&lt;br /&gt;
v = 0 : h : 2;&lt;br /&gt;
[U, V] = meshgrid(u, v);&lt;br /&gt;
&lt;br /&gt;
% Calculamos los bordes &lt;br /&gt;
y_abajo = U ./ 8;&lt;br /&gt;
y_arriba = 2 - (U ./ 8);&lt;br /&gt;
&lt;br /&gt;
% Interpolamos&lt;br /&gt;
factor_altura = V ./ 2; % Va de 0 (abajo) a 1 (arriba)&lt;br /&gt;
&lt;br /&gt;
X = U;&lt;br /&gt;
Y = y_abajo + factor_altura .* (y_arriba - y_abajo);&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Color', 'w'); hold on;&lt;br /&gt;
&lt;br /&gt;
% Dibujar las líneas VERTICALES&lt;br /&gt;
plot(X, Y, 'Color', color_malla, 'LineWidth', 0.5);&lt;br /&gt;
&lt;br /&gt;
% Dibujar las líneas HORIZONTALES&lt;br /&gt;
plot(X', Y', 'Color', color_malla, 'LineWidth', 0.5);&lt;br /&gt;
&lt;br /&gt;
% Dibujar el contorno &lt;br /&gt;
plot(u, u./8, 'k-', 'LineWidth', 2); % Borde Abajo&lt;br /&gt;
plot(u, 2 - u./8, 'k-', 'LineWidth', 2); % Borde Arriba&lt;br /&gt;
plot([0 0], [0 2], 'k-', 'LineWidth', 2); % Borde Izquierdo&lt;br /&gt;
plot([4 4], [0.5 1.5], 'k-', 'LineWidth', 2); % Borde Derecho&lt;br /&gt;
&lt;br /&gt;
% Configuración final&lt;br /&gt;
axis([-1 5 -1 3]); % Zoom/Encuadre exacto&lt;br /&gt;
xlabel('x'); ylabel('y');&lt;br /&gt;
title('Mallado de la placa plana');&lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Curvas de nivel==&lt;br /&gt;
A continuación se representan las curvas de nivel de la temperatura con el fin de identificar visualmente la zona donde esta alcanza su valor máximo. A partir de la gráfica puede apreciarse que los puntos donde la temperatura es mayor son:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;(x,y) = (0,0) \quad \text{y} \quad (0,2)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Además, calculamos el gradiente de la temperatura para analizar la dirección de mayor variación de esta magnitud. El gradiente viene dado por:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\nabla T(x,y)&lt;br /&gt;
= \left( \frac{\partial T}{\partial x},, \frac{\partial T}{\partial y} \right)&lt;br /&gt;
= \Big( -\big(1+(y-1)^2\big),; (4-x)\cdot 2(y-1) \Big).&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En la representación gráfica se observa que el vector gradiente es ortogonal a las curvas de nivel, tal como establece la teoría: apunta siempre en la dirección de crecimiento más rápido de la temperatura.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:curvadenivel.jpeg|miniaturadeimagen|derecha|800px|Figura 2]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
% Definición &lt;br /&gt;
h=0.1;               &lt;br /&gt;
x=0:h:4;                  &lt;br /&gt;
y=0:h:2;           &lt;br /&gt;
[X,Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Funciones  &lt;br /&gt;
f=@(x)x./8;  &lt;br /&gt;
g=@(x)2-x./8;  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EnPlaca=Y&amp;gt;=f(X)&amp;amp;Y&amp;lt; g(X);&lt;br /&gt;
&lt;br /&gt;
% Definición de la Temperatura y el Gradiente&lt;br /&gt;
&lt;br /&gt;
T=(1+(Y-1).^2).*(4-X);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
T_plot=T;&lt;br /&gt;
T_plot(~EnPlaca)=NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo numérico del gradiente para los vectores &lt;br /&gt;
&lt;br /&gt;
U=-(1+(Y-1).^2);          &lt;br /&gt;
V=2.*(Y-1).*(4-X);   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U(~EnPlaca)=NaN;&lt;br /&gt;
V(~EnPlaca)=NaN;&lt;br /&gt;
&lt;br /&gt;
% Gráfica&lt;br /&gt;
figure(1);&lt;br /&gt;
clf; &lt;br /&gt;
hold on;&lt;br /&gt;
axis equal; &lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&lt;br /&gt;
title({'Isotermas y Gradiente \nabla T', 'T(x,y) = (1+(y-1)^2)(4-x)'});&lt;br /&gt;
xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
% Mapa de calor &lt;br /&gt;
[C_fill, h_fill] = contourf(X, Y, T_plot, 20, 'LineStyle', 'none');&lt;br /&gt;
colormap(jet); &lt;br /&gt;
cb=colorbar;&lt;br /&gt;
ylabel(cb,'Temperatura T');&lt;br /&gt;
&lt;br /&gt;
% Curvas de nivel&lt;br /&gt;
[C, h_cont]=contour(X,Y,T_plot,10,'k','LineWidth',1.5);&lt;br /&gt;
clabel(C,h_cont,'FontSize',9,'Color','k','FontWeight','bold');&lt;br /&gt;
&lt;br /&gt;
% Campo Vectorial &lt;br /&gt;
&lt;br /&gt;
step=3; &lt;br /&gt;
quiver(X(1:step:end,1:step:end),Y(1:step:end, 1:step:end), ...&lt;br /&gt;
U(1:step:end,1:step:end),V(1:step:end,1:step:end), ...&lt;br /&gt;
1.2,'k','LineWidth',1); % '1.2' es el factor de escala de las flechas&lt;br /&gt;
&lt;br /&gt;
% Dibujar bordes de la placa&lt;br /&gt;
plot(x,f(x),'k-','LineWidth',2);&lt;br /&gt;
plot(x,g(x),'k-','LineWidth',2); &lt;br /&gt;
plot([0 0],[f(0) g(0)],'k-','LineWidth',2); &lt;br /&gt;
plot([4 4],[f(4) g(4)],'k-','LineWidth',2); &lt;br /&gt;
&lt;br /&gt;
% Señalar Máximo&lt;br /&gt;
plot(0,0,'rp','MarkerSize',12,'MarkerFaceColor','r');&lt;br /&gt;
plot(0,2,'rp','MarkerSize',12,'MarkerFaceColor','r');&lt;br /&gt;
text(0.1,0,'Max T','Color','white','FontWeight','bold');&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ley de Fourier==&lt;br /&gt;
Según la ley de Fourier, el flujo de energía calorífica &amp;lt;math&amp;gt;\vec{Q}&amp;lt;/math&amp;gt; viene dado por:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{Q} = -\kappa , \nabla T&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt;\kappa&amp;lt;/math&amp;gt; representa la conductividad térmica del material. En nuestro caso, consideramos&lt;br /&gt;
&amp;lt;math&amp;gt;\kappa = 1&amp;lt;/math&amp;gt;, de modo que la expresión se simplifica a:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{Q} = - \nabla T&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Bajo esta suposición, en la representación gráfica puede apreciarse que el flujo calorífico es simplemente el opuesto del gradiente de la temperatura, señalando siempre la dirección de máxima disminución térmica.&lt;br /&gt;
[[Archivo:Flujo de calor manuel.png|600px|thumb]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Configuración del Mallado&lt;br /&gt;
h = 0.2;&lt;br /&gt;
x = 0 : h : 4;&lt;br /&gt;
y = 0 : h : 2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definir la Geometría &lt;br /&gt;
y_abajo = X ./ 8;&lt;br /&gt;
y_arriba = 2 - (X ./ 8);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Definir la Temperatura &lt;br /&gt;
T_func = @(x,y) (1 + (y - 1).^2) .* (4 - x);&lt;br /&gt;
T = T_func(X, Y);&lt;br /&gt;
&lt;br /&gt;
% Cálculos Físicos &lt;br /&gt;
% A) Calculamos el Gradiente (nabla T) mediante derivadas numéricas&lt;br /&gt;
[dTdx, dTdy] = gradient(T, h, h);&lt;br /&gt;
&lt;br /&gt;
% Calculamos el Flujo de Calor &lt;br /&gt;
Qx = -dTdx;&lt;br /&gt;
Qy = -dTdy;&lt;br /&gt;
&lt;br /&gt;
% Limpieza &lt;br /&gt;
&lt;br /&gt;
Qx(~dentro) = NaN;&lt;br /&gt;
Qy(~dentro) = NaN;&lt;br /&gt;
T(~dentro) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Color', 'w', 'Name', 'Flujo de Calor Fourier');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
% FONDO: Mapa de Calor &lt;br /&gt;
&lt;br /&gt;
contourf(X, Y, T, 20, 'LineStyle', 'none');&lt;br /&gt;
colormap('jet'); % Paleta de colores: Azul (frío) -&amp;gt; Rojo (caliente)&lt;br /&gt;
&lt;br /&gt;
% Barra de color explicativa&lt;br /&gt;
c = colorbar;&lt;br /&gt;
c.Label.String = 'Temperatura T(x,y)';&lt;br /&gt;
c.Label.FontSize = 10;&lt;br /&gt;
&lt;br /&gt;
% El Campo Vectorial.&lt;br /&gt;
quiver(X, Y, Qx, Qy, 'k', 'LineWidth', 1.2, 'AutoScaleFactor', 1.5);&lt;br /&gt;
&lt;br /&gt;
% Dibujo del contorno.&lt;br /&gt;
plot([0 4], [0 0.5], 'k-', 'LineWidth', 2); &lt;br /&gt;
plot([0 4], [2 1.5], 'k-', 'LineWidth', 2); &lt;br /&gt;
plot([0 0], [0 2], 'k-', 'LineWidth', 2); &lt;br /&gt;
plot([4 4], [0.5 1.5], 'k-', 'LineWidth', 2); &lt;br /&gt;
&lt;br /&gt;
% Configuración Final&lt;br /&gt;
axis equal;&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]); &lt;br /&gt;
grid on;&lt;br /&gt;
xlabel('Eje x'); ylabel('Eje y');&lt;br /&gt;
title({'Vector Flujo de Calor', ...&lt;br /&gt;
'El calor fluye desde las capas más calientes hacia las más frías'});&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Gradiente Térmico==&lt;br /&gt;
El punto de máxima variación térmica corresponde al lugar donde el gradiente de la temperatura alcanza su valor máximo. En la práctica, esto se obtiene igualando la derivada del gradiente a cero.&lt;br /&gt;
&lt;br /&gt;
Mientras que la variación térmica sigue la dirección del gradiente, el flujo de calor más intenso se orienta en sentido contrario, es decir, hacia donde disminuye la temperatura.&lt;br /&gt;
&lt;br /&gt;
Paso 1: Definición de la función para maximizar&lt;br /&gt;
&lt;br /&gt;
Llamamos a la función:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;G(x,y) = |\nabla T|^2&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Desarrollando los términos:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;G(x,y) = \big(1+(y-1)^2\big)^2 + \big(2(y-1)(4-x)\big)^2&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;G(x,y) = (y^2 - 2y + 2)^2 + 4(y-1)^2(4-x)^2&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Paso 2: Cálculo de los puntos críticos&lt;br /&gt;
&lt;br /&gt;
Para maximizar la función, derivamos y resolvemos el sistema:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial G}{\partial x} = -8 (y-1)^2 (4-x) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial G}{\partial y} = 4 (y-1) \big(1 + (y-1)^2 + 2 (4-x)^2 \big) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Al resolver este sistema, encontramos que los mínimos se sitúan sobre la recta:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;y = 1&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Como no hay máximos aislados dentro del dominio, los máximos deben encontrarse en la frontera:&lt;br /&gt;
&lt;br /&gt;
Borde izquierdo: &amp;lt;math&amp;gt;x=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Borde derecho: &amp;lt;math&amp;gt;x=4&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curva inferior: &amp;lt;math&amp;gt;y = x/8&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curva superior: &amp;lt;math&amp;gt;y = 2 - x/8&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras analizar los límites del recinto, los máximos de la función del gradiente térmico se localizan en el borde izquierdo, &amp;lt;math&amp;gt;x=0&amp;lt;/math&amp;gt;. Las coordenadas de los máximos son:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
P(1): x=0.00, y=0.00, Dirección del vector: [-2.00, -8.00]&lt;br /&gt;
P(2): x=0.00, y=2.00, Dirección del vector: [-2.00, 8.00]&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Paso 3: Cálculo de la máxima variación térmica&lt;br /&gt;
&lt;br /&gt;
El valor de la norma del gradiente es igual para P(1) y P(2). Calculamos, por ejemplo, para P(1) = (0,0):&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\nabla T(0,0) = \big(-(1 + (0-1)^2), 2(0-1)(4-0)\big) = (-2,-8)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;|\nabla T(0,0)| = \sqrt{(-2)^2 + (-8)^2} = \sqrt{4 + 64} = 2\sqrt{17} \approx 8.246&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Por lo tanto, la máxima variación térmica en la placa se produce en los puntos P(1) y P(2) y tiene un valor aproximado de 8.246.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:maxvart.jpg|miniaturadeimagen|derecha|800px|Figura 4:Máxima Variación de T]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
h=0.05;&lt;br /&gt;
[X,Y]=meshgrid(0:h:4,0:h:2);&lt;br /&gt;
f=X./8;g=2-X./8;&lt;br /&gt;
EnPlaca=Y&amp;gt;=f&amp;amp;Y&amp;lt;=g;&lt;br /&gt;
&lt;br /&gt;
% Gradiente y Norma&lt;br /&gt;
Tx=-(1+(Y-1).^2); &lt;br /&gt;
Ty=2.*(Y-1).*(4-X);&lt;br /&gt;
&lt;br /&gt;
% Gradiente&lt;br /&gt;
NormaGrad=sqrt(Tx.^2+Ty.^2);&lt;br /&gt;
NormaGrad(~EnPlaca)=0; &lt;br /&gt;
&lt;br /&gt;
% Máximo&lt;br /&gt;
max_val=max(NormaGrad(:));&lt;br /&gt;
[filas,cols]=find(NormaGrad==max_val);&lt;br /&gt;
&lt;br /&gt;
% puntos máximos&lt;br /&gt;
x_max=X(filas,cols);&lt;br /&gt;
y_max=Y(filas,cols);&lt;br /&gt;
&lt;br /&gt;
% Componentes del vector dirección &lt;br /&gt;
u_dir=Tx(filas,cols);&lt;br /&gt;
v_dir=Ty(filas,cols);&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Name','Máxima Variación de T');&lt;br /&gt;
hold on;axis equal;axis([-0.5 4.5 -0.5 2.5]);grid on;&lt;br /&gt;
title({'Puntos de Máxima Variación de Temperatura', '(Color = Magnitud del Gradiente T)'});&lt;br /&gt;
xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
% Mapa de calor&lt;br /&gt;
NormaGrad(~EnPlaca)=NaN;&lt;br /&gt;
contourf(X,Y,NormaGrad,20,'LineStyle','none');&lt;br /&gt;
colormap(jet);colorbar;&lt;br /&gt;
&lt;br /&gt;
% Contorno&lt;br /&gt;
plot([0 4 4 0 0],[0 0.5 1.5 2 0],'k','LineWidth',1.5);&lt;br /&gt;
&lt;br /&gt;
% Puntos rojos y dirección&lt;br /&gt;
plot(x_max, y_max,'ro','MarkerSize',7.5,'MarkerFaceColor','r');&lt;br /&gt;
&lt;br /&gt;
% Flechas de dirección&lt;br /&gt;
quiver(x_max,y_max,u_dir,v_dir,0.5,'k','LineWidth',2,'MaxHeadSize',0.5);&lt;br /&gt;
&lt;br /&gt;
% Resultados&lt;br /&gt;
fprintf('La variación máxima es %.2f\n', max_val);&lt;br /&gt;
fprintf('Ocurre en los puntos:\n');&lt;br /&gt;
for i=1:length(x_max)&lt;br /&gt;
    fprintf('P(%d): x=%.2f, y=%.2f. Dirección del vector: [%.2f, %.2f]\n',i,x_max(i),y_max(i),u_dir(i),v_dir(i));&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Campo de Desplazamientos==&lt;br /&gt;
El campo de desplazamientos de un sólido se representa mediante un campo vectorial, que indica la dirección y sentido del desplazamiento de cada punto mediante vectores (representados como flechas rojas).&lt;br /&gt;
&lt;br /&gt;
Como se puede observar, los puntos que se encuentran más próximos al punto de aplicación de la fuerza experimentan los desplazamientos más grandes, mientras que los situados más alejados apenas se mueven.&lt;br /&gt;
[[Archivo:Desplazamiento_manuel.jpg|thumb|600px]]&lt;br /&gt;
{{matlab|codigo= &lt;br /&gt;
&lt;br /&gt;
h = 0.1; &lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la región &lt;br /&gt;
Condicion = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
&lt;br /&gt;
% Aplicamos Máscara&lt;br /&gt;
X(~Condicion) = NaN;&lt;br /&gt;
Y(~Condicion) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo del Campo de Desplazamientos &lt;br /&gt;
&lt;br /&gt;
Rho = sqrt(X.^2 + Y.^2);&lt;br /&gt;
Theta = atan2(Y, X);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U_theta_val = -1/20 .* Rho.^2 .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ux = -U_theta_val .* sin(Theta);&lt;br /&gt;
Uy = U_theta_val .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Calcular la posición deformada&lt;br /&gt;
&lt;br /&gt;
% Posición final = Posición inicial + Desplazamiento&lt;br /&gt;
X_final = X + Ux;&lt;br /&gt;
Y_final = Y + Uy;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Comparativa&lt;br /&gt;
&lt;br /&gt;
figure('Name', 'Deformación de la Placa', 'Color', 'w');&lt;br /&gt;
&lt;br /&gt;
% PLACA ORIGINAL&lt;br /&gt;
subplot(1, 2, 1);&lt;br /&gt;
% Usamos mesh con Z=0 para dibujar la 'rejilla' plana&lt;br /&gt;
mesh(X, Y, zeros(size(X)), 'EdgeColor', 'b');&lt;br /&gt;
view(2); % Vista superior (2D)&lt;br /&gt;
axis equal; grid on;&lt;br /&gt;
title('Placa antes del desplazamiento');&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
&lt;br /&gt;
% PLACA DEFORMADA &lt;br /&gt;
subplot(1, 2, 2);&lt;br /&gt;
mesh(X_final, Y_final, zeros(size(X)), 'EdgeColor', 'b');&lt;br /&gt;
view(2);&lt;br /&gt;
axis equal; grid on;&lt;br /&gt;
title('Placa después del desplazamiento');&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Apartado 5 &lt;br /&gt;
&lt;br /&gt;
figure('Name', 'Campo Vectorial de Desplazamientos');&lt;br /&gt;
hold on; axis equal; grid on;&lt;br /&gt;
title('Campo de Desplazamientos');&lt;br /&gt;
&lt;br /&gt;
% Dibujamos contorno original de referencia&lt;br /&gt;
plot(X(:), Y(:), '.k', 'MarkerSize', 1);&lt;br /&gt;
&lt;br /&gt;
% Dibujamos los vectores &lt;br /&gt;
quiver(X, Y, Ux, Uy, 0, 'r', 'LineWidth', 1.5);&lt;br /&gt;
&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
xlim([-0.5 4.5]); ylim([-0.5 2.5]);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Desplazamiento del Sólido==&lt;br /&gt;
Debido a la fuerza de magnitud desconocida, el sólido experimenta un desplazamiento descrito por el campo vectorial:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{u}(\rho, \theta) = -\frac{1}{20},\rho^2 \cos \theta ; \vec{e}_\theta&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
El sólido se deforma siguiendo este campo de desplazamientos. Como era de esperar, los puntos más próximos al punto de aplicación de la fuerza son los que sufren los mayores desplazamientos, mientras que los situados más lejos apenas se mueven.&lt;br /&gt;
&lt;br /&gt;
Se adjuntan las gráficas que muestran el desplazamiento sufrido. (Nota: el desplazamiento inferior no se aprecia en la visualización actual; sería necesario ajustar los ejes en el código para visualizarlo correctamente).&lt;br /&gt;
[[Archivo:Apartado6deformacion.png|thumb|1000px]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Definición de Geometría y Desplazamientos&lt;br /&gt;
h = 0.1; % Paso del mallado&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la Región &lt;br /&gt;
&lt;br /&gt;
% Aplicamos máscara &lt;br /&gt;
X(~Condicion) = NaN;&lt;br /&gt;
Y(~Condicion) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo de Desplazamientos&lt;br /&gt;
&lt;br /&gt;
Rho = sqrt(X.^2 + Y.^2);&lt;br /&gt;
Theta = atan2(Y, X);&lt;br /&gt;
&lt;br /&gt;
% Valor escalar de u_theta&lt;br /&gt;
U_theta_val = -1/20 .* Rho.^2 .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
% Proyección a cartesianas &lt;br /&gt;
Ux = -U_theta_val .* sin(Theta);&lt;br /&gt;
Uy = U_theta_val .* cos(Theta);&lt;br /&gt;
&lt;br /&gt;
% --- Posición Final Deformada ---&lt;br /&gt;
X_final = X + Ux;&lt;br /&gt;
Y_final = Y + Uy;&lt;br /&gt;
&lt;br /&gt;
% Gráfica Comparativa de Sólidos Mallados &lt;br /&gt;
figure('Name', 'Comparación Antes/Después', 'Color', 'w', 'Position', [100, 100, 1000, 500]);&lt;br /&gt;
&lt;br /&gt;
% Placa Original&lt;br /&gt;
subplot(1, 2, 1);&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
mesh(X, Y, zeros(size(X)), 'EdgeColor', [0 0.7 0.9], 'FaceColor', 'none');&lt;br /&gt;
&lt;br /&gt;
view(2); &lt;br /&gt;
axis equal; &lt;br /&gt;
grid on;&lt;br /&gt;
box on; &lt;br /&gt;
&lt;br /&gt;
title('Placa antes del desplazamiento', 'FontWeight', 'bold');&lt;br /&gt;
xlabel('Eje X');&lt;br /&gt;
ylabel('Eje Y');&lt;br /&gt;
axis([-1.5 4.5 0 2.5]);&lt;br /&gt;
&lt;br /&gt;
% Placa Deformada&lt;br /&gt;
subplot(1, 2, 2);&lt;br /&gt;
hold on;&lt;br /&gt;
% Dibujamos la malla usando las coordenadas finales (X_final, Y_final)&lt;br /&gt;
mesh(X_final, Y_final, zeros(size(X)), 'EdgeColor', [0 0.7 0.9], 'FaceColor', 'none');&lt;br /&gt;
&lt;br /&gt;
view(2);&lt;br /&gt;
axis equal;&lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
&lt;br /&gt;
title('Placa después del desplazamiento', 'FontWeight', 'bold');&lt;br /&gt;
xlabel('Eje X');&lt;br /&gt;
ylabel('Eje Y');&lt;br /&gt;
axis([-1.5 4.5 0 2.5]); &lt;br /&gt;
&lt;br /&gt;
sgtitle('Visualización del Sólido Mallado bajo Deformación'); % Título&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Divergencia==&lt;br /&gt;
La divergencia &amp;lt;math&amp;gt;\nabla \cdot \vec{u}&amp;lt;/math&amp;gt; mide la variación de volumen local en el sólido. En nuestro caso, el cálculo da como resultado:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\nabla \cdot \vec{u} = \frac{y}{20}&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Este resultado indica que la placa experimenta una expansión positiva, que aumenta linealmente con la altura, debido al estiramiento de las fibras superiores.&lt;br /&gt;
&lt;br /&gt;
En la representación gráfica se observa la distribución de la divergencia mediante franjas de color:&lt;br /&gt;
&lt;br /&gt;
En azul se encuentra la base, donde el volumen permanece prácticamente constante.&lt;br /&gt;
&lt;br /&gt;
Hacia la parte superior, el color se degrada progresivamente hasta un rojo intenso, indicando el punto de máxima expansión, independiente de la posición horizontal &lt;br /&gt;
𝑥&lt;br /&gt;
x.&lt;br /&gt;
[[Archivo:divergenciaplaca.jpg|miniaturadeimagen|derecha|800px|Figura 7]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
% Definir Malla y Placa&lt;br /&gt;
h=0.05;&lt;br /&gt;
[X,Y]=meshgrid(0:h:4, 0:h:2);&lt;br /&gt;
f=X./8;g=2-X./8; % Límites&lt;br /&gt;
EnPlaca=Y&amp;gt;=f&amp;amp;Y&amp;lt;=g; % Máscara lógica&lt;br /&gt;
&lt;br /&gt;
% Divergencia&lt;br /&gt;
Div=Y./20; &lt;br /&gt;
Div(~EnPlaca)=NaN;&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Name','Divergencia');clf;hold on;&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]);box on;&lt;br /&gt;
title('Divergencia: Cambio de Volumen');&lt;br /&gt;
xlabel('X'); ylabel('Y');&lt;br /&gt;
[C, h_cont]=contourf(X, Y, Div, 20,'LineStyle','none');&lt;br /&gt;
colormap(jet);&lt;br /&gt;
c=colorbar;ylabel(c,'Valor de Divergencia');&lt;br /&gt;
&lt;br /&gt;
% Dibujar bordes negros&lt;br /&gt;
x_b = linspace(0, 4, 200);&lt;br /&gt;
plot(x_b, x_b./8,'k','LineWidth',1);&lt;br /&gt;
plot(x_b, 2 - x_b./8,'k','LineWidth',1);&lt;br /&gt;
plot([0 0],[0 2],'k','LineWidth',1);&lt;br /&gt;
plot([4 4],[0.5 1.5],'k','LineWidth',1);&lt;br /&gt;
&lt;br /&gt;
% Señalar puntos clave&lt;br /&gt;
plot(0,2,'kp','MarkerSize',12,'MarkerFaceColor','r');&lt;br /&gt;
text(0.1, 2.1,'Max Expansión','FontWeight','bold');&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
plot(0,0,'kp','MarkerSize',12,'MarkerFaceColor','b');&lt;br /&gt;
text(0.1,-0.1,'Divergencia Nula','FontWeight','bold');&lt;br /&gt;
hold off;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rotacional==&lt;br /&gt;
Se calcula el rotacional &amp;lt;math&amp;gt;|\nabla \times \vec{u}|&amp;lt;/math&amp;gt; en todos los puntos del sólido.&lt;br /&gt;
&lt;br /&gt;
Los resultados muestran que los puntos más alejados del origen y alineados con el eje &lt;br /&gt;
𝑥&lt;br /&gt;
x experimentan los mayores valores de rotacional, indicando que estas zonas sufren la mayor rotación local debido al campo de desplazamientos aplicado.&lt;br /&gt;
[[Archivo:Rotacionaldemanuel.png|600px|thumb]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Mallado y Región&lt;br /&gt;
h = 0.05;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la placa&lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
X(~Condition) = NaN;&lt;br /&gt;
Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Definición del Mallado y Región&lt;br /&gt;
h = 0.05;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la placa &lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
X(~Condition) = NaN;&lt;br /&gt;
Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
% 2. Cálculo del Rotacional (Magnitud)&lt;br /&gt;
% |Rot(u)| = 0.15 * x&lt;br /&gt;
Rotacional = 0.15 .* X;&lt;br /&gt;
&lt;br /&gt;
% Gráfica en 3D &lt;br /&gt;
figure('Name', 'Rotacional en 3D', 'Color', 'w');&lt;br /&gt;
&lt;br /&gt;
% 'surf' crea la superficie 3D. X e Y son la base, Rotacional es la altura.&lt;br /&gt;
s = surf(X, Y, Rotacional);&lt;br /&gt;
&lt;br /&gt;
% --- Estética de la gráfica 3D ---&lt;br /&gt;
shading interp; % Suaviza los colores (quita las líneas de la cuadrícula)&lt;br /&gt;
colormap(jet); % Mapa de colores (Azul -&amp;gt; Rojo)&lt;br /&gt;
alpha(0.9); % Un poco de transparencia (opcional)&lt;br /&gt;
&lt;br /&gt;
view(3); % Pone la vista en perspectiva 3D automáticamente&lt;br /&gt;
axis tight; % Ajusta los ejes al contenido&lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
&lt;br /&gt;
% Añadir barra de colores&lt;br /&gt;
c = colorbar;&lt;br /&gt;
c.Label.String = 'Magnitud |\nabla \times u|';&lt;br /&gt;
c.Label.FontSize = 11;&lt;br /&gt;
&lt;br /&gt;
% Etiquetas y Título&lt;br /&gt;
title('Magnitud del Rotacional (Vista 3D)', 'FontSize', 12);&lt;br /&gt;
xlabel('Eje X (Posición)', 'FontWeight', 'bold');&lt;br /&gt;
ylabel('Eje Y (Posición)', 'FontWeight', 'bold');&lt;br /&gt;
zlabel('Valor del Rotacional', 'FontWeight', 'bold');&lt;br /&gt;
&lt;br /&gt;
% Añadir luz&lt;br /&gt;
camlight left;&lt;br /&gt;
lighting phong;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
hold on;&lt;br /&gt;
contour(X, Y, Rotacional, 15, 'z', 'offset', 0, 'LineWidth', 1);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Tensores Deformacionales==&lt;br /&gt;
Se define el tensor de deformaciones como la parte simétrica del gradiente del campo de desplazamientos &amp;lt;math&amp;gt;\vec{u}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\varepsilon(\vec{u}) = \frac{1}{2} \big( \nabla \vec{u} + (\nabla \vec{u})^T \big)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En un medio elástico lineal, isótropo y homogéneo, los desplazamientos permiten expresar el tensor de tensiones &amp;lt;math&amp;gt;\sigma&amp;lt;/math&amp;gt; mediante la relación de Hooke generalizada:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\sigma = \lambda , (\nabla \cdot \vec{u}) , I + 2 \mu , \varepsilon(\vec{u})&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
donde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; es el tensor identidad en &amp;lt;math&amp;gt;\mathbb{R}^3&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; son los coeficientes de Lamé, que dependen de las propiedades elásticas del material.&lt;br /&gt;
&lt;br /&gt;
Tomando &amp;lt;math&amp;gt;\lambda = \mu = 1&amp;lt;/math&amp;gt;, se representan las tensiones normales en las direcciones de los ejes coordenados:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{i} \cdot \sigma \cdot \vec{i}&amp;lt;/math&amp;gt; — tensión normal en la dirección del eje &lt;br /&gt;
𝑥&lt;br /&gt;
x,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{j} \cdot \sigma \cdot \vec{j}&amp;lt;/math&amp;gt; — tensión normal en la dirección del eje &lt;br /&gt;
𝑦&lt;br /&gt;
y,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{k} \cdot \sigma \cdot \vec{k}&amp;lt;/math&amp;gt; — tensión normal en la dirección del eje &lt;br /&gt;
𝑧&lt;br /&gt;
z.&lt;br /&gt;
&lt;br /&gt;
Solo se representan las componentes no nulas, mostrando cómo se distribuyen las tensiones normales en el sólido bajo el campo de desplazamientos aplicado.&lt;br /&gt;
[[Archivo:contorno.jpg|miniaturadeimagen|derecha|800px|Figura 9]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% Geometría de la placa&lt;br /&gt;
h = 0.1;                        &lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
num_puntos_y = round(2/h);&lt;br /&gt;
s = linspace(0,1,num_puntos_y+1);% parámetro vertical [0,1]&lt;br /&gt;
&lt;br /&gt;
[U,S] = meshgrid(x,s);&lt;br /&gt;
f = U./8;                        &lt;br /&gt;
g = 2 - U./8;                   &lt;br /&gt;
&lt;br /&gt;
X = U;                           &lt;br /&gt;
Y = f + S.*(g - f);           &lt;br /&gt;
&lt;br /&gt;
% Campo de desplazamientos aplicado&lt;br /&gt;
&lt;br /&gt;
u = (X.*Y)/20;                   % componente en x&lt;br /&gt;
v = -(X.^2)/20;                  % componente en y&lt;br /&gt;
&lt;br /&gt;
% Derivadas analíticas&lt;br /&gt;
ux_x = Y/20;                    &lt;br /&gt;
ux_y = X/20;                   &lt;br /&gt;
vy_x = -(X/10);                 &lt;br /&gt;
vy_y = zeros(size(X));           &lt;br /&gt;
&lt;br /&gt;
div_u = ux_x + vy_y; % divergencia = y/20&lt;br /&gt;
&lt;br /&gt;
% Tensor de deformaciones&lt;br /&gt;
eps_xx = ux_x;                  &lt;br /&gt;
eps_yy = vy_y;                  &lt;br /&gt;
eps_xy = 0.5*(ux_y + vy_x);      &lt;br /&gt;
&lt;br /&gt;
% Tensiones &lt;br /&gt;
lambda = 1; mu = 1;&lt;br /&gt;
sigma_xx = lambda*div_u + 2*mu*eps_xx;   % = 3y/20&lt;br /&gt;
sigma_yy = lambda*div_u + 2*mu*eps_yy;   % = y/20&lt;br /&gt;
sigma_zz = lambda*div_u;                 % = y/20 (eps_zz=0)&lt;br /&gt;
sigma_xy = 2*mu*eps_xy;                  % = -x/20&lt;br /&gt;
sigma_yx = sigma_xy;                     % simétrico&lt;br /&gt;
sigma_xz = zeros(size(X));               % no hay variación en z&lt;br /&gt;
sigma_zx = zeros(size(X));               % idem&lt;br /&gt;
&lt;br /&gt;
% Tensión tangencial respecto al plano ortogonal a i &lt;br /&gt;
&lt;br /&gt;
tau_i = abs(sigma_yx);                   % = | -x/20 |&lt;br /&gt;
&lt;br /&gt;
% Gráficos&lt;br /&gt;
&lt;br /&gt;
cm = turbo;&lt;br /&gt;
lw = 1.2;&lt;br /&gt;
&lt;br /&gt;
% Mallado y contornos de la placa&lt;br /&gt;
figure('Name','Mallado de la placa','Color','w');&lt;br /&gt;
mesh(X,Y,zeros(size(X)),'EdgeColor',[0,0.6,0.7],'FaceColor','none'); hold on;&lt;br /&gt;
plot(X(1,:),Y(1,:),'k','LineWidth',2);       % borde inferior&lt;br /&gt;
plot(X(end,:),Y(end,:),'k','LineWidth',2);    % borde superior&lt;br /&gt;
plot(X(:,1),Y(:,1),'k','LineWidth',2);        % borde izquierdo (pared)&lt;br /&gt;
plot(X(:,end),Y(:,end),'k','LineWidth',2);    % borde derecho&lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]); axis equal; grid on; box on;&lt;br /&gt;
xlabel('x'); ylabel('y'); title('Mallado y contorno de la placa');&lt;br /&gt;
&lt;br /&gt;
% Tensiones normales&lt;br /&gt;
figure('Name','Tensiones normales','Color','w');&lt;br /&gt;
tiledlayout(1,3,'Padding','compact','TileSpacing','compact');&lt;br /&gt;
&lt;br /&gt;
nexttile;&lt;br /&gt;
surf(X,Y,sigma_xx); shading interp; colormap(cm); colorbar;&lt;br /&gt;
title('\sigma_{xx}'); xlabel('x'); ylabel('y'); zlabel('\sigma_{xx}');&lt;br /&gt;
axis tight; daspect([1 1 0.35]); view(45,30);&lt;br /&gt;
&lt;br /&gt;
nexttile;&lt;br /&gt;
surf(X,Y,sigma_yy); shading interp; colormap(cm); colorbar;&lt;br /&gt;
title('\sigma_{yy}'); xlabel('x'); ylabel('y'); zlabel('\sigma_{yy}');&lt;br /&gt;
axis tight; daspect([1 1 0.35]); view(45,30);&lt;br /&gt;
&lt;br /&gt;
nexttile;&lt;br /&gt;
surf(X,Y,sigma_zz); shading interp; colormap(cm); colorbar;&lt;br /&gt;
title('\sigma_{zz}'); xlabel('x'); ylabel('y'); zlabel('\sigma_{zz}');&lt;br /&gt;
axis tight; daspect([1 1 0.35]); view(45,30);&lt;br /&gt;
sgtitle('Distribución de tensiones normales (\lambda=\mu=1)','FontWeight','bold');&lt;br /&gt;
&lt;br /&gt;
% Tensión tangencial respecto a i &lt;br /&gt;
figure('Name','Tension tangencial respecto a i','Color','w');&lt;br /&gt;
surf(X,Y,tau_i); shading interp; colormap(cm); colorbar;&lt;br /&gt;
title('\tau_{i} = |\sigma_{xy}|'); xlabel('x'); ylabel('y'); zlabel('\tau_{i}');&lt;br /&gt;
axis tight; daspect([1 1 0.35]); view(45,30); grid on;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
figure('Name','Contornos 2D de tensiones','Color','w');&lt;br /&gt;
tiledlayout(1,4,'Padding','compact','TileSpacing','compact');&lt;br /&gt;
&lt;br /&gt;
nexttile; contourf(X,Y,sigma_xx,20,'LineColor','none'); axis equal tight; colorbar;&lt;br /&gt;
title('\sigma_{xx}'); xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
nexttile; contourf(X,Y,sigma_yy,20,'LineColor','none'); axis equal tight; colorbar;&lt;br /&gt;
title('\sigma_{yy}'); xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
nexttile; contourf(X,Y,sigma_zz,20,'LineColor','none'); axis equal tight; colorbar;&lt;br /&gt;
title('\sigma_{zz}'); xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
nexttile; contourf(X,Y,tau_i,20,'LineColor','none'); axis equal tight; colorbar;&lt;br /&gt;
title('\tau_{i}'); xlabel('x'); ylabel('y');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tensiones tangenciales==&lt;br /&gt;
Se representan las tensiones tangenciales respecto al plano ortogonal al eje &amp;lt;math&amp;gt;\vec{i}&amp;lt;/math&amp;gt;, definidas como:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;|\sigma \cdot \vec{i} - (\vec{i} \cdot \sigma \cdot \vec{i}) , \vec{i}|&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
En la gráfica se muestran únicamente las componentes no nulas, permitiendo visualizar las tensiones tangenciales que actúan sobre los planos perpendiculares al eje &lt;br /&gt;
𝑥&lt;br /&gt;
x.&lt;br /&gt;
[[Archivo:Tensionesdemanuel.png|600px|thumb]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Definición del Mallado&lt;br /&gt;
h = 0.15; &lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la placa &lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
X(~Condition) = NaN;&lt;br /&gt;
Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
% Cálculo de la Tensión Tangencial &lt;br /&gt;
&lt;br /&gt;
Sig_xy = -X ./ 20;&lt;br /&gt;
&lt;br /&gt;
% Definición del Vector Tangencial&lt;br /&gt;
&lt;br /&gt;
U_vec = zeros(size(X)); % Componente X es 0&lt;br /&gt;
V_vec = Sig_xy; % Componente Y es el valor de la tensión&lt;br /&gt;
&lt;br /&gt;
% Gráfica&lt;br /&gt;
figure('Name', 'Apartado 10: Vector Tensión Tangencial', 'Color', 'w');&lt;br /&gt;
&lt;br /&gt;
% Usamos quiver para dibujar las flechitas azules&lt;br /&gt;
&lt;br /&gt;
quiver(X, Y, U_vec, V_vec, 'b', 'LineWidth', 1);&lt;br /&gt;
&lt;br /&gt;
% Configuración de la vista&lt;br /&gt;
view(2); &lt;br /&gt;
axis equal; &lt;br /&gt;
grid on; &lt;br /&gt;
&lt;br /&gt;
% Títulos &lt;br /&gt;
title('Tensiones tangenciales (Plano ortogonal a i)');&lt;br /&gt;
xlabel('Eje X');&lt;br /&gt;
ylabel('Eje Y');&lt;br /&gt;
&lt;br /&gt;
% Ajuste de límites &lt;br /&gt;
axis([-0.5 4.5 -0.5 2.5]);&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 mediante la expresión:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma_{VM} = \sqrt{\frac{(\sigma_1 - \sigma_2)^2 + (\sigma_2 - \sigma_3)^2 + (\sigma_3 - \sigma_1)^2}{2}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Esta fórmula combina las diferencias entre las tensiones principales (𝜎1,𝜎2,𝜎3σ1,σ2,σ3) y permite calcular el esfuerzo equivalente que experimenta el material, útil para evaluar la resistencia frente a la plasticidad o el fallo.&lt;br /&gt;
[[Archivo:vonn.jpg|miniaturadeimagen|derecha|700px|Figura 11]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% Malla&lt;br /&gt;
h = 0.1;&lt;br /&gt;
[x, y] = meshgrid(0:h:4, 0:h:2);   % ojo: x -&amp;gt; columnas, y -&amp;gt; filas&lt;br /&gt;
X = x; Y = y;&lt;br /&gt;
&lt;br /&gt;
% Bordes de la placa&lt;br /&gt;
f = X./8;&lt;br /&gt;
g = 2 - X./8;&lt;br /&gt;
EnPlaca = (Y &amp;gt;= f) &amp;amp; (Y &amp;lt;= g);&lt;br /&gt;
&lt;br /&gt;
% Definición del campo de desplazamientos en cartesianas&lt;br /&gt;
ux=(1/20).*X.*Y;&lt;br /&gt;
uy=-(1/20).*X.^2;&lt;br /&gt;
&lt;br /&gt;
% Derivadas analíticas:&lt;br /&gt;
% ux_x=d(u_x)/dx=y/20&lt;br /&gt;
% ux_y=d(u_x)/dy=x/20&lt;br /&gt;
% uy_x=d(u_y)/dx=-x/10&lt;br /&gt;
% uy_y=d(u_y)/dy 0&lt;br /&gt;
ux_x=Y./20;&lt;br /&gt;
ux_y=X./20;&lt;br /&gt;
uy_x=-X./10;&lt;br /&gt;
uy_y=zeros(size(X));&lt;br /&gt;
&lt;br /&gt;
% Divergencia (útil para sigma)&lt;br /&gt;
divU=ux_x+uy_y;&lt;br /&gt;
&lt;br /&gt;
% Tensor de deformaciones simétrico &lt;br /&gt;
% epsilon = 1/2(grad u + grad u^T)&lt;br /&gt;
% epsilon_xx = ux_x&lt;br /&gt;
% epsilon_yy = uy_y&lt;br /&gt;
% epsilon_xy = 1/2*(ux_y + uy_x)&lt;br /&gt;
eps_xx = ux_x;&lt;br /&gt;
eps_yy = uy_y;&lt;br /&gt;
eps_xy = 0.5*(ux_y + uy_x);&lt;br /&gt;
&lt;br /&gt;
% Para el caso 3D consideramos eps_zz = 0&lt;br /&gt;
eps_zz = zeros(size(X));&lt;br /&gt;
&lt;br /&gt;
% Coeficientes de Lamé&lt;br /&gt;
lambda=1;&lt;br /&gt;
mu=1;&lt;br /&gt;
&lt;br /&gt;
% Construcción del tensor de tensiones &lt;br /&gt;
%sigma = lambda*div(u)*I + 2*mu*eps&lt;br /&gt;
sigma_xx = lambda.*divU + 2*mu.*eps_xx;&lt;br /&gt;
sigma_yy = lambda.*divU + 2*mu.*eps_yy;&lt;br /&gt;
sigma_zz = lambda.*divU + 2*mu.*eps_zz;&lt;br /&gt;
sigma_xy = 2*mu.*eps_xy;    % = sigma_yx&lt;br /&gt;
&lt;br /&gt;
% Von Mises y matriz para autovalores&lt;br /&gt;
VM = NaN(size(X));&lt;br /&gt;
S1 = NaN(size(X)); S2 = NaN(size(X)); S3 = NaN(size(X));&lt;br /&gt;
&lt;br /&gt;
% Loop sobre puntos dentro de la placa para calcular autovalores&lt;br /&gt;
[idx_i,idx_j]=find(EnPlaca);&lt;br /&gt;
npts=numel(idx_i);&lt;br /&gt;
&lt;br /&gt;
for k = 1:npts&lt;br /&gt;
    i = idx_i(k); j = idx_j(k);   % i: fila (y index), j: columna (x index)&lt;br /&gt;
    % construir sigma 3x3 en ese punto&lt;br /&gt;
    S = [sigma_xx(i,j), sigma_xy(i,j), 0;sigma_xy(i,j), sigma_yy(i,j),0;0,0,sigma_zz(i,j)];&lt;br /&gt;
    e = eig(S);          &lt;br /&gt;
    % ordenar autovalores (no estrictamente necesario, pero ordeno descendente)&lt;br /&gt;
    e = sort(e,'descend');&lt;br /&gt;
    s1 = e(1); s2 = e(2); s3 = e(3);&lt;br /&gt;
    % tensión de Von Mises (fórmula)&lt;br /&gt;
    sigmaVM = sqrt( ((s1-s2).^2 + (s2-s3).^2 + (s3-s1).^2) / 2 );&lt;br /&gt;
    VM(i,j) = sigmaVM;&lt;br /&gt;
    S1(i,j) = s1; S2(i,j) = s2; S3(i,j) = s3;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
VM(~EnPlaca) = NaN;&lt;br /&gt;
% Buscar máximo de Von Mises dentro de la placa&lt;br /&gt;
[maxVM, indMax] = max(VM(:));&lt;br /&gt;
[rowMax, colMax] = ind2sub(size(VM), indMax);&lt;br /&gt;
xMax = X(rowMax, colMax);&lt;br /&gt;
yMax = Y(rowMax, colMax);&lt;br /&gt;
&lt;br /&gt;
% Visualización&lt;br /&gt;
figure('Name','Tensión de Von Mises','Color','w'); clf; hold on;&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]); box on;&lt;br /&gt;
title('Tensión de Von Mises \sigma_{VM}');&lt;br /&gt;
xlabel('x'); ylabel('y');&lt;br /&gt;
&lt;br /&gt;
% Contourf del campo VM&lt;br /&gt;
numLevels = 30;&lt;br /&gt;
[C, hC] = contourf(X, Y, VM, numLevels, 'LineStyle','none');&lt;br /&gt;
colormap(jet);&lt;br /&gt;
c = colorbar; ylabel(c, '\sigma_{VM}');&lt;br /&gt;
% Bordes de la placa&lt;br /&gt;
xb = linspace(0,4,200);&lt;br /&gt;
plot(xb, xb./8, 'k-', 'LineWidth', 1.5);         &lt;br /&gt;
plot(xb, 2 - xb./8, 'k-', 'LineWidth', 1.5);    &lt;br /&gt;
plot([0 0], [0 2], 'k-', 'LineWidth', 1.5);  &lt;br /&gt;
plot([4 4], [0.5 1.5], 'k-', 'LineWidth', 1.5); &lt;br /&gt;
&lt;br /&gt;
% Punto de máxima tensión de Von Mises&lt;br /&gt;
plot(xMax, yMax, 'rp', 'MarkerSize', 14, 'MarkerFaceColor', 'r');&lt;br /&gt;
text(xMax+0.08, yMax+0.08, sprintf('Máx VM = %.3g', maxVM), 'FontWeight','bold','Color','r');&lt;br /&gt;
&lt;br /&gt;
% Mejora estética&lt;br /&gt;
set(gcf,'Color','w');&lt;br /&gt;
shading interp;&lt;br /&gt;
&lt;br /&gt;
hold off;&lt;br /&gt;
&lt;br /&gt;
% Información&lt;br /&gt;
fprintf('Máximo Von Mises = %.6g en (x,y) = (%.4g, %.4g)\n', maxVM, xMax, yMax);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Campo de Fuerzas==&lt;br /&gt;
&lt;br /&gt;
El campo de fuerzas &amp;lt;math&amp;gt;\vec{F}&amp;lt;/math&amp;gt; que actúa sobre la placa, y que es responsable del desplazamiento observado, se puede aproximar mediante la ecuación de la elasticidad lineal:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{F} = - \operatorname{div} \sigma&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt;\operatorname{div} \sigma&amp;lt;/math&amp;gt; es la divergencia de un campo tensorial. En coordenadas cartesianas, se expresa como:&lt;br /&gt;
&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;math&amp;gt;\operatorname{div} \sigma = (\operatorname{div} \sigma)_1 , \vec{i} + (\operatorname{div} \sigma)_2 , \vec{j} + (\operatorname{div} \sigma)3 , \vec{k}, \quad (\operatorname{div} \sigma)i = \sum{j=1}^{3} \frac{\partial \sigma{ij}}{\partial x_j}&amp;lt;/math&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
Esta formulación permite calcular, a partir del tensor de tensiones, el campo de fuerzas internas que genera los desplazamientos de la placa.&lt;br /&gt;
[[Archivo:Fuerzas_manuel.jpg|700px|thumb]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%% Apartado 12: Campo de Fuerzas Volumétricas (F = -div Sigma)&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
&lt;br /&gt;
% 1. Definición del Mallado&lt;br /&gt;
h = 0.1;&lt;br /&gt;
x = 0:h:4;&lt;br /&gt;
y = 0:h:2;&lt;br /&gt;
[X, Y] = meshgrid(x, y);&lt;br /&gt;
&lt;br /&gt;
% Definición de la placa (Trapecio)&lt;br /&gt;
Condition = (Y &amp;gt;= X./8) &amp;amp; (Y &amp;lt;= 2 - X./8);&lt;br /&gt;
X(~Condition) = NaN;&lt;br /&gt;
Y(~Condition) = NaN;&lt;br /&gt;
&lt;br /&gt;
lambda = 1; mu = 1;&lt;br /&gt;
&lt;br /&gt;
% 2. Recalculamos las Tensiones (Necesarias para derivar)&lt;br /&gt;
% Usamos las fórmulas analíticas que ya conocemos&lt;br /&gt;
Div_u = Y ./ 20;&lt;br /&gt;
Eps_xx = Y ./ 20;&lt;br /&gt;
Eps_yy = zeros(size(X));&lt;br /&gt;
&lt;br /&gt;
Sig_xx = lambda .* Div_u + 2 .* mu .* Eps_xx; % = 3y/20&lt;br /&gt;
Sig_yy = lambda .* Div_u + 2 .* mu .* Eps_yy; % = y/20&lt;br /&gt;
Sig_xy = -X ./ 20; % = -x/20 (cizalladura)&lt;br /&gt;
&lt;br /&gt;
% 3. Cálculo de la Divergencia del Tensor (Numéricamente)&lt;br /&gt;
% F = -div(sigma)&lt;br /&gt;
% Fx = -( d(Sxx)/dx + d(Sxy)/dy )&lt;br /&gt;
% Fy = -( d(Sxy)/dx + d(Syy)/dy )&lt;br /&gt;
&lt;br /&gt;
% La función gradient calcula derivadas centrales.&lt;br /&gt;
% Sintaxis: gradient(Matriz, paso_x, paso_y)&lt;br /&gt;
[dSxx_dx, dSxx_dy] = gradient(Sig_xx, h, h);&lt;br /&gt;
[dSxy_dx, dSxy_dy] = gradient(Sig_xy, h, h);&lt;br /&gt;
[dSyy_dx, dSyy_dy] = gradient(Sig_yy, h, h);&lt;br /&gt;
&lt;br /&gt;
Fx = - (dSxx_dx + dSxy_dy);&lt;br /&gt;
Fy = - (dSxy_dx + dSyy_dy);&lt;br /&gt;
&lt;br /&gt;
% 4. Comprobación de Magnitud (Para ver si es cero)&lt;br /&gt;
MagnitudF = sqrt(Fx.^2 + Fy.^2);&lt;br /&gt;
max_F = max(MagnitudF(:));&lt;br /&gt;
&lt;br /&gt;
fprintf('--- Resultado Apartado 12 ---\n');&lt;br /&gt;
fprintf('La fuerza máxima calculada es: %e\n', max_F);&lt;br /&gt;
&lt;br /&gt;
if max_F &amp;lt; 1e-10&lt;br /&gt;
fprintf('CONCLUSIÓN: La fuerza es prácticamente NULA (Equilibrio).\n');&lt;br /&gt;
subtitle_text = 'Fuerza \approx 0 (Equilibrio Estático)';&lt;br /&gt;
else&lt;br /&gt;
subtitle_text = 'Existen fuerzas volumétricas';&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% 5. Gráfica&lt;br /&gt;
figure('Name', 'Apartado 12: Campo de Fuerzas', 'Color', 'w');&lt;br /&gt;
hold on;&lt;br /&gt;
&lt;br /&gt;
% Dibujamos los vectores.&lt;br /&gt;
% Como son casi cero, MATLAB pintará puntos. Para ver &amp;quot;algo&amp;quot;,&lt;br /&gt;
% a veces se normalizan, pero lo correcto es mostrar que no hay fuerza.&lt;br /&gt;
quiver(X, Y, Fx, Fy, 'r');&lt;br /&gt;
&lt;br /&gt;
% Dibujar bordes&lt;br /&gt;
plot([0 4 4 0 0], [0 0.5 1.5 2 0], 'k--', 'LineWidth', 0.5); % Caja aproximada&lt;br /&gt;
&lt;br /&gt;
title('Campo de Fuerzas Volumétricas');&lt;br /&gt;
subtitle(subtitle_text);&lt;br /&gt;
xlabel('Eje X'); ylabel('Eje Y');&lt;br /&gt;
axis equal; axis([-0.5 4.5 -0.5 2.5]);&lt;br /&gt;
grid on;&lt;br /&gt;
&lt;br /&gt;
% Añadimos una nota en la gráfica explicándolo&lt;br /&gt;
text(1, 1, {'Fuerza Nula', '(puntos indican magnitud ~0)'}, ...&lt;br /&gt;
'Color', 'r', 'FontWeight', 'bold', 'HorizontalAlignment', 'center');&lt;br /&gt;
&lt;br /&gt;
hold off;}}&lt;br /&gt;
&lt;br /&gt;
==Densidad==&lt;br /&gt;
[[Archivo:dens.jpg|miniaturadeimagen|derecha|800px|Figura 10]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
clc; clear; close all;&lt;br /&gt;
% Mallado&lt;br /&gt;
h=0.05; &lt;br /&gt;
[X,Y]=meshgrid(0:h:4,0:h:2);&lt;br /&gt;
&lt;br /&gt;
% Forma de la placa&lt;br /&gt;
Condition=(Y&amp;gt;=X./8)&amp;amp;(Y&amp;lt;=2-X./8);&lt;br /&gt;
&lt;br /&gt;
% Definición de la Densidad : d(x,y)=(4-x)*|y|&lt;br /&gt;
Densidad=(4-X).*abs(Y);&lt;br /&gt;
&lt;br /&gt;
% Filtrado para la Gráfica&lt;br /&gt;
Densidad(~Condition)=NaN;&lt;br /&gt;
&lt;br /&gt;
% Visualización 3D&lt;br /&gt;
figure('Name','Densidad', 'Color','w');&lt;br /&gt;
&lt;br /&gt;
% Superficie 3D&lt;br /&gt;
surf(X,Y,Densidad);&lt;br /&gt;
&lt;br /&gt;
% Configuración&lt;br /&gt;
shading interp; % Elimina las líneas negras para que se vea suave&lt;br /&gt;
colormap(jet);  % Mapa de colores (De azul a rojo)&lt;br /&gt;
colorbar;       % Barra de referencia&lt;br /&gt;
caxis([0 8]);   % Fija la escala de colores&lt;br /&gt;
&lt;br /&gt;
% Etiquetas y Título&lt;br /&gt;
title({'Densidad'},'FontSize',13);&lt;br /&gt;
xlabel('Eje X','FontWeight','bold');&lt;br /&gt;
ylabel('Eje Y','FontWeight','bold');&lt;br /&gt;
zlabel('Densidad (kg/m^2)','FontWeight','bold');&lt;br /&gt;
&lt;br /&gt;
% Ajustes&lt;br /&gt;
axis tight;      % Ajusta los ejes al contenido&lt;br /&gt;
view(-45, 30);   % Ángulo de vista &lt;br /&gt;
grid on;&lt;br /&gt;
box on;&lt;br /&gt;
&lt;br /&gt;
% Proyección de sombra en el suelo&lt;br /&gt;
hold on;&lt;br /&gt;
% Dibujamos el contorno plano abajo del todo (en z=0) para referencia&lt;br /&gt;
contour(X,Y,Densidad,20,'z','Offset',0); &lt;br /&gt;
hold off;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ejemplos de uso en la ingeniería ==&lt;br /&gt;
&lt;br /&gt;
Las vigas en voladizo destacan por su forma y por la versatilidad que ofrecen, lo que las convierte en un elemento muy empleado en distintos ámbitos. Algunos de sus usos más frecuentes son:&lt;br /&gt;
&lt;br /&gt;
• Arquitectura: se utilizan en balcones, terrazas, marquesinas o cubiertas de acceso.&lt;br /&gt;
• Maquinaria: forman parte de brazos de grúas y de las palas de los aerogeneradores.&lt;br /&gt;
• Ingeniería: se aplican en la construcción de puentes en voladizo y en diferentes componentes estructurales.&lt;/div&gt;</summary>
		<author><name>Alejandro.Morales</name></author>	</entry>

	</feed>