[Edu-sig] another "must have" generator
Gregor Lingl
gregor.lingl at aon.at
Tue Jan 27 03:12:39 CET 2009
kirby urner schrieb:
> This is just to get junior experimenting with convergence / divergence
> on the complex plane. c is our variable.
>
> Per this Wikipedia article (fine to project in class, why not, though
> "teacher reading from encyclopedia" shouldn't come off as mechanical):
>
> See: http://en.wikipedia.org/wiki/Mandelbrot_set
> Also: http://www.4dsolutions.net/ocn/fractals.html
>
> IDLE 3.0a2
>
>>>> def mandelbrot(c):
>>>>
> z = 0 + c
> while True:
> yield z
> z = z ** 2 + c
>
>
>
May I again add an interesting thing,
this time another indispensable generator,
more exactly: three of them:
def feigenbaum1(c,x):
while True:
yield x
x = c*x*(1-x)
def feigenbaum2(c,x):
while True:
yield x
x = c*x-c*x*x
def feigenbaum3(c,x):
while True:
yield x
x = c*(x-x**2)
along with this testing/experimenting function:
def feigenbaumtest(feigenbaum, iterations=80):
f = feigenbaum(3.93, 0.5)
for i in range(iterations):
res = next(f)
return res
>>> feigenbaumtest(feigenbaum1, 4)
0.24761176565334103
>>> feigenbaumtest(feigenbaum2, 4)
0.24761176565334098
>>> feigenbaumtest(feigenbaum3, 4)
0.24761176565334167
>>> feigenbaumtest(feigenbaum1, 40)
0.43518828176766455
>>> feigenbaumtest(feigenbaum2, 40)
0.43518808407096854
>>> feigenbaumtest(feigenbaum3, 40)
0.43518950764209768
>>> feigenbaumtest(feigenbaum1)
0.70329204370098442
>>> feigenbaumtest(feigenbaum2)
0.8147039925205275
>>> feigenbaumtest(feigenbaum3)
0.66573747868397481
>>>
Certainly something which demonstrates a (by many)
unexpected relation between maths and computer science.
Regards,
Gregor
More information about the Edu-sig
mailing list