(*Style Definitions*)titleStyle={FontFamily->"Liberation Sans",14,Bold,RGBColor[0.35,0.35,0.35],Background->RGBColor[1,1,1,0]};
textStyle={FontFamily->"Liberation Sans",12,Bold,RGBColor[0.35,0.35,0.35],Background->RGBColor[1,1,1,0]};
plotLabelStyle={FontFamily->"Times",14,Plain,RGBColor[0.35,0.35,0.35],Background->RGBColor[1,1,1,0]};

f[x_,y_]:=-x^2-y^2+16
xAxesMax=2.5;
yAxesMax=xAxesMax;
numberOfDiscrX=10;
numberOfDiscrY=numberOfDiscrX;
currentWidthOfCuboid=Dynamic[Min[xAxesMax/numberOfDiscrX,yAxesMax/numberOfDiscrY]];
exactDefiniteIntegral=Integrate[f[x,y],{x,0,xAxesMax},{y,0,yAxesMax}];
explanationWindowContent=Column[{Text["
     
Ziel:
In dieser Visualisierung sehen Sie eine Funktion f über einem (rechteckigen) Gebiet G des (R^2). In einer ersten Näherung für das Gebietsintegral von f über G sind vier Quader dargestellt, die das Gebiet gleichmässig unterteilen. Dem Näherungswert für das Integral entspricht (im ersten Schritt sehr grob) die Summe der Volumina dieser vier Quadern.

Aktivität:
Erhöhen Sie nun mit dem Schieberegler oder dem +-Button schrittweise die Anzahl approximierender Quader. Sie sehen an den eingeblendeten Werten, wie sich durch diese Verfeinerung, die Genauigkeit erhöht und immer besser dem Volumen unter der Funktion entspricht. Seien Sie sich aber auch bewusst, dass das Gebietsintegral selbst als Grenzwert dieses Grenzprozesses definiert ist.

Tipps:
Sie können mit dem Regler für die Transparenz der Quader einstellen, wie stark der Graph der Funktion in Erscheinung tritt. So können Sie einerseits mehr die Folge der Quader visualisieren oder andererseits mehr sehen, wie sich das Quadervolumina an das Volumen unter dem Funktionsgraphen annähert.

Halten Sie die linke Maustaste gedrückt und \" draggen \" Sie mit der Maus auf dem Graphen, um ihn zu drehen.
Mit <Ctrl> und \" Mausdrag \" können Sie zudem in den Graphen hinein- bzw. hinauszoomen.

     
     ",BaseStyle->{14,Black,Plain}]},{Left,Top}];

TabView[{Style["Gebietsintegral als Grenzprozess",titleStyle]->Column[{(*First Row (Header and Explanation Button*)Row[{Button[Style["Erklärung",9],CreateDocument[TextCell[Pane[

(* ISSUE: Doesn't work by defining text in init cell after converting to a player notebook
  Workaround: Directly defining text here in the manipulate command *)
(* explanationWindowContent *)

Column[{Text["
     
Ziel:
In dieser Visualisierung sehen Sie eine Funktion f über einem (rechteckigen) Gebiet G des (R^2). In einer ersten Näherung für das Gebietsintegral von f über G sind vier Quader dargestellt, die das Gebiet gleichmässig unterteilen. Dem Näherungswert für das Integral entspricht (im ersten Schritt sehr grob) die Summe der Volumina dieser vier Quadern.

Aktivität:
Erhöhen Sie nun mit dem Schieberegler oder dem +-Button schrittweise die Anzahl approximierender Quader. Sie sehen an den eingeblendeten Werten, wie sich durch diese Verfeinerung, die Genauigkeit erhöht und immer besser dem Volumen unter der Funktion entspricht. Seien Sie sich aber auch bewusst, dass das Gebietsintegral selbst als Grenzwert dieses Grenzprozesses definiert ist.

Tipps:
Sie können mit dem Regler für die Transparenz der Quader einstellen, wie stark der Graph der Funktion in Erscheinung tritt. So können Sie einerseits mehr die Folge der Quader visualisieren oder andererseits mehr sehen, wie sich das Quadervolumina an das Volumen unter dem Funktionsgraphen annähert.

Halten Sie die linke Maustaste gedrückt und \" draggen \" Sie mit der Maus auf dem Graphen, um ihn zu drehen.
Mit <Ctrl> und \" Mausdrag \" können Sie zudem in den Graphen hinein- bzw. hinauszoomen.

     
     ",BaseStyle->{14,Black,Plain}]},{Left,Top}]

]],WindowFrame->"Normal",WindowSize->{650,500},WindowTitle->"Erklärung"],ImageSize->{90,20},Background->RGBColor[0.9,0.9,0.9]],"  "}],Manipulate[Labeled[Show[Plot3D[f[x,y],{x,0,xAxesMax},{y,0,yAxesMax},ImageSize->{500,400},ColorFunction->"NeonColors",ViewPoint->{Pi/2,Pi/2,1},Background->White,PlotLabel->Style["\n Approximation des Gebietintegrals von\n f(x,y) = "<>ToString[TraditionalForm[f[x,y]]]<>"\n durch eine Folge von Quadern \n",textStyle,Plain]],Graphics3D[Table[{RGBColor[0,0,1,cuboidTransparency],Cuboid[{(i-1)*xAxesMax/numberOfDiscr,(j-1)*yAxesMax/numberOfDiscr,0},{i*xAxesMax/numberOfDiscr,j*yAxesMax/numberOfDiscr,f[(i-1)*xAxesMax/numberOfDiscr,(j-1)*yAxesMax/numberOfDiscr]}]},{i,1,numberOfDiscr},{j,1,numberOfDiscr}],Lighting->"Neutral",Boxed->True,AxesLabel->{"x","y","  f(x,y)"},Axes->True,PlotRange->{{0,xAxesMax},{0,yAxesMax},{0,Automatic}},ImageSize->{500,400},BoxRatios->{3.5,3.5,3}]],(*Show*)Text[Style["Exakter Wert: "<>ToString[TraditionalForm[Round[exactDefiniteIntegral,0.01]]]<>"\nAktuelle Näherung: "<>ToString[TraditionalForm[Round[Sum[Sum[(xAxesMax/numberOfDiscr)*(yAxesMax/numberOfDiscr)*f[(i-1)*xAxesMax/numberOfDiscr,(j-1)*yAxesMax/numberOfDiscr],{i,1,numberOfDiscr}],{j,1,numberOfDiscr}],0.01]]],titleStyle,RGBColor[112/255,0,0]]]],{{numberOfDiscr,2,Dynamic[Style["Feinheit der Approximation:   \nAnz. Volumenelemente = "<>ToString[numberOfDiscr^2]<>"\n\n",textStyle]]},2,50,2,Appearance->"Open",AppearanceElements->{"StepRightButton","StepLeftButton"},ControlPlacement->Left},{{cuboidTransparency,0.7,Dynamic[Style["Transparenz der Quader: ",textStyle]]},0,1,0.1,ControlPlacement->Left},SaveDefinitions->True,AppearanceElements->None,Paneled->False] (*Manipulate*)},Alignment->{Top,Right}]},Background->RGBColor[0.95,0.95,0.95]]

© 2009 Projekt LEMUREN, Lernen Multimedial, Departement Mathematik, ETH Zürich
20090313-1020