
%
%	% Matlab-Programm zu Aufgabe 1.2 b)	(Rosenbrock-Funktion)
%
%  Dieses Programm zeichnet eine Funktion z=f(x,y) in 
%  Grafikfenster 1 und ihre Hoehenlinien in Fenster 2.
%
figure(1)		%	erstes Grafikfenster

%  Dazu wird ein Gitter erzeugt, 
%  auf dem die Funktionswerte berechnet werden.
x=0.7:0.03:1.5;		%	Gitter auf der x-Achse
y=0.7:0.03:1.5;     	%	Gitter auf der y-Achse
[X,Y]=meshgrid(x,y);	%	erzeugt ein Gitter in der xy-Ebene
 %	Ein Problem beim Zeichnen sind die zum Teil sehr grossen 
 %	Funktionwerte. Da sie stoeren, werden alle Funktionswerte,
 %	die groesser als 10 sind, auf 10 gesetzt.
Z=min(100*(Y-X.^2).^2+(1-X).^2,10);

mesh(X,Y,Z);		%	Zeichnen der Funktionswerte

hold on
 title('Aufgabe 1.2 b), Rosenbrock-Funktion');
 xlabel('(Hoehenlinien in Figure 2)');
 view(-30,30)		%	waehlt einen anderen Blickwinkel auf das Bild.
			%	Standard ist view(-37.5,30).

 plot3(1,1,0.1,'r*')	%	Minimum

%
%	%	Legende
%
 h=1.5; links=0.54; rechts=0.56; zeile=2; zeilenabs=1;
 plot3(links,h,zeile,'r*');text(rechts,h,zeile,' globales striktes ');
 zeile=zeile-zeilenabs;
 text(rechts,h,zeile,'     Minimum');
hold off

% - - - - - - - - - - - Zeichnen der Hoehenlinien - - - - - - - - - - - - -	
figure(2)		%	zweite Grafikfenster;

%	Zum Zeichnen der Hoehenlinien wird ein andere Ausschnitt gewaehlt.
x=-0.5:0.02:1.5;	%	Gitter auf der x-Achse
y=-0.5:0.02:1.5;     	%	Gitter auf der y-Achse
[X,Y]=meshgrid(x,y);	%	erzeugt ein Gitter in der xy-Ebene
Z=100*(Y-X.^2).^2+(1-X).^2;

contour(X,Y,Z,[0.1,0.7,1.5,5,16]);% 	Hoehenlinien zeichnen

hold on
 title('Aufgabe 1.2 b), Hoehenlinien');
 xlabel('(In Figure No.1 ist die Funktion gezeichnet.)');
 plot(1,1,'r*');	%	Minimum

%
%	Legende
%
%	Kasten:
 links=-0.4; rechts=0.5; oben=1.4; unten=1.2;
 fill([links,rechts,rechts,links,links],[unten,unten,oben,oben,unten],'w');
 plot([links,rechts,rechts,links,links],[unten,unten,oben,oben,unten],'k');
%       Text:
 links=-0.35; rechts=-0.3; zeile=1.3; 
 plot(links,zeile,'r*');text(rechts,zeile,' globales striktes Minimum');
hold off












