13 votos

¿Espaciado, iteraciones en el 1978 publicado por primera vez representación del conjunto de Mandelbrot?

Esta pregunta no es profunda, pero no puedo resolverlo por mí mismo y pensé en preguntar aquí. Aunque el papel es de gran importancia histórica, no creo que la Historia de la Ciencia y las Matemáticas Stackexchange es la adecuada.

¿Hay alguna información histórica sobre el tamaño de la cuadrícula utilizada en la primera versión del conjunto de Mandelbrot se muestra en la Dinámica de La 2-Generador de Subgrupos de PSL(2, C), Robert Brooks y J. Pedro Matelski, 1978? Sólo estoy tratando de reproducir este patrón y mientras que puede estar cerca, no puedo uñas.

Ya que esto es de hace aproximadamente 40 años, el tiempo de cómputo fue de varios órdenes de magnitud más lento (las computadoras portátiles son GigaFlops), por lo que entiendo que puede jugar con el número de iteraciones. También me he cambiado a una mayor precisión todavía (estoy usando python float). Pero antes de que me involucre demasiado en que, yo por lo menos sé que estoy usando la misma cuadrícula de puntos como son.

EDIT: lo Ideal es que la respuesta sería los números reales conocidos para ser utilizado por los autores a la hora de generar esta imagen histórica. Pero parece más divertido para deducir de ellos, así que de cualquier manera está permitido.

Parada en 1000 iteraciones, los puntos con marcadores maintaned $\vert z \vert< 2$, por ejemplo:

$\hskip3.3cm$enter image description here

enter image description here

10voto

Claude Puntos 188

Escribí un pequeño Haskell programa utilizando los Diagramas de la biblioteca:

import Diagrams.Prelude hiding (aspect)
import Diagrams.Backend.SVG.CmdLine (B, defaultMain)

import Data.Complex

main :: IO ()
main = defaultMain (diagram # centerXY # bg white # lw thin)

diagram :: Diagram B
diagram = vcat . map hcat $
  [ [ if mandelbrot (x :+ y) then asterisk else space
    | i <- [-36 .. 33], let x = spacing * i - 0.75
    ]
  | j <- [-16 .. 16], let y = spacing * j * aspect
  ]

aspect :: Double
aspect = 1.66

spacing :: Double
spacing = 0.035

iterations :: Int
iterations = 200

mandelbrot :: Complex Double -> Bool
mandelbrot c
  = null
  . dropWhile (<= 2)
  . map magnitude
  . take iterations
  . iterate (\z -> z^2 + c)
  $ 0

asterisk :: Diagram B
asterisk = withEnvelope space $ mconcat
  [ p2 (-2, -2) ~~ p2 (2,  2)
  , p2 (-2,  2) ~~ p2 (2, -2)
  , p2 ( 0, -3) ~~ p2 (0,  3)
  ]

space :: Diagram B
space = phantom' (rect 6 10)

phantom' :: Diagram B -> Diagram B
phantom' = phantom

Aquí está el resultado:

first Mandelbrot set image recreation

He encontrado el importante magia valores aspect, spacing y iterations por prueba y mejora: he utilizado el spacing de punto de conteo, y en primer lugar un aspect de $\frac{10}{6}$, pero que era un poco demasiado alto para obtener la forma correcta en la parte superior y la parte inferior por lo que he reducido un poco por poco (9.99/6, 9.98/6, ...). Finalmente me desconecté de la iterations mediante búsqueda binaria para obtener el resto de los píxeles de la misma como la imagen en la pregunta (y al principio me hizo un error, gracias por la corrección en los comentarios).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X