8075
Comment: more efficient version
|
7971
|
Deletions are marked like this. | Additions are marked like this. |
Line 9: | Line 9: |
def muk_plot(m0,k): | def muk_plot(m0,k): |
Line 12: | Line 12: |
associated to m0, 1-m0, and k. | associated to m0, 1-m0, and k. |
Line 61: | Line 61: |
Line 63: | Line 63: |
show(G, frame=True, axes=False) }}} {{attachment:1.png}} |
show(G, frame=True, axes=False) }}} {{attachment:1.png}} |
Line 84: | Line 84: |
Line 86: | Line 86: |
Line 88: | Line 88: |
Line 93: | Line 93: |
{{{#!sagecell |
{{{#!sagecell |
Line 105: | Line 105: |
Line 116: | Line 116: |
Line 131: | Line 131: |
def mandelbrot_cython(float x0,float x1,float y0,float y1, | def mandelbrot_cython(float x0,float x1,float y0,float y1, |
Line 148: | Line 148: |
while (h<L and | while (h<L and |
Line 167: | Line 167: |
N = slider(100, 1000,100, 300), | N = slider(100, 1000,100, 300), |
Line 185: | Line 185: |
Line 215: | Line 215: |
Line 219: | Line 219: |
ff = fast_callable(f, vars=[z,c], domain=CDF) |
ff = fast_callable(f, vars=[z,c], domain=CDF) |
Line 229: | Line 229: |
Line 234: | Line 234: |
func = mandel |
func = mandel |
Line 251: | Line 251: |
I = CDF.gen() | I = CDF.gen() |
Line 254: | Line 254: |
Line 262: | Line 262: |
Line 282: | Line 282: |
plot_M = matrix_plot(M, cmap='binary') plot_M.show(figsize=[size, size]) |
matrix_plot(M, cmap='binary').show(figsize=[size, size]) |
Sage Interactions - Fractal
goto interact main page
Contents
-
Sage Interactions - Fractal
- Mandelbrot's Fractal Binomial Distribution
- Fractals Generated By Digit Sets and Dilation Matrices
- Demonstrating that the Twin Dragon Matrix is likely to yield a Tiling of a Compact Interval of R^2 as k->infinity (It does!)
- Now in 3D
- Exploring Mandelbrot
- Mandelbrot & Julia Interact with variable exponent
- Sierpiński Triangle
Mandelbrot's Fractal Binomial Distribution
Fractals Generated By Digit Sets and Dilation Matrices
(Sage Days 9 - Avra Laarakker)
Attempt at Generating all integer vectors with Digits D and Matrix A (How about vector([0,-1])?)
Demonstrating that the Twin Dragon Matrix is likely to yield a Tiling of a Compact Interval of R^2 as k->infinity (It does!)
Now in 3D
Exploring Mandelbrot
Pablo Angulo
%cython import numpy as np cimport numpy as np def mandelbrot_cython(float x0,float x1,float y0,float y1, int N=200, int L=50, float R=3): '''returns an array NxN to be plotted with matrix_plot ''' cdef double complex c, z, I cdef float deltax, deltay, R2 = R*R cdef int h, j, k cdef np.ndarray[np.uint16_t, ndim=2] m m = np.zeros((N,N), dtype=np.uint16) I = complex(0,1) deltax = (x1-x0)/N deltay = (y1-y0)/N for j in range(N): for k in range(N): c = (x0+j*deltax)+ I*(y0+k*deltay) z=0 h=0 while (h<L and z.real**2 + z.imag**2 < R2): z=z*z+c h+=1 m[j,k]=h return m
import pylab x0_default = -2 y0_default = -1.5 side_default = 3.0 side = side_default x0 = x0_default y0 = y0_default options = ['Reset','Upper Left', 'Upper Right', 'Stay', 'Lower Left', 'Lower Right'] @interact def show_mandelbrot(option = selector(options, nrows = 2, width=8), N = slider(100, 1000,100, 300), L = slider(20, 300, 20, 60), plot_size = slider(2,10,1,6), auto_update = False): global x0, y0, side if option == 'Lower Right': x0 += side/2 y0 += side/2 elif option == 'Upper Right': y0 += side/2 elif option == 'Lower Left': x0 += side/2 if option=='Reset': side = side_default x0 = x0_default y0 = y0_default elif option != 'Stay': side = side/2 time m=mandelbrot_cython(x0 ,x0 + side ,y0 ,y0 + side , N, L ) # p = (matrix_plot(m) + # line2d([(N/2,0),(N/2,N)], color='red', zorder=2) + # line2d([(0,N/2),(N,N/2)], color='red', zorder=2)) # time show(p, figsize = (plot_size, plot_size)) pylab.clf() pylab.imshow(m, cmap = pylab.cm.gray) time pylab.savefig('mandelbrot.png')
Mandelbrot & Julia Interact with variable exponent
published notebook: http://sagenb.org/pub/1299/
Mandelbrot
by Harald Schilly
Julia
by Harald Schilly
julia_plot(-7,30,0.5,0.5,(-1.5,1.5), (-1.5,1.5))
Sierpiński Triangle
by Eviatar Bach