mirror of
				https://github.com/python/cpython.git
				synced 2025-10-29 20:51:26 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			59 lines
		
	
	
	
		
			951 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
	
		
			951 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| # File: tdemo_chaos.py
 | |
| # Author: Gregor Lingl
 | |
| # Date: 2009-06-24
 | |
| 
 | |
| # A demonstration of chaos
 | |
| 
 | |
| from turtle import *
 | |
| 
 | |
| N = 80
 | |
| 
 | |
| def f(x):
 | |
|     return 3.9*x*(1-x)
 | |
| 
 | |
| def g(x):
 | |
|     return 3.9*(x-x**2)
 | |
| 
 | |
| def h(x):
 | |
|     return 3.9*x-3.9*x*x
 | |
| 
 | |
| def jumpto(x, y):
 | |
|     penup(); goto(x,y)
 | |
| 
 | |
| def line(x1, y1, x2, y2):
 | |
|     jumpto(x1, y1)
 | |
|     pendown()
 | |
|     goto(x2, y2)
 | |
| 
 | |
| def coosys():
 | |
|     line(-1, 0, N+1, 0)
 | |
|     line(0, -0.1, 0, 1.1)
 | |
| 
 | |
| def plot(fun, start, color):
 | |
|     pencolor(color)
 | |
|     x = start
 | |
|     jumpto(0, x)
 | |
|     pendown()
 | |
|     dot(5)
 | |
|     for i in range(N):
 | |
|         x=fun(x)
 | |
|         goto(i+1,x)
 | |
|         dot(5)
 | |
| 
 | |
| def main():
 | |
|     reset()
 | |
|     setworldcoordinates(-1.0,-0.1, N+1, 1.1)
 | |
|     speed(0)
 | |
|     hideturtle()
 | |
|     coosys()
 | |
|     plot(f, 0.35, "blue")
 | |
|     plot(g, 0.35, "green")
 | |
|     plot(h, 0.35, "red")
 | |
|     # Now zoom in:
 | |
|     for s in range(100):
 | |
|         setworldcoordinates(0.5*s,-0.1, N+1, 1.1)
 | |
|     return "Done!"
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     main()
 | |
|     mainloop()
 | 
