2016-04-09 1 views
2

Ich versuche, das Becken der Anziehung der komplexen Gleichung z^5 + 1 = 0 zu zeichnen. Ich habe es geschafft, eine große Matrix (1000000 Elemente) mit nur 6 verschiedenen Werten zu erzeugen, die 5 Wurzeln, wenn der äquivalente Punkt konvergiert oder etwas anderes, wenn es divergiert. Aber ich kann kein Plot erstellen, bei dem jeder unterschiedliche Werttyp auf eine andere Farbe abgebildet wird. Mein Code so weit istBecken der Attraktion von z^5 + 1 (Matlab)

N=1000; 
    x=linspace(-5,5,N); 
    y=linspace(-5,5,N); 
    A=ones(N,1)*x + 1i*y'*ones(1,N); %A is a 1000x1000 matrix. 


    [email protected](x) x.^5+1; 
    [email protected](x) 5*x.^4; 

    for i=1:20 
    A=A-f(A)./fp(A); 
    end 

pcolor nicht mit komplexem Argumente zu funktionieren scheint, und wenn ich nehme abs (A) als Argument all verschiedenen Wurzeln Konvertiten gleiche Zahl und i mit einer Figur am Ende, die nur einen hat Farbe, die merkwürdig ist, weil einige Punkte auseinander gehen, also sollte ich 2 Farben haben. Irgendwelche Ideen, wie kann ich dieses komplexe Array plotten?

+0

Als Referenz Cleve Moler, der ursprüngliche Entwickler von Matlab, ein tat [großer Blogeintrag] (http://blogs.mathworks.com/cleve/2016/01/18/fractal-global-behavior-of-newtons-method/) kürzlich zu diesem Thema, wenn auch mit einer fraktalen Wendung. – TroyHaskin

Antwort

1

Statt die Größe der komplexen Zahlen zu nehmen, nehmen ihre Phase mit angle, die für jede Lösung verschieden sein, zB:

h = pcolor(x, y, angle(A)); 
set(h, 'EdgeColor', 'none'); 
+0

Vielen Dank, es funktioniert wie es sein sollte. – CodeBlackj