%  erstellt Vektoren mit den Komponenten [u,v,w] an den Punkten [x,y,z]


figure
subplot(2,1,1)

[x,y]=meshgrid(-2:0.5:2,-2:0.5:2);
z=x.^2+y.^2;

[u,v,w] = surfnorm(x,y,z);                           % Berechnet die Komponenten der Normalvektoren auf die durch
                                                     % x, y und z beschriebene Oberflaeche
quiver3(z,u,v,w)                                     % zeichnet auf die Oberflaeche der Funktion  z=x.^2+y.^2
                                                     % senkrechte Vektorpfeile, auf der x- und y- Achse sind nicht
                                                     % x und y, sondern die Indizes daon aufgetragen

hold on
mesh(z)                                              % Als Untergrund wird ein Drahtgitter gezeichnet

shading interp
xlabel('Position von x')
ylabel('Position von y')
zlabel('z')
title('quiver3(z,u,v,w)','fontsize',16)
axis square


subplot(2,1,2)

[x,y]=meshgrid(-pi/2:pi/10:pi/2);
z=cos(x.^2+y.^2).^2;

[u,v,w] = surfnorm(x,y,z);                           % Berechnet die Komponenten der Normalvektoren auf die durch
                                                     % x, y und z beschriebene Oberflaeche    
quiver3(x,y,z,u,v,w,'r')                             % zeichnet auf die Oberflaeche der Funktion  z=x.^2+y.^2
                                                     % senkrechte Vektorpfeile

hold on
mesh(x,y,z)

shading interp
xlabel('x')
ylabel('y')
zlabel('z')
title('quiver3(x,y,z,u,v,w)','fontsize',16)
axis square
view(35,60)


colormap bone
