Diferencia entre revisiones de «Placa plana Grupo 41»
(→Divergencia) |
|||
| Línea 7: | Línea 7: | ||
==Mallado del Solido== | ==Mallado del Solido== | ||
| + | |||
[[Archivo:MalladoPlaca.png|thumb|400px|right|Mallado Placa Plana]] | [[Archivo:MalladoPlaca.png|thumb|400px|right|Mallado Placa Plana]] | ||
{{matlab|codigo= | {{matlab|codigo= | ||
| Línea 43: | Línea 44: | ||
===Curvas de Nivel=== | ===Curvas de Nivel=== | ||
| + | |||
[[Archivo:CurvasNivel.png|thumb|300px|right|CurvasNivel]] | [[Archivo:CurvasNivel.png|thumb|300px|right|CurvasNivel]] | ||
{{matlab|codigo= | {{matlab|codigo= | ||
| Línea 69: | Línea 71: | ||
===Superficie de la Temperatura=== | ===Superficie de la Temperatura=== | ||
| + | |||
[[Archivo:SuperficieTemperatura.png|thumb|500px|right|SuperficieTemperatura]] | [[Archivo:SuperficieTemperatura.png|thumb|500px|right|SuperficieTemperatura]] | ||
{{matlab|codigo= | {{matlab|codigo= | ||
| Línea 103: | Línea 106: | ||
=== Gradiente Función Temperatura=== | === Gradiente Función Temperatura=== | ||
| + | |||
[[Archivo:CurvasNivelGradiente.png|thumb|350px|right|CurvasNivelGradiente]] | [[Archivo:CurvasNivelGradiente.png|thumb|350px|right|CurvasNivelGradiente]] | ||
{{matlab|codigo= | {{matlab|codigo= | ||
| Línea 129: | Línea 133: | ||
==Ley de Fourier== | ==Ley de Fourier== | ||
| + | |||
[[Archivo:LeyFourier.png|thumb|500px|LeyFourier]] | [[Archivo:LeyFourier.png|thumb|500px|LeyFourier]] | ||
{{matlab | codigo= | {{matlab | codigo= | ||
| Línea 164: | Línea 169: | ||
==Temperatura Maxima== | ==Temperatura Maxima== | ||
| + | |||
[[Archivo:DireccionMaxima.png|thumb|500px|DireccionMaxima]] | [[Archivo:DireccionMaxima.png|thumb|500px|DireccionMaxima]] | ||
{{matlab | codigo=% Datos y Región | {{matlab | codigo=% Datos y Región | ||
| Línea 208: | Línea 214: | ||
==Campos de Desplazamientos== | ==Campos de Desplazamientos== | ||
| + | |||
[[Archivo:CamposDesplazamiento.png|thumb|500px|CamposDesplazamiento]] | [[Archivo:CamposDesplazamiento.png|thumb|500px|CamposDesplazamiento]] | ||
{{matlab | codigo= | {{matlab | codigo= | ||
| Línea 241: | Línea 248: | ||
== Desplazamiento dado por el Campo de Vectores== | == Desplazamiento dado por el Campo de Vectores== | ||
| + | |||
[[Archivo:AntesDespuesDesplazamiento.png|thumb|600px|AntesDespuesDesplazamiento]] | [[Archivo:AntesDespuesDesplazamiento.png|thumb|600px|AntesDespuesDesplazamiento]] | ||
{{matlab | codigo= | {{matlab | codigo= | ||
| Línea 331: | Línea 339: | ||
}} | }} | ||
| + | ==Rotacional== | ||
| − | + | [[Archivo:Rotacional.png|500px|thumb|Rotacional]] | |
| − | + | {{matlab|codigo= | |
| − | + | % Datos y Región | |
| + | h = 1/10; | ||
| + | x = -1:h:1; | ||
| + | y = 0:h:3; | ||
| + | [X, Y] = meshgrid(x, y); | ||
| + | f = @(x) 2+x.^2; | ||
| + | Region = (Y <= f(X)); | ||
| + | X(~Region) = NaN; | ||
| + | Y(~Region) = NaN; | ||
| + | % Rotacional calculado | ||
| + | Rotacion = (X.*(2.*Y+1))/10; | ||
| + | % Asiganación ejes y vista | ||
| + | figure | ||
| + | surf(X,Y,Rotacion) | ||
| + | title("Rotacional en t=0") | ||
| + | colorbar | ||
| + | xlabel('Eje X') | ||
| + | ylabel('Eje Y') | ||
| + | zlabel('Eje Z') | ||
| + | }} | ||
Revisión del 12:53 5 dic 2024
| Trabajo realizado por estudiantes | |
|---|---|
| Título | Deformaciones de una placa plana. Grupo 41 |
| Asignatura | Teoría de Campos |
| Curso | 2024-25 |
| Autores | Jose Andres Bello Amado Pelayo Gomez Lobo Juan Pablo Garcia-Arias Vila |
| Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura | |
Consideramos una placa rectangular plana (en dimensión 2) que ocupa la región [math](x, y) ∈ [-1 , 1] × [0,f(x)][/math].
Contenido
1 Mallado del Solido
% Datos y región
h = 1/10;
x= -1:h:1;
y = 0:h:3;
% Mallado y limites placa
[X, Y] = meshgrid(x, y);
f = @(x) 2+x.^2;
Region = (Y <= f(X));
Z = zeros(size(X));
X(~Region) = NaN;
Y(~Region) = NaN;
mesh(X, Y, Z);
hold on
limx = x;
limy = arrayfun(f, limx);
%Superficie
plot3(limx, limy, zeros(size(limx)), 'Color', [0.2, 0.4, 0.6], 'LineWidth', 2);
plot3([-1 -1], [0 3], [0 0], 'Color', [0.2, 0.4, 0.6], 'LineWidth', 2);
plot3([1 1], [0 3], [0 0], 'Color', [0.2, 0.4, 0.6], 'LineWidth', 2);
plot3([-1 1], [0 0], [0 0], 'Color', [0.2, 0.4, 0.6], 'LineWidth', 2);
%Asignación ejes y vista
axis equal
axis([-2, 2, 0, 3])
xlabel('Eje X')
ylabel('Eje Y')
title('Mallado de la Placa')
view(2)
grid on
hold off
2 Curvas de Nivel y Gradiente de la Temperatura
2.1 Curvas de Nivel
% Datos y región
h = 1/10;
x = -1:h:1;
y = 0:h:3;
% Mallado y Región
[X, Y] = meshgrid(x, y);
f = @(x) 2+x.^2;
region = (Y <= f(X));
Temperatura = (1 - X.^4) .* (1/2 - Y);
Temperatura(~region) = NaN;
contour3(X, Y, T, 20, 'LineWidth', 2);
colorbar
%Asignación ejes y vista
axis equal
xlabel('Eje X')
ylabel('Eje Y')
zlabel('Temperatura T(x, y)')
title('Curvas de Nivel de la Temperatura')
grid on
view(2)
hold off;
2.2 Superficie de la Temperatura
% Datos y Región
h = 1/10;
x = -1:h:1;
y = 0:h:3;
% Mallado y Región
[X, Y] = meshgrid(x, y);
f = @(x) 2+x.^2;
region = (Y <= f(X));
%Funcion Temperatura
Temperatura = (1 - X.^4) .* (1/2 - Y);
Temperatura(~region) = NaN;
mesh(X, Y, Temperatura);
hold on;
% Valores Maximos Temperatura y Coordenadas
[maxTemperatura, XX] = max(Temperatura(:));
[maxX, maxY] = ind2sub(size(Temperatura), XX);
PuntoX = X(maxX, maxY);
PuntoY = Y(maxX, maxY);
plot3(PuntoX, PuntoY, maxTemperatura, 'ro', 'MarkerSize', 8, 'LineWidth', 2);
text(PuntoX, PuntoY, maxTemperatura, sprintf(' %.2f', maxTemperatura), 'Color', 'r', 'FontSize', 10);
%Asignación ejes y vista
axis equal;
axis([-2, 2, 0, 3]);
xlabel('Eje X')
ylabel('Eje Y')
title('Temperatura Superficie')
colorbar
grid on
hold off
2.3 Gradiente Función Temperatura
% Datos y Región
x = -1:h:1;
y = 0:h:2;
h = 1/10;
% Función Temperatura y Gradiente
Temperatura = @(x, y) (1 - x.^4) .* (1/2 - y);
[X, Y] = meshgrid(x,y);
ValoresTemp = Temperatura(X, Y);
[Tx, Ty] = gradient(ValoresTemp, h, h);
figure
% Grafico Gradiente
contour(X, Y, ValoresTemp, 35, 'LineWidth', 1);
hold on
quiver(X, Y, Tx, Ty, 'r','LineWidth', 1);
% Asignación ejes y vista
axis equal
xlabel('x')
ylabel('y')
title('Curvas de nivel de T(x, y) y gradiente ∇T')
colorbar
hold off
3 Ley de Fourier
% Datos y Región
h = 1/10;
x = -1:h:1;
y = 0:h:3;
[X, Y] = meshgrid(x, y);
f = @(x) 2+x.^2;
region = (Y <= f(X));
% Gradiente Temperatura
Temperatura = (1 - X.^4) .* (1/2 - Y);
Temperatura(~region) = NaN;
[Tx, Ty] = gradient(Temperatura, h);
% Aplicacion Ley Fourier
Qx = -Tx; Qy = -Ty;
Qx(~region) = NaN; Qy(~region) = NaN;
SuperficieTemp = Temperatura;
% Graficas
contour3(X, Y, SuperficieTemp, 35);
hold on;
quiver3(X, Y, SuperficieTemp, Qx, Qy, zeros(size(Qx)), 'r');
% Asiganación ejes y vista
axis equal
axis([-2, 2, 0, 3, 0, 1])
xlabel('Eje X')
ylabel('Eje Y')
zlabel('Temperatura T(x, y)')
title('Curvas de Nivel y Flujo de Energía')
colorbar
grid on
hold off
view(2)
4 Temperatura Maxima
% Datos y Región
h = 1/50;
x =-1:h:1;
y = 0:h:3;
[X,Y] = meshgrid(x, y);
f = @(x) 2+x.^2;
Region = (Y <= f(X));
Z = zeros(size(X));
X(~Region) = NaN;
Y(~Region) = NaN;
% Cálculo de la Temperatura
Temperatura = (1 - X.^4) .* (1/2 - Y);
% Derivadas Parciales y Gradiente
DerivadaX = (-4*X.^3).* (1/2 - Y);
DerivadaY = -(1-X.^4);
gradiente = sqrt(DerivadaX.^2 + DerivadaY.^2);
% Punto Maximo Gradiente
[MaximoGradiente, XX] = max(gradiente(:));
[MaximaX, MaximaY] = ind2sub(size(gradiente), XX);
PuntoMaximo = [X(MaximaX, MaximaY), Y(MaximaX, MaximaY)];
figure;
hold on;
% Direccion Gradiente
X2 = X(1:5:end, 1:5:end);
Y2 = Y(1:5:end, 1:5:end);
DerivadaX2 = DerivadaX(1:5:end, 1:5:end);
DerivadaY2 = DerivadaY(1:5:end, 1:5:end);
% Grafico Gradiente y Punto Maximo
quiver3(X2, Y2, Z(1:5:end, 1:5:end), DerivadaX2, DerivadaY2, zeros(size(DerivadaX2)), 'LineWidth', 1, 'MaxHeadSize', 1);
plot3(PuntoMaximo(1), PuntoMaximo(2), 0, 'ro', 'MarkerSize', 10, 'LineWidth', 2);
text(PuntoMaximo(1), PuntoMaximo(2), 0, sprintf(' %.2f', MaximoGradiente));
% Configuración de los Ejes y la Vista
axis equal
axis([-2, 2, 0, 3.1, -1, 1]);
xlabel('Eje X')
ylabel('Eje Y')
zlabel('Eje Z')
title('Mallado de la Superficie y Dirección de Máxima Variación de Temperatura')
grid on
hold off
5 Campos de Desplazamientos
% Datos y Región
h = 1/10;
x = -1:h:1;
y = 0:h:3;
[X, Y] = meshgrid(x, y);
f = @(x) 2+x.^2;
Region = (Y <= f(X));
Z = zeros(size(X));
X(~Region) = NaN;
Y(~Region) = NaN;
% Campo Desplazamientos
u = (X.*Y) / 10;
v = -(Y.*X.^2) / 10;
% Grafica Campos Desplazamientos
figure;
mesh(X, Y, Z);
hold on
quiver3(X, Y, Z, u, v, zeros(size(u)), 2, 'r');
% Asignación ejes y vista
axis equal
axis([-2, 2, 0, 3, -0.5, 0.5]);
xlabel('Eje X')
ylabel('Eje Y')
zlabel('Eje Z')
title('Campo de Desplazamientos')
view(2)
grid on
hold off
6 Desplazamiento dado por el Campo de Vectores
% Datos y Región
x = -1:h:1;
y = 0:h:3;
h = 1/10;
f = @(x) 2 + x.^2 ;
[X, Y] = meshgrid(x,y);
Region = (Y <= f(X));
X(~Region) = NaN;
Y(~Region) = NaN;
% Campo Desplazamiento
U = @(x, y) x .* y;
V = @(x, y) -y .* x.^2;
% Puntos iniciales
X0 = X;
Y0 = Y;
% Puntos Desplazados
XX = X0 + U(X0, Y0);
YY = Y0 + V(X0, Y0);
figure
% Graficar la placa antes del desplazamiento
subplot(1, 2, 1)
hold on
mesh(X,Y,zeros(size(X)))
title('Placa antes del desplazamiento')
xlabel('Eje X')
ylabel('Eje Y')
axis equal
axis([-2, 2, 0, 3])
grid on
% Graficar la placa después del desplazamiento
subplot(1, 2, 2)
hold on
mesh(XX,YY,zeros(size(X)))
title('Placa después del desplazamiento')
xlabel('Eje X')
ylabel('Eje Y')
axis equal
axis([-2, 2, 0, 3])
grid on
7 Divergencia
La divergencia de un campo vectorial en 2D está dada por: [math]\vec{u} = \frac{\partial u_x}{\partial x} + \frac{\partial u_y}{\partial y} [/math]
Donde el campo vectorial es: [math]\vec{u}(x, y) = u_x(x, y) \hat{i} + u_y(x, y) \hat{j} [/math]
En este caso, el vector de desplazamiento es: [math]\vec{u}(x, y) = xy \hat{i} - yx^2 \hat{j}[/math]
Entonces tenemos: [math]u_x(x, y) = xy[/math] [math]u_y(x, y) = -yx^2[/math]
Para calcular la divergencia, necesitamos las derivadas parciales:
[math]\frac{\partial u_x}{\partial x} = \frac{\partial (xy)}{\partial x} = y[/math]
[math]\frac{\partial u_y}{\partial y} = \frac{\partial (-yx^2)}{\partial y} = -x^2[/math]
Entonces, la divergencia es: [math]\nabla \cdot \vec{u}(x, y) = y - x^2[/math]
% Datos y Región
h = 1/10;
x = -1:h:1;
y = 0:h:3;
f = @(x) 2 + x.^2;
[X, Y] = meshgrid(x,y);
Region = (Y <= f(X));
X(~Region) = NaN;
Y(~Region) = NaN;
% Divergencia de u(x, y)
Divergencia = Y - X.^2;
% Grafica de la divergencia
figure;
surf(X, Y, Divergencia);
% Asiganación ejes y vista
title('Divergencia de U en t = 0')
xlabel('Eje X')
ylabel('Eje Y')
zlabel('Divergencia')
axis equal
axis([-2, 2, 0, 3])
view(2)
colorbar
8 Rotacional
% Datos y Región
h = 1/10;
x = -1:h:1;
y = 0:h:3;
[X, Y] = meshgrid(x, y);
f = @(x) 2+x.^2;
Region = (Y <= f(X));
X(~Region) = NaN;
Y(~Region) = NaN;
% Rotacional calculado
Rotacion = (X.*(2.*Y+1))/10;
% Asiganación ejes y vista
figure
surf(X,Y,Rotacion)
title("Rotacional en t=0")
colorbar
xlabel('Eje X')
ylabel('Eje Y')
zlabel('Eje Z')