Functies van meer variabelen: Visualisaties van functies van twee variabelen
Matlab opdrachten: Grafieken in drie dimensies [uitwerking]
Opdracht 1
Om de grafiek van de functie \[f(x,y)=\tfrac{1}{2}\!\bigl(1-\sin(2x^2-y-1)\bigr)\] te plotten maken we eerst een meshgrid en gebruiken we daarna het commando surf om de informatie als een surface te plotten. Het commando contour resulteert in de contouren in 3D zonder een opppervlak. We combineren beide commando's voor het gewenste resultaat. Om ervoor te zorgen dat de contourlijnen zichtbaar zijn zetten we de 'FaceAlpha' eigenschap van het oppervlak op \(0.5\). Daarnaast gebruiken we subplot om zowel het 3D resultaat als een gewone 2D contourplot te laten zien.
>> x = linspace(-3,3,500);
>> y = linspace(-3,3,500);
>> [x,y] = meshgrid(x,y);
>> z = 0.5.*(1-sin(2.*x.^2-y-1));
>> fig = figure('Color','White');
>> ax1 = subplot(1,2,1);
>> surf(x,y,z,'EdgeColor','none','FaceAlpha',0.5)
>> colormap(jet)
>> hold on
>> contour3(x,y,z)
>> xlabel('X')
>> ylabel('Y')
>> zlabel('Z')
>> xlim([-1.5,1.5])
>> ylim([-1.5,1.5])
>> zlim([0,1])
>> view(120,35)
>> ylim([-1.5,1.5])
>> ax2 = subplot(1,2,2);
>> contour(x,y,z,'Parent',ax2);
>> colormap(jet)
>> xlabel('x')
>> ylabel('y')
>> xlim([-1.5,1.5])
>> ylim([-1.5,1.5])
>> axis square
Dit geeft het volgende resultaat:

Als je zelf met colormap aan de slag bent gegaan dan zou je bijvoorbeeld het volgende gedaan kunnen hebben:
>> x = linspace(-3,3,500);
>> y = linspace(-3,3,500);
>> [x,y] = meshgrid(x,y);
>> z = 0.5.*(1-sin(2.*x.^2-y-1));
>> fig = figure('Color','White');
>> ax1 = subplot(1,2,1);
>> surf(x,y,z,'EdgeColor','none','FaceAlpha',0.5)
>> % Definitie van een 256x3 matrix met R,G en B waarden.
>> C = [linspace(0.5,1,256)', linspace(0.6,0.2,256)', linspace(0,1,256)'];
>> colormap(C)
>> hold on
>> contour3(x,y,z)
>> xlabel('X')
>> ylabel('Y')
>> zlabel('Z')
>> xlim([-1.5,1.5])
>> ylim([-1.5,1.5])
>> zlim([0,1])
>> view(120,35)
>> ylim([-1.5,1.5])
>> ax2 = subplot(1,2,2);
>> contour(x,y,z,'Parent',ax2);
>> colormap(C)
>> xlabel('x')
>> ylabel('y')
>> xlim([-1.5,1.5])
>> ylim([-1.5,1.5])
>> axis square
Dit geeft het volgende resultaat:

Opdracht 2
Om de grafiek van de geparametriseerde kromme \[f(t)=(t\cos t, t\sin t, \tfrac{1}{5}t)\] op het interval \([0,50]\) te plotten doen we het volgende:
>> t = linspace(0,50,500);
>> xt = t.*cos(t);
>> yt = t.*sin(t);
>> zt = 0.2.*t;
>> fig = figure('Color','White');
>> plot3(xt,yt,zt,'r','LineWidth',3)
>> grid on
>> xlim([-60,60])
>> ylim([-60,60])
>> zlim([0,10])
>> ax = gca;
>> ax.XTick = [-60:20:60];
>> ax.YTick = [-60:20:60];
>> ax.ZTick = [0:2:10];
>> view(30,30)
Het resultaat:
