Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.73 KB | None | 0 0
  1. from collections import deque
  2. import numpy
  3. import matplotlib.pyplot as plt
  4.  
  5.  
  6. def f(r, x):
  7.     return r * x - x ** 3
  8.  
  9.  
  10. def get_orbit(r, initial_x, amount, iterations, digits):
  11.     points = deque([f(r, initial_x)], amount)
  12.     for _ in range(iterations):
  13.         points.append(round(f(r, points[-1]), digits))
  14.     return set(points)
  15.  
  16.  
  17. def build_diagram(initial_x, start, end, step):
  18.     x = []
  19.     y = []
  20.     for r in numpy.arange(start, end, step):
  21.         orbit = get_orbit(r, initial_x, 20, 100, 5)
  22.         for i in orbit:
  23.             x.append(r)
  24.             y.append(i)
  25.     plt.figure(figsize=(30, 30))
  26.     plt.scatter(x, y, s=1)
  27.     plt.show()
  28.  
  29.  
  30. if __name__ == "__main__":
  31.     build_diagram(0.01, 0, 3, 0.001)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement