Buch Cover Buch Cover Buch Cover Buch Cover

Web-Code: - Webcode Help

Wurzelziehen nach dem Verfahren von Heron (Algorithmen)

Berechnen Sie die Quadratwurzel a einer Zahl A, mit dem Verfahren von HeronHeron von Alexandria (ca. 1. Jh. v. Chr.). Dabei wird die Hälfte von A als erste Näherung a1 verwendet. Jede weitere Näherung ai+1 wird berechnet durch die Formel  a_{i+1} := (A + a_i^2) / 2a_i.

Als Code: a := (A + a*a) / (2 * a)

Begründung:

Wurzelberechnung nach Heron

d = a_i - a und

d * 2a_i \approx (a_i^2 - A)

\Longrightarrow(a_i - a) * 2a_i \approx (a_i^2 - A)

\Longrightarrow2a_ia\approx A + a^2_i

\Longrightarrow a_{i+1} := (A + a_i^2) / 2a_i\approx a

Zusatzaufgabe: Berechnen Sie die Kubikwurzel (3. Wurzel) einer Zahl nach dem folgenden Verfahren: a_{i+1} := (A + 2a_i^3)/3 a_i^2

1 Kommentare

Bitte melde dich an um einen Kommentar abzugeben

Kommentare (1)

hongkongfui 6. Mai 2020 09:48   reply report
hinter A ein paar mal das "+"

5 Lösung(en)

import java.util.Scanner;

public class Heron {
  public static void main(String[] args) {
    new Heron().top(); }
  
  void top() {
      double flaeche = einlesen("Flaeche");
      double wurzel  = wurzel(flaeche, 0.000001);
      ausgabe(wurzel);
  }

 double einlesen(String input) {
    Scanner sc = new Scanner(System.in);
    System.out.println("Bitte geben Sie " + input + " ein:");
    return sc.nextDouble(); }
 
 void ausgabe(double wert) {
     System.out.println("Das Resultat ist: " + wert); }
 
 double wurzel(double a, double genauigkeit) {
     double resultat = a / 2;
     while(ungenau(resultat * resultat, a, genauigkeit)) {
         resultat = (resultat * resultat + a) / (2 * resultat); // oder gekürzt: 
         //resultat = (resultat + a / resultat) / (2); 
         }
     return resultat;  }
     
 boolean ungenau(double ist, double soll, double genauigkeit) {
     return Math.abs(ist - soll) > genauigkeit;
 }
  
}  // end of class Heron
                
package ch.santis.buch.kapitel9;

public class Heron {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new Heron().run();
	}
	
	public void run()
	{
		System.out.println(quadratwurzel(20736));
	}
	
	public double quadratwurzel(double A)
	{
		int N = 15;
		double a1 = A / 2.0;
		double a = a1;
		double ax;
		
		
		for(int i=0; i<N; i++)
		{
			ax = (A + a * a) / ( 2 * a);
			a = ax;
		}
		   
		return a;
	}

}

                

Lösung von: David Zeindler ()

# Wurzelziehen nach dem Verfahren von Heron

def quadratwurzel(A):

    N = 15
    a = A / 2.0
    
    i = 0
    while i < N:
        
        a = (A + a * a) / ( 2 * a)
        i += 1
    
    return a


print( quadratwurzel(5) )
                

Lösung von: Alex Groeg (Freies Lernen)

zahl = float(input("Bitte eine Zahl eingeben: "))
a = float(zahl / 2)

for i in range(100):        # 100 Iterationen
    a = (zahl + a*a) / (2 * a)

print("Quadratwurzel von", zahl, "ist:", a)

# Zusatzaufgabe 3. Wurzel
zahl = float(input("Bitte eine Zahl eingeben: "))
a = float(zahl / 3)   # Startwert ausgedacht
temp = 0.

while True:
    a = (zahl + 2 * a * a * a) / (3 * a * a)
    if abs(temp - a) < 1.e-15:
        break
    temp = a

print("3. Wurzel von", zahl, "ist:", a)
                

Lösung von: Peter Pan (Home Office)

function babelRoot(num, opts) {
  opts = opts || {};
  let res = num / 2,
      nRoot = opts.nRoot || 2,
      prec = opts.prec || 6;

  if (nRoot != 2 && nRoot != 3) return undefined;

  for (let i = 1; i <= prec; i++) {
    if (nRoot == 2)
      res = (num + res ** 2) / (2 * res);
    else
      res = (num + res ** 3) / (3 * res ** 2);
    }
  return res;
}

console.log( babelRoot(5) );
console.log( babelRoot(5, {prec: 3}) );
console.log( babelRoot(5, {nRoot: 3}) );
                

Lösung von: Lisa Salander (Heidi-Klum-Gymnasium Bottrop)

Verifikation/Checksumme:

5 -> 2.236067977

Aktionen

Bewertung

Durchschnittliche Bewertung:

Eigene Bewertung:
Bitte zuerst anmelden

Meta

Zeit: 1
Schwierigkeit: k.A.
Webcode: kugc-tg53
Autor: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)

Download PDF

Download ZIP

Zu Aufgabenblatt hinzufügen