--------------- # Aufgabe 5 # --------------- # zunaechst erzeugen wir ein Gitter von # komplexen Zahlen und plotten diese: x = seq(from=-2,to=2,by=0.1) y = seq(from=-2,to=2,by=0.1) z0 = 0+1i*0 plot(z0,xlim=c(-2,2),ylim=c(-2,2)) for( xx in x ) { for(yy in y ) { z = xx + 1i*yy points( z , pch="." ) # pch steht fuer "plot character" } } # wir machen das Gitter feiner: x = seq(from=-2,to=2,by=0.01) # also Schrittweite 0.01 statt 0.1, y = seq(from=-2,to=2,by=0.01) # 10x10=100 mal so viele Punkte z0 = 0+1i*0 plot(z0,xlim=c(-2,2),ylim=c(-2,2)) for( xx in x ) { for(yy in y ) { z = xx + 1i*yy points( z , pch="." ) } } # wenn wir die Punkte farbig machen wollen: # wenn man n verschiedene Farben braucht, # kann man die mit vordefinierten Farbpaletten # generieren: # etwa n = nx = lenght(x) Regenbogen-Farben: nx = length(x) mycolors = rainbow(nx) # diese Farben kann man jetzt mit # mycolors[i] benutzen: nfarbe = 0 plot(z0,xlim=c(-2,2),ylim=c(-2,2)) for( xx in x ) { nfarbe = nfarbe+1 # bei jedem neuen x eine neue Farbe for(yy in y ) { z = xx + 1i*yy points( z , pch="." , col=mycolors[nfarbe] ) } } # wenn die Farben etwa beim Rosa und nicht erst # beim Rot aufhoeren sollen: nx = length(x) mycolors = rainbow(1.15*nx) # mycolors[nx] ist dann lila, # nicht mehr rot nfarbe = 0 plot(z0,xlim=c(-2,2),ylim=c(-2,2)) for( xx in x ) { nfarbe = nfarbe+1 # bei jedem neuen x eine neue Farbe for(yy in y ) { z = xx + 1i*yy points( z , pch="." , col=mycolors[nfarbe] ) } } # wir berechnen jetzt die Partialsummen sn fuer die # geometrische Reihe, etwa fuer die ersten 100 # Potenzen, und waehlen als numerisches Kriterium, # dass die Reihe divergent ist, wenn die Summe # der Partialsummen sn groesser als, sagen wir, 1000 # wird. Ok, das sn ist eine komplexe Zahl, also der # Absolutbetrag von sn soll groesser als 1000 werden: # Diejenigen z, fuer die das zutrifft, faerben wir # ein: und zwar soll der Punkt umso "roter" gefaerbt # werden, je schneller die Reihe divergiert: nmax = 100 # Terme in der geom. Reihe mycolors = rainbow(1.15*nmax) # mycolors[nmax] ist dann lila, # nicht mehr rot plot(z0,xlim=c(-2,2),ylim=c(-2,2)) for( xx in x ) { for(yy in y ) { z = xx + 1i*yy sn = 0 + 1i*0 # die Partialsummen k = 0 # Zaehler fuer Potenz z^k while( abs(sn)<1000 & k < nmax ) { sn = sn + z^k # die geom. Reihe k = k + 1 } points( z , pch="." , col=mycolors[k] ) } } # vielleicht lassen wir den Konvergenzbereich einfach # weiss, also wenn abs(sn) nie groesser wird als 1000, # dann wird bis k = nmax-1 iteriert und als Farbe muesste # dann mycolors[nmax] genommen werden. Probieren wir also # etwa mycolors[nmax]="white" : nmax = 100 # Terme in der geom. Reihe mycolors = rainbow(1.15*nmax) mycolors[nmax]="white" plot(z0,xlim=c(-2,2),ylim=c(-2,2)) for( xx in x ) { for(yy in y ) { z = xx + 1i*yy sn = 0 + 1i*0 # die Partialsummen k = 0 # Zaehler fuer Potenz z^k while( abs(sn)<1000 & k < nmax ) { sn = sn + z^k # die geom. Reihe k = k + 1 } points( z , pch="." , col=mycolors[k] ) } }