Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- # Введём значения координат полёта снаряда вручную и сразу
- x_list = input()
- y_list = input()
- # Переведем эти значения в массив вещественных чисел, внутри переведя в список вещественных чисел
- x_array = np.array([float(i) for i in x_list.split()])
- y_array = np.array([float(i) for i in y_list.split()])
- # 3. Построим тренд, используя в качестве линии тренда полином второй или первой степеней степени,
- # Найдём его коэффициенты:
- poly1 = np.polyfit(x_array, y_array, 1) # Полином первой степени, массив
- #Посчтаем значения Y для каждого значения Х, занесём в список и сразу преобразуем в массив
- list_poly1 = np.array([poly1[0] * x_array[i] + poly1[1] for i in range(0, len(x_array))])
- #print('Первая степень: ', np.array(list_poly1))# - удалить мусор
- #print('Полином 1 ПОГРЕШН: ', sum(abs((np.array(list_poly1) - y_array)/y_array)*100))
- poly2 = np.polyfit(x_array, y_array, 2) # Полином второй степени.
- # Cтрока Михаила
- #list_kp2=[poly2[0] * x_array[i]**2 + poly2[1]*x_array[i]*1+ poly2[2] for i in range(0, len(x_array))]
- #Моя строка
- list_poly2 = [poly2[0] * x_array[i]**2 + poly2[1] * x_array[i] + poly2[2] for i in range(0, len(x_array))]
- #print('Вторая степень ', np.array(list_poly2))
- #print('Полином 2 ПОГРЕШН: ', sum(abs((np.array(list_poly2) - y_array)/y_array)*100))
- if sum(abs((np.array(list_poly2) - y_array)/y_array)*100) <= sum(abs((np.array(list_poly1) - y_array)/y_array)*100):
- print("%5.3f %5.3f %5.3f" % (poly2[0], poly2[1], poly2[2]))
- else:
- print("%5.3f %5.3f" % (poly1[0], poly1[1]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement