% Funktionsytor

x=-2:0.1:2;    % Skapa (endimensionella) vektorer x och y
y=-2:0.1:2;

[X,Y]=meshgrid(x,y);  % Skapa motsvarande matriser

Z = sin(X+Y);         % Beräkna en funktion f(x,y)

mesh(X,Y,Z);          % Plotta ytan i 3D

pause

Z = X.^2 + 2*Y.^2;    % Beräkna en ny funktion
                      % Notera att alla operationer ska göras
                      % _elementvis_ så punkt behövs.

mesh(X,Y,Z);          % Plotta ytan i 3D

pause

% Nivåkurvor

contour(X,Y,Z);       % Visar nivåkurvor till funktionen
axis equal            % I detta fall ellipser
                      % axis equal ser till att bilden har korrekt
                      % aspect ratio
pause

contour(X,Y,Z,[1 1],'k'); % Visar nivåkurvan för f = 1, i svart
axis equal                % (Se help contour för förklaring
                          % av den konstiga syntaxen med två
                          % ettor...)
                      
pause


Z = X.^2 + 2*Y.^2;    % Beräkna ytterligare en funktion

surfc(X,Y,Z);         % Plotta ytan i 3D tillsammans med nivåkurvor

pause


% Nivåytor (överkurs)

x3=-2:0.1:2; % Skapa (endimensionella) vektorer x, y och z
y3=-3:0.1:3;
z3=-4:0.1:4;

[X3,Y3,Z3]=meshgrid(x3,y3,z3); % Skapa motsvarande 3D-arrayer

G = X3.^2 + Y3.^2/4 + Z3.^2/9; % Beräkna nivåfunktionen för
                            % en ellipsoid

clf % Nollställ grafiken

isosurface(X3,Y3,Z3,G,1)  % Plotta nivåytan G = 1
axis equal




