Advertisement
Vitaliy_Novichikhin

3.2.4 Ponimanie

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