Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- # 2. Сформируем массивы координат движения снаряда по экспериментальным данным.
- x_array = np.array([float(input())])
- h_array = np.array([i for i in float(input())])
- # 3. Построим тракторию движения снаряда, используя в качестве линии тренда полином второй степени,
- # Найдём его коэффициенты:
- a = np.polyfit(x_array, h_array, 2) # на выходе массив
- # 4. Cоздадим ф-цию для вычисления значений полинома второй степени в точке x, разместим её в начале программы, после импорта модуля:
- def get_trand(x, a):
- y = a[0] * x ** 2 + a[1] * x + a[2] # подставляем элементы массива сразу в формулу
- return y
- # 5. C помощью полученного тренда узнаем, на какой высоте находилась пушка в момент выстрела
- # Т.е. в точке 0 по оси ОХ.
- # Мы можем это узнать, т.к. полином позволяет прогнозирование в обе стороны
- h_zero = get_trand(0, a)
- print('Высота на которой стоит пушка: %2.2f м' % h_zero)
- # 6. Вычислим, на какой высоте будет находится снаряд в точке по оси OX, где расположена мишень
- x_target = 1450
- h_target = get_trand(x_target, a) # из тренда получим высоту нахождения мишени
- print('Высота в точке %4d м: %2.2f' % (x_target, h_target))
- # 7. Определим попадет ли снаряд в цель, если известно, что мишень расположена на высоте 51 м, учитывая её радиус 0.5 м
- # Для этого найдём модуль разности между высотой, на которой расположена мишень, и положением снаряда, вычисленного с помощью линии тренда.
- # Затем сравним полученное значение с радиусом мишени и выведем результат.
- delta_h = abs(51 - h_target)
- if delta_h <= 0.5:
- print('Снаряд попадет в мишень!')
- else:
- print('Мимо, вы промахнулись')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement