Advertisement
Vitaliy_Novichikhin

3.2.5 Work

Sep 28th, 2020
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.22 KB | None | 0 0
  1. import numpy as np
  2. # Введём значения координат полёта снаряда вручную
  3. x_list = input()
  4. y_list = input()
  5. x_target = float(input())
  6. y_target = float(input())
  7.  
  8. # Переведем эти значения в массив вещественных чисел, внутри переведя в список вещественных чисел
  9. x_array = np.array([float(i) for i in x_list.split()])
  10. y_array = np.array([float(i) for i in y_list.split()])
  11.  
  12. # 3. Построим тракторию движения снаряда, используя в качестве линии тренда полином второй степени,
  13. # Найдём его коэффициенты:
  14. a = np.polyfit(x_array, y_array, 2) # на выходе массив
  15.  
  16. # 4. Cоздадим ф-цию для вычисления значений полинома второй степени в точке x, разместим её в начале программы, после импорта модуля:
  17. def get_trand(x, a):
  18.     y = a[0] * x ** 2 + a[1] * x + a[2] # подставляем элементы массива сразу в формулу
  19.     return y
  20.  
  21. # 5. C помощью полученного тренда узнаем, на какой высоте находилась пушка в момент выстрела
  22. # Т.е. в точке 0 по оси ОХ.
  23. # Мы можем это узнать, т.к. полином позволяет прогнозирование в обе стороны
  24. h_zero = get_trand(0, a)
  25.  
  26. # 6. Вычислим, на  какой высоте будет находится снаряд в точке по оси OX, где расположена мишень
  27. h_target = get_trand(x_target, a) # из функции тренда получим высоту нахождения мишени
  28.  
  29. #Затем сравним полученный результат с с радиусом мишени и --->
  30. delta_h = abs(y_target - h_target)
  31. # Выведем на экран полученный результат c форматным выводом:
  32. if delta_h <= 0.5:
  33.     print("h0 = %6.2f, %2s" % (h_zero, 'yes'))
  34. else:
  35.     print("h0 = %6.2f, %2s" % (h_zero, 'no'))
  36.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement