Extremwertaufgabe: Silberschmied Spitzpokal

Prof. Dr. Dörte Haftendorn, MuPAD 4,    Sept.06 Update

Web:  http://haftendorn.uni-lueneburg.de             www.mathematik-verstehen.de

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Mathix  ist Silberschmied geworden. Er möchte Pokale schmieden, bei denen auf einen Kegel mit Raduis r und Höhe r  ein offener Zylinder aufgesetzt ist. Er hat versucht auszurechnen, welche Zylinderhöhe und welchen Radius er bei festem Volumen (z.B.2 Liter) nehmen muss, damit er minimalen Silberverbrauch hat. Mathilde sagt: "Am besten lässt du den Zylinder weg, das war bei dem Pokal mit der Halbkugel auch am besten." Hat Mathilde Recht?        (Variante mit halbkugelförmigem Unterteil siehe Extradatei)

MuPAD graphics

image

Zielgröße: Silberverbrauch, entspricht der Oberfläche, setzt sich zusammen aus dem Zylindermantel und dem Kegelmantel  (hh=h, weil h später gebraucht wird, s=Mantellinie):

Sformel:=2*PI*r*hh+PI*r*s;

math

Nebenbedingung, Volumen 2 Liter= 2000 cm^3, setzt sich zusammen aus Kegelvolumen und Zylindervolumen

delete V:

s:=sqrt(2)*r;

NB:=   V=PI*r^2*hh+1/3*PI*r^3;

math

math

Nach r ließe sich diese Gleichung gar nicht leicht auflösen, daher Auflösen nach hh

assume(r>0):  solve(NB,hh);

math

expand(op(%))

math

h:=r->V/(PI*r^2)-1/3*r;h(r);

math

math

Aufstellen der Zielfunktion S in Abhängigkeit von r allein

S:=r->2*PI*r*h(r)+PI*r*s;S(r); expand(S(r)):

math

math

Man kann die Ausgabe markieren und in eine neue Ausgabezelle ziehen.

expand(2^(1/2)*PI*r^2 - 2*PI*r*(1/3*r - 1/PI*V/r^2));

math

S:=r->2*V/r - 2/3*PI*r^2 + 2^(1/2)*PI*r^2: S(r);  //Zielfunktion

math

 

Aufbau der Zielfunktion aus Bausteinen:

Nun wird das Volumen auf 2 Liter=2000cm^3 festgesetzt.

V:=2000:  //Längen in cm

plotfunc2d(2*V/r,S(r), - 2/3*PI*r^2 + 2^(1/2)*PI*r^2,r=0..16,

                  ViewingBoxYRange=0..1000 );

MuPAD graphics

Als Summe aus Parabel und Hyperbel hat die Zielfunktion ein gesichertes Minimum, etwa bei r=10.

Berechnung:

S'(r);

solve(S'(r)=0,r);

math

math

rs:=float(%[1])

math

Welches ist das maximale r, für welchel die 2 Liter ganz in dem Kegel sind?

Wenn r noch größer würde, wäre der Pokal ja zu groß.

Berechnung aus dem Kegelvolumen:

V:=2000:

solve(V=1/3*PI*r^3,r);

rm:=(op(%));rmf:=float(rm);

math

math

math

Da ergibt sich ein größerer Wert, darum hat der Pokal mit minimalem Verbrauch

einen zylindischen Rand mit  folgender Höhe:

simplify(h(rs));

math

Damit ist klar, dass  Mathilde nicht Recht hat, der Pokal für 2 Liter  mit minimalem Silberverbrauch hat einen

Zylinderrand von fast 4 cm.  Die Silberoberfläche ist dann

simplify(S(rs));

float(%)

math

math

####################################################################

Herstellung der Graphen:

Sinnvolle optische Begrenzung für h könnte 10 sein. Wie groß ist dann r

solve(h(r)=10,r)

math

Exakt geht es nicht, also Ablesen:

plotfunc2d(h(r),10,r=-10..10,ViewingBoxYRange=0..12 )

MuPAD graphics

Numerische Bestimmung:

lo:=numeric::solve(h(r)=10,r);

lm:=numeric::solve(h(r)=0,r)

math

math

rmin:=lo[3];

rmax:=lm[1];

math

math

gerli2d:=plot::Line2d([-r,0],[0,-r],r=rmin..rmax):

gerre2d:=plot::Line2d([r,0],[0,-r],r=rmin..rmax):

zy2d1:=plot::Line2d([-r,0],[-r,h(r)],r=rmin..rmax ):

zy2d2:=plot::Line2d([r,0],[r,h(r)],r=rmin..rmax):

plot(gerli2d, gerre2d,zy2d1,zy2d2, ViewingBoxYRange=-rmax..10,

                                  LineWidth=1, Scaling=Constrained):

MuPAD graphics

image

hkeg3d:=plot::Surface([k*cos(t),k*sin(t),-r+k],

                      t=0..2*PI,k=0..r , r=rmin..rmax):

zyl3d:=plot::Surface([r*cos(t),r*sin(t),hh],t=0..2*PI,hh=0..h(r),

                     r=rmin..rmax,  ViewingBoxZRange=-rmax..10,

                      AnimationStyle=BackAndForth):

plot(hkeg3d,zyl3d)

MuPAD graphics

image

Gezeigt sind verschiedene Pokale mit 2 Liter Inhalt.

###############################################################

Darstellung der Zielfunktion allein und eines animierten Silververbrauchspunktes

Sg:=plot::Function2d(S(r),r=rmin..rmax, LineColor=[1,0,0]):

pkt:=plot::Point2d([r,S(r)],r=rmin..rmax, PointSize=5,

                            PointStyle=XCrosses):

Definition von Szenen, damit man alles zusammen sehen kann.

scen1:=plot::Scene2d(gerli2d,gerre2d,zy2d1,zy2d2,

     ViewingBoxYRange=-rmax..10,LineWidth=1, Scaling=Constrained,

                   AnimationStyle=BackAndForth,

                 Header="2-Liter-Pokal, Querschnitt",HeaderFont = ["arial", 14]):

scen2:=plot::Scene2d(Sg,pkt, ViewingBoxYRange=630..680,

                AnimationStyle=BackAndForth,

              Header="Silberverbrauch", HeaderFont = ["arial", 16]):

plot(scen1, scen2):

MuPAD graphics

image 

Leider können 2d- und 3d-Szenen micht in denselben plot.

Darum Simulation von 2d in 3d.

SWand:=plot::Function3d(S(r),r=rmin..rmax,y=0..1,

                             ViewingBox=[rmin..rmax,-10..10,630..690]):

SZeiger:=plot::Line3d([r,-2,S(r)],[r,2,S(r)],r=rmin..rmax,

                           Tubular=TRUE, TubeDiameter=2):

scen3:=plot::Scene3d(hkeg3d,zyl3d, AnimationStyle=BackAndForth,

                 Header="2-Liter-Pokal",HeaderFont = ["arial", 16]):

scen4:=plot::Scene3d(SWand,SZeiger,AnimationStyle=BackAndForth,

              Header="Silberverbrauch", HeaderFont = ["arial", 16]):

plot(scen3,scen4):

MuPAD graphics

image