Diferencia entre revisiones de «Placa Plana (Grupo 09)»
De MateWiki
| Línea 65: | Línea 65: | ||
hold off; | hold off; | ||
}} | }} | ||
| + | |||
| + | |||
| + | |||
| + | ==curvas de nivel== | ||
| + | |||
| + | [[Archivo:curvadenivel.jpeg|miniaturadeimagen|derecha|800px|Figura 2]] | ||
| + | <source lang="matlab"> | ||
| + | clc; clear; close all; | ||
| + | % Definición | ||
| + | h=0.1; | ||
| + | x=0:h:4; | ||
| + | y=0:h:2; | ||
| + | [X,Y] = meshgrid(x, y); | ||
| + | |||
| + | % Funciones | ||
| + | f=@(x)x./8; | ||
| + | g=@(x)2-x./8; | ||
| + | |||
| + | |||
| + | EnPlaca=Y>=f(X)&Y< g(X); | ||
| + | |||
| + | % Definición de la Temperatura y el Gradiente | ||
| + | |||
| + | T=(1+(Y-1).^2).*(4-X); | ||
| + | |||
| + | |||
| + | T_plot=T; | ||
| + | T_plot(~EnPlaca)=NaN; | ||
| + | |||
| + | % Cálculo numérico del gradiente para los vectores | ||
| + | |||
| + | U=-(1+(Y-1).^2); | ||
| + | V=2.*(Y-1).*(4-X); | ||
| + | |||
| + | |||
| + | U(~EnPlaca)=NaN; | ||
| + | V(~EnPlaca)=NaN; | ||
| + | |||
| + | % Gráfica | ||
| + | figure(1); | ||
| + | clf; | ||
| + | hold on; | ||
| + | axis equal; | ||
| + | axis([-0.5 4.5 -0.5 2.5]); | ||
| + | grid on; | ||
| + | title({'Isotermas y Gradiente \nabla T', 'T(x,y) = (1+(y-1)^2)(4-x)'}); | ||
| + | xlabel('x'); ylabel('y'); | ||
| + | |||
| + | % Mapa de calor | ||
| + | [C_fill, h_fill] = contourf(X, Y, T_plot, 20, 'LineStyle', 'none'); | ||
| + | colormap(jet); | ||
| + | cb=colorbar; | ||
| + | ylabel(cb,'Temperatura T'); | ||
| + | |||
| + | % Curvas de nivel | ||
| + | [C, h_cont]=contour(X,Y,T_plot,10,'k','LineWidth',1.5); | ||
| + | clabel(C,h_cont,'FontSize',9,'Color','k','FontWeight','bold'); | ||
| + | |||
| + | % Campo Vectorial | ||
| + | |||
| + | step=3; | ||
| + | quiver(X(1:step:end,1:step:end),Y(1:step:end, 1:step:end), ... | ||
| + | U(1:step:end,1:step:end),V(1:step:end,1:step:end), ... | ||
| + | 1.2,'k','LineWidth',1); % '1.2' es el factor de escala de las flechas | ||
| + | |||
| + | % Dibujar bordes de la placa | ||
| + | plot(x,f(x),'k-','LineWidth',2); | ||
| + | plot(x,g(x),'k-','LineWidth',2); | ||
| + | plot([0 0],[f(0) g(0)],'k-','LineWidth',2); | ||
| + | plot([4 4],[f(4) g(4)],'k-','LineWidth',2); | ||
| + | |||
| + | % Señalar Máximo | ||
| + | plot(0,0,'rp','MarkerSize',12,'MarkerFaceColor','r'); | ||
| + | plot(0,2,'rp','MarkerSize',12,'MarkerFaceColor','r'); | ||
| + | text(0.1,0,'Max T','Color','white','FontWeight','bold'); | ||
| + | |||
| + | hold off; | ||
| + | </source> | ||
Revisión del 17:32 1 dic 2025
| Trabajo realizado por estudiantes | |
|---|---|
| Título | Placa plana. Grupo 09 |
| Asignatura | Teoría de Campos |
| Curso | 2025-26 |
| Autores | Rafael Gonzalez Gomez Mario Belinchón Buendía Alejandro Morales Tari Pablo Márquez Blanco |
| Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura | |
1 Introducción
2 Mallado
h = 1/10;
color_malla = [0, 0.6, 0.6]; % Color
% Coordenadas
u = 0 : h : 4;
v = 0 : h : 2;
[U, V] = meshgrid(u, v);
% Calculamos los bordes
y_abajo = U ./ 8;
y_arriba = 2 - (U ./ 8);
% Interpolamos
factor_altura = V ./ 2; % Va de 0 (abajo) a 1 (arriba)
X = U;
Y = y_abajo + factor_altura .* (y_arriba - y_abajo);
% Visualización
figure('Color', 'w'); hold on;
% Dibujar las líneas VERTICALES
plot(X, Y, 'Color', color_malla, 'LineWidth', 0.5);
% Dibujar las líneas HORIZONTALES
plot(X', Y', 'Color', color_malla, 'LineWidth', 0.5);
% Dibujar el contorno
plot(u, u./8, 'k-', 'LineWidth', 2); % Borde Abajo
plot(u, 2 - u./8, 'k-', 'LineWidth', 2); % Borde Arriba
plot([0 0], [0 2], 'k-', 'LineWidth', 2); % Borde Izquierdo
plot([4 4], [0.5 1.5], 'k-', 'LineWidth', 2); % Borde Derecho
% Configuración final
axis([-1 5 -1 3]); % Zoom/Encuadre exacto
xlabel('x'); ylabel('y');
title('Mallado de la placa plana');
grid on;
box on;
hold off;
3 curvas de nivel
clc; clear; close all;
% Definición
h=0.1;
x=0:h:4;
y=0:h:2;
[X,Y] = meshgrid(x, y);
% Funciones
f=@(x)x./8;
g=@(x)2-x./8;
EnPlaca=Y>=f(X)&Y< g(X);
% Definición de la Temperatura y el Gradiente
T=(1+(Y-1).^2).*(4-X);
T_plot=T;
T_plot(~EnPlaca)=NaN;
% Cálculo numérico del gradiente para los vectores
U=-(1+(Y-1).^2);
V=2.*(Y-1).*(4-X);
U(~EnPlaca)=NaN;
V(~EnPlaca)=NaN;
% Gráfica
figure(1);
clf;
hold on;
axis equal;
axis([-0.5 4.5 -0.5 2.5]);
grid on;
title({'Isotermas y Gradiente \nabla T', 'T(x,y) = (1+(y-1)^2)(4-x)'});
xlabel('x'); ylabel('y');
% Mapa de calor
[C_fill, h_fill] = contourf(X, Y, T_plot, 20, 'LineStyle', 'none');
colormap(jet);
cb=colorbar;
ylabel(cb,'Temperatura T');
% Curvas de nivel
[C, h_cont]=contour(X,Y,T_plot,10,'k','LineWidth',1.5);
clabel(C,h_cont,'FontSize',9,'Color','k','FontWeight','bold');
% Campo Vectorial
step=3;
quiver(X(1:step:end,1:step:end),Y(1:step:end, 1:step:end), ...
U(1:step:end,1:step:end),V(1:step:end,1:step:end), ...
1.2,'k','LineWidth',1); % '1.2' es el factor de escala de las flechas
% Dibujar bordes de la placa
plot(x,f(x),'k-','LineWidth',2);
plot(x,g(x),'k-','LineWidth',2);
plot([0 0],[f(0) g(0)],'k-','LineWidth',2);
plot([4 4],[f(4) g(4)],'k-','LineWidth',2);
% Señalar Máximo
plot(0,0,'rp','MarkerSize',12,'MarkerFaceColor','r');
plot(0,2,'rp','MarkerSize',12,'MarkerFaceColor','r');
text(0.1,0,'Max T','Color','white','FontWeight','bold');
hold off;