Dose;

% Loesung (r,h) berechnen
H = @(r) V0 ./ (pi*r.^2);
rstar = xstar;
hstar = H(rstar);

% Zu zeichnenden Bereich fuer r und h festlegen
r_vector = linspace(0,10,100);
h_vector = linspace(0,1000,100);

% Funktionswerte Ar = f(r) berechnen
for i1 = 1:length(r_vector)
  r = r_vector(i1);
  Ar(i1) = f(r);
end

% Funktionswerte Arh = F(r,h) berechnen
F = @(r,h) 2*pi*r.^2 + 2*pi*r.*h;
for i1 = 1:length(r_vector)
  r = r_vector(i1);
  for i2 = 1:length(h_vector)
    h = h_vector(i2);
    Arh(i2,i1) = F(r,h);
  end
end

% Grafik erstellen (reduzierte Zielfunktion)
figure(1); clf
plot(r_vector,Ar,'Linewidth',2);
xlabel('Radius r');
ylabel('Flaeche');
title('Zielfunktion f(r) fuer das Getraenkedosen-Beispiel');

% Loesung zusaetzlich einzeichnen
hold on
plot(rstar,fstar,'ro','MarkerFaceColor','r','MarkerSize',10);



% Grafik erstellen (volle Zielfunktion)
figure(2); clf
zmax = 3000;
ix = find(Arh > zmax); Arh(ix) = zmax;
surf(r_vector,h_vector,Arh,'EdgeColor','none','FaceColor','interp','AlphaData',Arh,'FaceAlpha','flat');
alphamap([ones(1,10) 0]);
set(gca,'ALim',[0 zmax]);
colormap summer;
% light('Position',[1 0 0],'Style','infinite');
% lighting gouraud
xlabel('Radius r');
ylabel('Hoehe h');
zlabel('Flaeche');
title('Zielfunktion F(r,h) fuer das Getraenkedosen-Beispiel');

% Schnittkurve zusaetzlich einzeichnen
hold on
hr_vector = H(r_vector);
ix = find(hr_vector >= min(h_vector) & hr_vector <= max(h_vector));
% ix = 1:length(hr_vector);
plot3(r_vector(ix)-0.1,hr_vector(ix),F(r_vector(ix),hr_vector(ix)),'b','Linewidth',2);

% Loesung zusaetzlich einzeichnen
plot3(rstar-0.2,hstar-5,fstar,'ro','MarkerFaceColor','r','MarkerSize',10);


