Índice de tema

 

Enunciado

Seguimos considerando el sólido $S$ que ocupa la región del primer octante limitada inferiormente por el rectángulo $R=[0,a]\times[0,b]$ del plano $XY$ y superiormente por la superficie $z=c+(x-a)^2+(y-b)^2$ (con $c>0$).
  1. Prepara una función en un fichero llamado tempmediasol.m que tenga como variables de entrada los valores de $a$, $b$, $c$ y la función temperatura en cada punto, y que
    • calcule el volumen del sólido (primera variable de salida),
    • calcule su temperatura media (segunda variable de salida),
    • genere una figura con el sólido (basta dibujar la tapa superior).
  2. Analiza los resultados para las siguientes funciones temperaturas, comparando los tres valores de la temperatura media
    • $T(x,y,z)=$cuadrado de la distancia al origen,
    • $T(x,y,z)=$cuadrado de la distancia al punto $(a,b,c)$,
    • $T(x,y,z)=\frac{x^2+y^2+z^2}{x+y+c}$

Resolución del primer apartado

Respecto al último apartado de la primera parte de este ejercicio, lo que se nos pide ahora no añade más que escribir las órdenes para el cálculo del volumen y la temperatura media dentro de una función, teniendo ésta como argumentos los valores de $a$, $b$, $c$ y la expresión de la función. La primera línea del fichero tempmediasol.m será
function [v,tm]=mifuncion(a,b,c,T)
function [v,tm]=tempmediasol(a,b,c,'T')
Ninguna de las propuestas es correcta.
function [v,tm]=tempmediasol(a,b,c,T)
No es correcto. El nombre de la función debe ser siempre el nombre del fichero.
No es correcto. La función temperatura no debe ir entrecomillada en la lista de variables de entrada.
Hay una opción correcta.
Esta propuesta es correcta.
Después incluiremos las líneas necesarias para declarar como simbólicas las variables $x$, $y$ y $z$ y para el cálculo del volumen. Escríbelas y pulsa en 'Ver'.
Ver
syms  x y z  % declaramos x, y, z como variables simbólicas
v= double(int(int(int(1,z,0,c+(x-a)^2+(y-b)^2),y,0,b),x,0,a));% volumen
Escribe ahora las líneas para calcular la integral de la temperatura y el valor medio. Pulsa luego en 'Continuar'.
temp= double(int(int(int(T,z,0,c+(x-a)^2+(y-b)^2),y,0,b),x,0,a)); % integral de la temperatura
tm=temp/v;   % valor medio
A continuación incluimos las líneas para el dibujo del sólido: basta con que dibujemos la tapa superior, que es la parte de $z=c+(x-a)^2+(y-b)^2$ correspondiente a $(x,y)$ en $R=[0,a]\times[0,b]$. Escribe las líneas y pulsa en 'Ver'.
Ver
xv=linspace(0,a);
yv=linspace(0,b);
[X,Y]=meshgrid(xv,yv); % malla de puntos en R
Z=c+(X-a).^2+(Y-b).^2; % valores de la z
T=vectorize(inline(T)); % vectorizamos la función temperatura
CZ=T(X,Y,Z); % valores de la temperatura en la tapa
surf(X,Y,Z,CZ) % tapa coloreada según la temperatura
shading interp
xlabel('x');ylabel('y');zlabel('z'); % etiquetas para los ejes
Sólo falta cerrar la función y añadir los comentarios iniciales explicativos de lo que realiza. Todo junto resulta
function [v,tm]=tempmediasol(a,b,c,T)
%%%% .... comentarios explicativos
syms x y z  % declaramos x, y, z como variables simbólicas
v= double(int(int(int(1,z,0,c+(x-a)^2+(y-b)^2),y,0,b),x,0,a));% volumen
temp= double(int(int(int(T,z,0,c+(x-a)^2+(y-b)^2),y,0,b),x,0,a)); %integral de la temperatura
tm=temp/v; % valor medio
%%%% dibujo de la tapa del sólido
xv=linspace(0,a);
yv=linspace(0,b);
[X,Y]=meshgrid(xv,yv); % malla de puntos en R
Z=c+(X-a).^2+(Y-b).^2; % valores de la z
T=vectorize(inline(T)); % vectorizamos la función temperatura
CZ=T(X,Y,Z); % valores de la temperatura en la tapa
surf(X,Y,Z,CZ) % tapa coloreada según la temperatura
shading interp
xlabel('x');ylabel('y');zlabel('z'); % etiquetas para los ejes
end
Para ejecutarla, debemos incluir la función temperatura entre comillas simples. Por ejemplo
 [v,tm]=tempmediasol(1,3,.5,'x+y+2*z')
 
nos devolverá el volumen
v = 11.5000  
y la temperatura media
tm = 7.1261 
para las dimensiones $a=1$, $b=3$ y $c=0.5$ siendo la temperatura en cada punto $T(x,y,z)=x+y+2z$.

Resolución del segundo apartado

Debemos ahora ejecutar la función tempmediasol con las funciones
  1. $T(x,y,z)=x^2+y^2+z^2$ (cuadrado de la distancia al punto $(0,0,0)$)
  2. $T(x,y,z)=(x-a)^2+(y-b)^2+(z-c)^2$ (cuadrado de la distancia al punto $(a,b,c)$)
  3. $T(x,y,z)=\frac{x^2+y^2+z^2}{x+y+c}$
Tomaremos por ejemplo $a=2$, $b=1$ y $c=1$. Podemos simplemente ir ejecutando sucesivamente la función tempmediasol con las diferentes variables de entrada o bien, si queremos facilitar la comparación y ver los diferentes colores de la superficie tapa, podemos generar un fichero que contenga
figure(1)
[v,tm1]=tempmediasol(2,1,1,'x^2+y^2+z^2');
figure(2)
[v,tm2]=tempmediasol(2,1,1,'(x-2)^2+(y-1)^2+(z-1)^2');
figure(3)
[v,tm3]=tempmediasol(2,1,1,'(x^2+y^2+z^2)/(x+y+1)');
[tm1 tm2 tm3]
Podemos cambiar el punto de vista para ver mejor los colores de la tapa, poniendo por ejemplo
view([50,28])
y podemos colocar y dimensionar las tres ventanas de figuras para ver las tres simultáneamente; con todo, resultaría
figure(1)
 set(1,'units','normal','OuterPosition',[.01 .38 .3 .4])
[v,tm1]=tempmediasol(2,1,1,'x^2+y^2+z^2');
view([50,28])
figure(2)
 set(2,'units','normal','OuterPosition',[.31 .38 .3 .4])
[v,tm2]=tempmediasol(2,1,1,'(x-2)^2+(y-1)^2+(z-1)^2');
view([50,28])
figure(3)
 set(3,'units','normal','OuterPosition',[.61 .38 .3 .4])
[v,tm3]=tempmediasol(2,1,1,'(x^2+y^2+z^2)/(x+y+1)');
view([50,28])
[tm1 tm2 tm3]
Además de las figuras, obtendremos como resultado las tres temperaturas medias
 5.1899    4.0190    2.7730 
Observamos que la menor temperatura media se alcanza para la tercera función temperatura, mientras que la mayor es para la temperatura igual al cuadrado de la distancia al origen.