MuPAD Education Group: Kostenlose Materialen für MuPAD Pro:
www.sciface.com/education, schule.mupad.de, studium.mupad.de, mupad.zum.de.

_____________________________________________________________________________

 

Inhalt....: Heronverfahren anhand eines Beispiels

Kategorie.: Unterrichtsmaterial

Mathematik: Analysis, Programmierung, Grafik

MuPAD.....: 4.0.0

Datum.....: 2007-05-14

Autoren...: Thomas Himmelbauer <j.himmelbauer@chello.at>

Funktionen: sqrt, float, plot::Rectangle, Scaling, Constrained

_____________________________________________________________________________

 

Heronsche Flächenformel

 

15.Schulübung

 

Die Heronsche Flächenformel dient zur nährungsweisen Berechnung von Quadratwurzeln.

Es handelt sich um ein rekursives Verfahren.

 

Die Erklärung erfolgt anhand eines Beispiels:

 

sqrt(51)

math

 

1.Schritt:

Wir wählen ein Rechteck dessen Fläche 51 groß ist und setzen für die beiden Rechteckseiten zum Start die trivialen Längen a1 = 1 und a2 = 51.

a1:= 51:

b1:=  1:

a1*b1

math

 

2.Schritt:

Wir nehmen den Mittelwert der beiden Rechteckseiten als eine neue Rechteckseite. Die andere Rechteckseiten bestimmen wir so, dass der Flächeninhalt jeweils 51 ist.

a2:= (a1+b1)/2:

b2:= 51/a2:

a2*b2

math

 

3.Schritt:

Wir nehmen den Mittelwert der beiden Rechteckseiten als eine neue Rechteckseite. Die andere Rechteckseiten bestimmen wir so, dass der Flächeninhalt jeweils 51 ist.

a3:= (a2+b2)/2:

b3:= 51/a3:

a3*b3

math

 

4.Schritt:

Wir nehmen den Mittelwert der beiden Rechteckseiten als eine neue Rechteckseite. Die andere Rechteckseiten bestimmen wir so, dass der Flächeninhalt jeweils 51 ist.

a4:= (a3+b3)/2:

b4:= 51/a4:

a4*b4

math

Erfolgskontrolle:

float(b4^2)

math

 

5.Schritt:

Wir nehmen den Mittelwert der beiden Rechteckseiten als eine neue Rechteckseite. Die andere Rechteckseiten bestimmen wir so, dass der Flächeninhalt jeweils 51 ist.

a5:= (a4+b4)/2:

b5:= 51/a5:

a5*b5

math

Erfolgskontrolle:

float(b5^2)

math

 

6.Schritt:

Wir nehmen den Mittelwert der beiden Rechteckseiten als eine neue Rechteckseite. Die andere Rechteckseiten bestimmen wir so, dass der Flächeninhalt jeweils 51 ist.

a6:=(a5+b5)/2:

b6:=51/a6:

a6*b6

math

Erfolgskontrolle:

float(a6^2)

math

 

Die Rechtecke nähern sich langsam einem Quadrat.

Die Recheckseiten nähern sich langsam der zu berechnenden Wurzel.

plot(

  plot::Rectangle(0..a1,0..b1),
  plot::Rectangle(0..a2,0..b2),
  plot::Rectangle(0..a3,0..b3),
  plot::Rectangle(0..a4,0..b4),

  plot::Rectangle(0..a5,0..b5),
  plot::Rectangle(0..a6,0..b6, Color = RGB::Red),

  Scaling = Constrained,

  Width = 160,

  Height = 60

)

MuPAD graphics

 

Das Heronverfahren läßt sich durch folgendes Programm automatisieren!

Die Anzahl n der auszuführenden Schritte wird standardmäßig auf 6 gesetzt. Optional kann die Schrittanzahl und Angabe des zweites Argumentes beim Aufruf des Programms Heron geändert werden.

 

Heron:= proc(A,n=6)

begin

  M:= matrix(n+1,2);

  M[1,1]:= A;

  M[1,2]:= 1;

  for i from 2 to n+1 do

    M[i,1]:= float((M[i-1,1]+M[i-1,2]) / 2);

    M[i,2]:= A / M[i,1];

  end_for

end_proc

math

 

Heron(131)

math

 

M

math

 

Das Heronverfahren läßt sich durch folgendes Programm visualisieren:

Als Eingabe erhält plotHeron eine vom Programm Heron berechnete Matrix M.

plotHeron:= proc(M,n=0)

begin

  if n = 0 or n > linalg::nrows(M) then n:= linalg::nrows(M) end_if;

  plot(

    plot::Rectangle(0..M[i,1],0..M[i,2],Color=RGB::Gray) $ i=1..n-1,

    plot::Rectangle(0..M[n,1],0..M[n,2],Color=RGB::Red),

    Header = "Visualisierung des Heron-Verfahrens für ".expr2text(M[1,1]),

    HeaderAlignment = Right,

    Scaling = Constrained,

    Width = 160

  )

end_proc

math

 

plotHeron(M)

MuPAD graphics

 

plotHeron(M,3)

MuPAD graphics

 

Das folgende Programm erstellt eine Animation des Heron-Verfahrens.

Als Eingabe erhält animateHeron eine vom Programm Heron berechnete Matrix M.

animateHeron:= proc(M,n=0)

begin

  if n = 0 or n > linalg::nrows(M) then n:= linalg::nrows(M) end_if;

  plot(

  plot::Rectangle(0..M[i,1],0..M[i,2],Color=RGB::Gray,

        VisibleAfter=i/n*3) $ i=1..n-1,

  plot::Rectangle(0..M[n,1],0..M[n,2],Color=RGB::Red,

        VisibleAfter=n/n*3),

  Frames = n,

  Header = "Animation des Heron-Verfahrens für ".expr2text(M[1,1]),

  HeaderAlignment = Right,

  Scaling = Constrained,

  Width = 160

)

end_proc

math

 

animateHeron(M)

MuPAD graphics

 

animateHeron(M,3)

MuPAD graphics

 

 

MuPAD Education Group: Kostenlose Materialen für MuPAD Pro:
www.sciface.com/education, schule.mupad.de, studium.mupad.de, mupad.zum.de.