function [v,tm]=mifuncion(a,b,c,T)
function [v,tm]=tempmediasol(a,b,c,'T')
function [v,tm]=tempmediasol(a,b,c,T)
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));% volumenEscribe 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 medioA 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'.
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
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 endPara 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.5000y la temperatura media
tm = 7.1261para las dimensiones $a=1$, $b=3$ y $c=0.5$ siendo la temperatura en cada punto $T(x,y,z)=x+y+2z$.
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.7730Observamos 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.