Frage zum Newton-Fraktal

Nummer069

Mitglied
Guten Abend, ich hänge momentan an einer Teilaufgabe meiner Hausaufgabe. Sie lautet wie folgt:

Nutzen Sie die Methode "step" nun um die Methode "iter" zu implementieren ( public IterationResult iter(ComplexNumber z) {. Sie soll eine beschränkte Anzahl an Newton-Iterationen durchführen, bis entweder eine der Nullstellen oder das Iterationsmaximum (schon vordefiniert als maxIter) erreicht ist. Die Methode liefert das Ergebnis der Iteration so wie die Anzahl an benötigten Iterationen. Falls das Iterationsmaximum erreicht wurde, soll anstelle der Anzahl an Iterationen der Wert -1 zurückgegeben werden.
( Gegebene Formel: siehe Anhang)
für step habe ich bereits definiert:

Java:
 public ComplexNumber step(final ComplexNumber z) {

      
        f.apply(z).divide(fd.apply(z));
        return z;
    }

f unf fd sind bereits vordefiniert:
Java:
  /**
     * The iteration function.
     */
private final Function<ComplexNumber, ComplexNumber> f;

    /**
     * The approximated derivative of the iteration function.
     */
    private final Function<ComplexNumber, ComplexNumber> fd;

Leider habe ich absolut keine Ahnung, wie ich "iter" implementieren soll bzw. was von mir gewollt wird... ich weiß nur, dass wenn:
(ergebnis >= maxIter ) {
ergebnis = -1;
}

Hat jemand Ideen, wie ich die Aufgabe erfüllen soll?
 

Anhänge

  • Bildschirmfoto 2020-01-28 um 20.25.22.png
    Bildschirmfoto 2020-01-28 um 20.25.22.png
    19,6 KB · Aufrufe: 8
Hat jemand Ideen, wie ich die Aufgabe erfüllen soll?
Ich kenne zwar die Klasse Function nicht aber ich vermute einmal, dass das in etwa so aussehen sollte.

Java:
public int iter(ComplexNumber z) {
        int cnt = 0;
        ComplexNumber zero = new ComplexNumber(0, 0);
        while (!z.equals(zero)) {
            z = step(z);
            cnt++;
            if (cnt > maxIter)
                return -1;
        }
        return cnt;
    }

    public ComplexNumber step(ComplexNumber z) {
        return z.sub(f.apply(z).divide(fd.apply(z)));
    }
 

Zurück
Oben