""" plot_chaos.py An elaboration of the code in Zelle's "Python Programming" textbook, chapter 1. Adapted from Noah Bedford's homework, which uses matplotlib and some hints from Jim to graph the logistic map. It turns out that type of behavior of x[n] for large n doesn't really depend on x[0], but does depend on r in an interesting way. This requires matplotlib, which since it isn't one of the standard python libraries of the standard python library See for example http://en.wikipedia.org/wiki/Logistic_map Jim M | Sep 2012 | GPL """ # The plotting library being used here, matplotlib, # isn't part of the standard python library, # so it needs to be installed before running this, i.e. # Mac (python 2.6 & macports $ sudo port install py26-matplotlib # Ubuntu : $ sudo apt-get install python-matplotlib import matplotlib.pyplot as plt def main(): print "Chaos (logistic map) plot :" print " x[n+1] = r*x[n]*(1-x[n])" n = 100 x0 = 0.3 print " N = number of points = ", n print " x0 = initial x = ", x0 while True: r = input("Enter 0 < r < 4 (-1 to quit) : ") if r < 0.0: print "Bye" return False x = x0 result = [] for i in range(n): x = r * x * (1.0 - x) result.append(x) plt.plot(result) plt.show() main()