--------------------------- # # # Blatt7, Aufgabe 2 # # # --------------------------- dx = 0.01 dy = 0.01 x = seq( from=-2, to=2, by=dx) y = seq( from=-2, to=2, by=dy) nmax = 100 # maximale Anzahl an Newton-Iterationen eps = 0.00001 # wenn eine Nullstelle mit dieser Genauigkeit # erreicht wird, wird abgebrochen p = 2 # fuer p=2 haben wir die zwei Nullstellen w1 = 1 + 0*1i w2 = -1 + 0*1i z0 = 0+1i*0 plot(z0,xlim=c(-2,2),ylim=c(-2,2)) # alle farbigen z0's werden zu diesem # plot mit points() hinzugefuegt for( xx in x ) { for( yy in y ) { z0 = xx + 1i*yy z = z0 # Startwert fuer Newton-Iteration n = 0 # Zaehler fuer Newton-Iteration # wir iterieren solange, bis wir eine Nullstelle mit # Genauigkeit epsilon erreicht haben, oder bis die # maximale Zahl an Iterationen erreicht ist. Im letzteren # haben wir keine Konvergenz, und das zugehoerige z0 wird # weiss gefaerbt. Haben wir die Nullstelle w1 erreicht, # wird der zugehoerige Startwert z0 blau gefaerbt. Haben # wir die Nullstelle w2 erreicht, wird der zugehoerige # Startwert gelb eingefaerbt: while( abs(z-w1)>eps & abs(z-w2)>eps & n < nmax ) { z = z - (z^p-1)/(p*z^(p-1)) # die Newton-Iteration n = n + 1 } # wenn der while-loop verlassen wird, kann das aus 3 Gruenden # passieren: # 1) die Nullstelle w1 ist erreicht: # wenn nach einem if nur eine if( abs(z-w1)