Advertisement
Guest User

i_did_your_homework_for_you

a guest
Jun 2nd, 2019
304
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.01 KB | None | 0 0
  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. from scipy.optimize import fsolve
  4.  
  5.  
  6. # Functions
  7. def f1(x):
  8.     return x**3 + (c - a) * x**2 / b - 1
  9.  
  10.  
  11. def f2(x):
  12.     return (1 - y / y0)**(eta - 1) * x**7 + b * x**6 - a * x**4 - b
  13.  
  14. # Initialization
  15. k = 0.46235
  16. r0 = 0.42
  17. n0 = 101400 * 4 * np.pi * r0**3 / (3 * 8.3143 * 303)
  18. b = 16 * np.pi * k * r0**2 / (3 * n0)
  19. y0 = 49000
  20. eta = 0.0289 * 9.98 * y0 / (8.3143 * 303)
  21. n = 45
  22. a = n / n0
  23. M = 1.12
  24. c = M / (0.0289 * n0)
  25.  
  26. lamba = (fsolve(f1, y0)**0.5)[0]
  27. y_max = y0 - ((b + a * lamba**4 - b * lamba**6) / lamba**7)**(1 / (eta - 1)) * y0
  28. print("Max Altitude: {:4.1f}".format(y_max))
  29.  
  30. h = np.zeros(100)
  31. v = np.zeros(100)
  32. i = 0
  33.  
  34. for y in np.linspace(0, y_max, 100):
  35.     h[i] = y
  36.  
  37.     lambb = fsolve(f2, 49000)[0]
  38.     v[i] = ((20 * 9.8 * r0 / 3) * (lambb - c * (1 - y / y0)**(1 - eta) / lambb**2))**0.5
  39.     i += 1
  40.  
  41. plt.plot(h / 1000, v)
  42. plt.xlabel("Distance x (km)")
  43. plt.ylabel("Velocity v (m/s)")
  44. plt.title("Plot of velocity over distance")
  45. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement