Ich bin neu bei Python und lerne, indem ich Pythons "Scientific lecture notes Release 2013.1" Tutorial folge. Bitte helfen Sie mir, dieses Mandelbrot-Problem im folgenden Screenshot zu lösen (S. 71). Bitte geben Sie Schritt-für-Schritt-Befehle mit Erklärungen an, wenn möglich, weil Programmierkonzepte für mich neu sind.
Ich habe versucht, dies wie folgt zu lösen:
%Vor%Ich habe den folgenden Fehler festgestellt: "TypeError: Bilddaten können nicht in Float konvertiert werden"
Was genau bedeutet dieser Fehler und wie kann er korrigiert werden? Ich finde es schwierig, die Funktion imshow () zu verstehen. Was bedeuten die einzelnen Begriffe innerhalb von imshow ()?
Danke.
Der Mandelbrot-Satz ist nicht die Werte von z
, die Sie zu zeichnen versuchen, die Ihnen Probleme bereiten, weil sie komplexe Zahlen sind. Die Mandelbrotmenge setzt sich aus den Punkten p
der komplexen Ebene zusammen, für die die Rekursionsbeziehung z_n = z_n-1**2 + p
begrenzt bleibt. Dies wird auf praktische Weise überprüft, indem das Ergebnis nach einigen Iterationen mit einem bestimmten Schwellenwert verglichen wird. In Ihrem Fall, wenn Sie nach Ihrer for
-Schleife die folgenden Zeilen hinzufügen:
und dann plot mask
Sie sollten das Set Plot auf dem Bildschirm sehen.
Um die allgemeinen Funktionsweise der Argumente von imshow
zu verstehen, lesen Sie am besten die Dokumentation , als hier zu fragen.
Sie erhalten diesen Fehler, weil plt.imshow
keine Arrays mit komplexen Zahlen akzeptiert. Sie können den Real- oder Imaginärteil eines Arrays Z
als Z.real
oder Z.imag
adressieren. Also wenn du das reale Teil plotten willst
würde den Job machen.
Die Argumente in 'imshow' definieren die folgenden Dinge.
Wenn z
eine N-mal-M-Matrix ist, wird sie als Punktwert in einem regelmäßigen Raster interpretiert. Nach extent
geben Sie an, wie sich dieses Gitter im Raum erstreckt ...
Sie versuchen, einen komplexen Wert mit imshow zu plotten, weshalb Sie diesen Fehler erhalten, können einen Schwellenwert verwenden, wie andere vorgeschlagen haben, aber Sie könnten auch in Betracht ziehen, np.angle
oder np.abs
ebenfalls zu verwenden. Sie können die Berechnung von z auch vereinfachen, indem Sie die integrierte reduce
-Methode von Python verwenden.
Hatte etwas Spaß mit diesem, aber das zeigt die allgemeine Idee:
%Vor%Tags und Links python matplotlib numpy scientific-computing